5

大家好,我是杨成功。

将近一年没有更新思否,仅有的一两篇也是看到停更太久了,整理了部分笔记发一下。其实并不是我躺平了,而是我所有的时间都用来了写一本书。

下面就来聊聊写书这件事。

编辑约稿

写书的事情要追溯到前年吧。那个时候写技术文比较频繁,基本保持一周一篇,也收到了小伙伴们的支持和鼓励。后来被一个电子工业出版社的编辑老哥看到了,就联系到我,和我聊了有没有写书的想法。

说实话我当时压根没有底气,因为网上写文的风格比较自由随意,只要句子读得通、能把技术讲明白就问题不大。但是写书就要正式很多了,一些格式、语法、表述都有要求。

后来和编辑老哥聊完,他告诉我写书最难的不是这些,而是坚持。因为写一本书基本要花费一年之久,而且要用下班业余时间来写,好多约稿的人写一半就坚持不下去了,所以毅力是最重要的,能不能完结后期全靠作者的毅力和自律程度。

我当时也在考虑,如果签了这本书,公众号和思否基本就没时间再更新了。写公众号技术文时,你只要写一遍发出去,就能收到读者反馈;而写书就不一样了,在出版之前除了改稿没有任何反馈,而且我也不敢保证自己一定能够坚持写完。

后来决定要写,有两个原因。一是我工作已经六七年了,确实有很多成体系、我认为重要的东西想要整理出来;二是纸质版的书籍和电子版感觉确实不一样,正好有这样一个机会,那就努力尝试一下,把自己多年的积累和想表达的内容整理成一本书。

写一本什么样的书?

编辑老哥找我的时候已经有方案了,想写一本实战类的书,这个想法与我不谋而合。因为当时市面上充斥着大量的基础原理和面试真题,实战类的也基本是后台管理系统。这些内容深度不够,而且套路性强,对实战开发真正重要和有用的知识反而比较稀缺。

老哥的建议是,面向前端基础薄弱的读者,让大家轻松入门,然后通过重点知识挖掘和丰富的案例层层拔高。我想写一个偏高级、偏复杂的实战项目。最后经过商定,敲定了“基础案例+项目实战”的总体路线。

基础部分肯定要写,但我们有两个原则:

  1. 基础不必大而全,从我的工作经验出发,挑选那些最关键的部分集中介绍。
  2. 不介绍大段的概念,用“大白话+举例子”的方式,把重点讲明白即可。

基础介绍完之后,进阶必不可少。进阶部分就不局限于前端本身了,很有多可以深入的方向,但整体还是会围绕着前端项目服务。

至于实战,我们设定在基础部分和框架介绍完之后,先来一个前端项目实战;在全书内容全部介绍完后,再来一个全栈综合实战,这样就敲定了这本书“基础+进阶+实战”的大方向。

选择要介绍的前端框架时,其实我更中意React,不过老哥经过调研更建议选择Vue3,因为Vue3的受众更广,所以最终选择了Vue3全家桶。

样章过审,签约

写书第一步是先写目录,这和写代码一样 ——— 先搭框架,再进行业务开发。老哥说一本书目录是最关键的,必须能通过目录看出书中的内容,同时也是全书的思路梳理,所以目录来来回回搞了很久才定下来。

目录敲定之后,接下来选择几个章节开始写样章。所谓样章,其实就是先写几章试试看,编辑老哥会从写的过程中看你顺不顺利,能不能坚持,再决定是否与你签约。

写第一章就和我预料的大不一样。第一章文字表述比较多,我已经尽力的写的符合规范,符合语法了,结果老哥给我返回来的第一版,密密麻麻全是修改。什么主语不够了,主宾不搭了,语句不通了,直接给我整麻了。

可能我自己的写作习惯和文字表达与出版社的要求不同,我觉得很直白的一句话,老哥会觉得太口语了;我觉得一句简单直观的表述,老哥觉得不够严谨,要补充完整,但我又觉得有点多余。总之磨合了很久,我才慢慢和老哥同频。

最让我觉得难受的是,写稿要用 Word。平时习惯了 VSCode + Markdown 一把梭,使用 Word 真的效率低下。首先是格式麻烦,标题、字号、字体都有规定,格式就得搞半天。其次是没有 Git 的加持,还要用传文件的方式互换每次更新的内容。

不过书的版面本身就是 Word,所以只能用 Word 来写,写了一段时间也渐渐适应了。经过初期和编辑老哥的磨合,样章算是顺利完成了,幸运的是样章过审,终于和出版社正式签约。

一直被刷视频困扰

正式开始写作后,我给自己定了一个目标:每半个月完成一章的初稿,有了目标之后就抽出所有时间来完成。

因为平时要上班,写作的时间只能压缩在下班和周末,所以开始的两个月每天特别累,下班就拿电脑开始写,搞的跟加班一样。周末时间集中,我会抽一整天来写,虽然累,但是进度也很快。

又过了一个月,我发现我好像高估自己的自控能力了,想要长时间的保持专注真的难如登天。一开始下班可以专注写作,越往后越难以集中注意力,总是忍不住刷手机、刷B站,一刷就停不下来。

以前下班刷手机会放松,但是有了写作任务之后,刷手机就变成了一件非常痛苦的事情。我明明只想玩半小时的手机,剩下的时间用来写作,但是手机就是卡在手里放不下来,一刷就是俩小时,刷到该上床睡觉的时间,我就会非常懊悔,又浪费了一天。

后来我干脆把抖音和B站卸载了,隔绝干扰源,这下于注力有提升,但也仅仅保持了一周。有一次逛淘宝买东西,莫名其妙的就开始刷视频了,等我意识到的时候已经过去一个多小时。拼多多也一样,最离谱的是支付宝查个基金,点进去也是短视频。

经过N次的实践验证,我不得不承认一个事实 —— 靠自控力无法管住自己不刷手机,只能是彻底断干扰。我试过有效的方法有三个:

  1. 手机断网
  2. 手机关机
  3. 手机扔到3米外的地方

在我以为终于有了对抗短视频干扰的方法时,某一天在电脑上查资料,突然发现抖音竟然有网页版,然后...悲伤就延续了。手机可以关机断网,但是电脑不行,写作的时候要随时联网查资料,于是又进入了刷视频和写作互相抗争的痛苦中。

就这样,整本书写完花费的时间比预期的时间多了50%以上。不过在这个期间我积累了非常多怎么让自己保持专注的经验,后面单独开一篇文章和大家分享。

终于成书

从开始写样章,到最后一章完结,用了一年多的时间。在整本书完结后,发现比计划的内容多出100多页,于是又开始从全书精简内容,删掉不重要的部分,终于完稿成书。

这本书命名为《前端开发实战派》,每一章的内容我都经过大量的文档查阅,每一个结论我都会自己编写案例确认执行结果。毕竟是自己的第一本书嘛,不上心是不可能的。

回过头看这本书,我确实把自己想整理和分享的东西写出来了。写作的过程也是我整理总结和查漏补缺的过程,也尝试了很多新东西。

全书内容整体分为三个部分:基础部分、进阶部分、实战部分。

基础部分整体向“新”介绍,包括前端三驾马车 HTML、CSS、JavaScript,着重挖掘一些原理和新特性展开介绍。同时还有新时代的 JavaScript,包括 ES6+、TypeScript、Node.js,我把这些也归类为基础,因为之后的章节要大量用到它们。

进阶部分面向“实战中最需要的核心技能”介绍,首先是Vue3框架以及Vue3+TypeScript+Pinia的全家桶详解,接着跟一个项目实战来巩固Vue3全家桶的运用。之后详解Vite构建、性能优化、浏览器高级调试、GIT命令与协作、代码规范实践等6个进阶类的章节。

实战部分除了Vue3的基础项目实战,最重要的是全书最后的项目综合实战 ——— “全栈开发仿稀土掘金”。综合实战篇幅较大,包括书中的三个章节+两套项目源码,会将书中介绍的所有知识全部应用在项目中。

综合实战的接口部分,使用 Express+MongoDB 开发。为什么选择Express呢?原因之一是尝试了一种新的开发部署方式 —— 阿里云Serverless函数计算,Express 的轻量优势可以实现更快的冷启动。

综合实战的前端部分,依然是使用书中介绍的Vue3全家桶(组合式API)开发,尽可能贴近掘金的功能(要仿就高仿嘛),这部分我还发现掘金很多功能的设计非常精妙,研究起来很有意思。

下一步的计划

完稿之后,我以为很快可以拿到纸质书了,结果编辑老哥告诉我,印刷出版至少也得4个月。

好吧,比我想象的慢了好多。不过也好,这个空档时间正好放松放松。前段时间看朋友圈大家都在出去玩,我还在苦哈哈的码字,现在终于有时间了,先出门玩一段时间再说。

再之后的计划,首先是慢慢恢复掘金的更文吧,然后我应该会把精力放在如何保持专注力上。写书这一年多,我最大的感受就是短视频时代想要保持专注力有多么困难。那种“不能掌控自己”的感觉真的非常痛苦。

最近也看到很多人经历了裁员,也有很多人越来越贴近生活。不管世界如何变化,在“活的开心”这件事上,每个人都是掌权者。


杨成功
3.9k 声望12k 粉丝

分享小厂可落地的前端工程与架构