程沛权
程沛权

我写了一本书《前端工程化:基于 Vue.js 3.0 的设计与实践》 想分享一下它背后的故事

作者:程沛权2023-05-06
Star on GitHub

大家好,我是程沛权,经过差不多一年时间的打磨和优化,我的第一本技术书籍《前端工程化:基于 Vue.js 3.0 的设计与实践》出版上市啦!

前端工程化:基于 Vue.js 3.0 的设计与实践

这是一本以 Vue.js 的 3.0 版本为核心技术栈,围绕 “前端工程化” 和 TypeScript 的知识点展开讲解的前端入门书籍,主要面向以下读者人群:

  1. 掌握了基础的 HTML 页面编写知识,想学习一个主流前端框架的新手前端工程师
  2. 已经学会了 Vue 2 ,面对 Vue 3 的大版本更新,想快速上手使用的前端工程师
  3. 非职业前端开发,但涉及前端的工作,需要掌握一个主流前端框架的全栈工程师

书里面的知识点是按照工程师做项目的顺序梳理的,比较循序渐进的一个过程,读者可以收获到这些知识:

  1. 了解如何入门前端工程化开发,掌握 Node.js 和 npm 的使用
  2. 掌握前端领域多年来趋势走高、带有类型支持的 TypeScript 语言
  3. 上手主流前端框架 Vue.js 的全新版本,并且在遇到常见问题时知道如何解决

看到这里,我估计有部分读者会觉得眼熟,有熟悉的感觉是对的!因为在它被正式出版之前,有另外一个名字是叫《Vue3 入门指南与实战案例》,最早是部署在我的博客网站上作为本书配套案例和代码资源的 开源版本 分享的。

截止至 2023-05-03 五一假期的最后一天,开源版本已经累计了大约 220 万的阅读人次,受到了不少读者朋友的关注和支持,所以我相信很多人是看过它的在线版本,上面这段话其实就是前言里面的一部分。

今天这篇文章更主要是想分享一下这本书的由来,还有一些关于我、关于写书这些事背后的一些故事,希望感兴趣的读者可以继续支持!

目录详情和购买地址

先放上纸质书的购买地址吧,关于书的目录和内容介绍可以在商品详情查看:

☞ 访问 京东商城 购买

☞ 访问 天猫商城 购买

如果您对我的作品认可,建议购买纸质版,纸质书在电子书的基础上,经过机械工业出版社的编辑老师们的内容优化、校对勘误、排版美化,更成体系,在此特别感谢李晓波编辑对我将开源作品出版为纸质作品的支持,李老师全程帮忙跟进了无数的大事小事,也给我科普了很多出版方面的知识,十分尽职!

这本书怎么样?

在出版纸质书之前,电子版就开通了基于 GitHub Issue 的评论功能,收到了很多读者给我的反馈和交流,摘选了一部分如下(排名不分时间先后):

GitHub 上的读者评论

也有来自宝岛的小姐姐热心安利(我就说某段时间突然有很多来自台湾的工程师关注,然后 Google 了一下发现了这个推,感谢我的热心网友们!

来自宝岛的小姐姐热心安利

因为之前有热心读者问我有没有赞赏渠道,所以我从去年 10 月份在文档上挂了一个赞赏码,可以给我家三只猫猫打赏点罐头,也收到了很多读者的捐赠,有好几笔是大额的赞赏,特别特别感谢!!!

一些赞赏记录

所以关于这本书的内容质量,我相信您看到这里时应该也有了一个大概的了解!

放上我家三只猫,欢迎在线吸猫!

我家的三只猫
我家的三只猫

这本书是怎么写出来的?

作为写了一本大约 32 万字的成品书籍的作者,我一开始并没有很功利的想把它写成一本书,它最早最早的前身其实是我无数日夜在学习过程中的笔记碎片。

刚开始关注和使用 Vue 3 的时候还是 2020 年,那段时间资料很少,相关的官网也只是基于 Vue 2 的内容向上适配了一下,并且只有英文版,其他的随手可得的资料,真的好少好少… 我那段时间也算处于一个比较早期的开荒阶段,遇到问题也只能 Google 和 StackOverflow ,还有在 GitHub 仓库的 Issue 区和源码挖挖看有没有解决方案。

再后来发现还是不太够用,慢慢地又跑去 RFC 仓库 挖掘一些还没有正式公开,但其实已经实现的 “隐藏功能” ,期间也整理过一些文章分享出来过(例如: Vue3.0 最新动态:script-setup 定稿 部分实验性 API 将弃用 , Evan 大佬还在评论区亲自帮忙解答大家的问题)。

因为开荒的过程都是利用本就不多的休息时间,所以早期为了解决各种问题和先把项目做出来,也没有第一时间整理博客笔记,我通常的习惯都是先把找到的资料丢给我一个专门存档临时笔记的微信小号,作为一个可检索的 “便签” 。

当时记录的一些临时笔记

再后来发现实在太多了,这么零散的记录我自己回头也容易忘记,秉着对费曼学习法的多次实践(用输出来倒逼输入,真的特别有效!),逐步整理出了第一个版本,在 2020 年国庆节那会部署到了博客上面,刚上线的时候它还只是一本很纯粹的关于 Vue 3 的入门学习指南,内容比较单一,阅读门槛也比较高(需要本身已经熟悉了 Vue 2 才能看懂我在说什么)。

很感谢第一波读者的鼓励,很热心地给了我评论反馈,还收到了很多邮件交流遇到的问题,经过不断地迭代,慢慢地补充了很多通俗易懂的例子,并且逐步增加了关于前端工程化和 TypeScript 的入门学习内容。

期间还有很多读者自发帮我宣传( e.g. PR #6075 ),让我写的内容逐步被更多的人看到,所以到了后面一共有三家出版社联系了我出版事宜,也才有了后面这些出版相关的事情(因为收到不同出版社的邀请在时间上跨度比较大,所以我也是选择了最早联系我的李晓波编辑和机械工业出版社,在这里也很感谢其他出版社的编辑对我的作品的认可!)。

我是一个什么样的人?

再来说说我自己,我并不是一个很纯粹的程序员。

认识我久一点的朋友也知道我并不是从毕业就一直在做开发,虽然读书那会选了网络专业也勉强算是科班出身(哈哈哈哈我真的不太想提及这些往事,因为那个时候自己也还挺不懂事,老在挂科边缘徘徊,经常这边老师教完知识,过段时间我又还给老师了,反正就是成绩不怎么好的那一类人),相对于做开发或者运维等更重技术的岗位,我那个时候更喜欢打游戏、混各种论坛社区写一些挂机脚本、喜欢看人家怎么做产品设计等东西,所以毕业后跑去游戏行业做了产品运营(我在 UC 的那两年就是做产品运营)。

一开始倒是觉得做运营挺有趣的,但后来发现我的运营 KPI 很大程度依赖于在重要节点的各种活动和宣传合作页面用于推广,但 “拿不到排期” 这个事情总是在阻碍着我达成 KPI ,后来我就跟技术部的同事发起了一个小小的请求:“一些简单的需求页面我自己写,你们有空的时候能不能稍微帮我审查下代码和安排部署?” ,然后我就开始在工作时间干起了写代码的活,我负责的运营业务的数据指标也因为需求能如期上线而基本能按预期跑满,从此就一发不可收拾。

但那段时间我还不敢把自己定位为程序员去换工作,毕竟学的越多越觉得自己渺小,计算机的世界里有太多自己没有接触到的东西,所以 2015 年从 UC 跳槽去网易游戏的时候,我还是去面的运营岗位,进入了大话手游业务线,那段时间刚好面临大话手游即将上线,已经在计划中的需求 1234 是真的多,但又是喜闻乐见的 “没有排期了” ,所以入职后作为一个运营,安排给我的第一个任务是写一个答题器,我就……(此处是 Max 的问号脸.jpg )

Max 的问号脸.jpg

其实是我当时的运营简历也写了我会写页面,在网易的面试过程中也聊到了我在 UC 自己做自己的需求的经历,所以当时的网易总监也知道我可以写… 经过 “一直需求顺利上线一直爽” 的阶段后,再后来就在部门内就成立了自己的技术组、产品组,开始有了自己的前端开发和产品策划等不同岗位,所以从 2016 年开始我就开始正式以写代码为生了,到 2023 年的今年,刚好 7 年。

兜兜转转从技术专业跑去做产品运营,再从运营又杀回来做技术,经常有人问我那几年后不后悔,也有人很好奇我转回技术这段过程难不难。

先说关于难不难,我只想说两个字:“热爱” !当你对一件事情有了足够的热爱,真的没有什么难的。这里的 “热爱” 指的是可以长期保持数年的喜欢不变心,而不是三分钟热度的 “教练我要学” 盲目跟风。

再说说关于后不后悔这件事,至少目前的 7 年里是没有后悔的,我本身从小就不是一个按部就班的人,总是跟着我的兴趣去做我喜欢的事情,青少年时期我的同学都喜欢看球、喜欢听流行歌曲、喜欢唱情歌,而我那个时候就已经是一个享受着孤独沉迷在自己世界里的听摇滚乐的人,从来不看球,从来不听情歌,至于在其他人眼里可能显得比较独来独往和特立独行,从小好像就不是特别在意。

我家境很一般,在我工作之前,我爸爸妈妈每天忙碌养家也只是赚个温饱,所以我基本上是没有零用钱这种东西,虽然早在初中高中那会就想玩乐队,但吉他贝斯等乐器和学琴的费用在当时真的是完全消费不起,但也没有妨碍我对它们一直保持热爱,买不起我就自己做,自己画版型,自己锯木料,自己上油漆,给自己做了最喜欢的 BEYOND 乐队吉他手阿 Paul 在 1991 年演唱会上的那把斯坦伯格的无头吉他模型满足自己内心的 Rock’N Roll ,这可能是我最早期的自己的需求自己实现吧啊哈哈哈。

自己做的吉他模型

工作后身边的同龄人开始恋爱结婚生子学车考驾照,我是完全反着来,因为不喜欢坐车和极少出门,所以我到现在也没有想考驾照的念头,反而在爸妈眼里的 “你也老大不小了(后半句就是你该成家了… )” 的年纪才开始自学弹琴、组乐队玩演出圆我当初的乐手梦,当年第一把琴还是借的,只想着过把瘾,结果发现真的放不下了,到了后面自己也走上了买自己喜欢的琴的不归路。

左边是借的第一把贝斯,右边是自己的琴

再后来有了一些志同道合的伙伴一起夹 Band ,有幸也登上了几次三千多人的舞台,在别人都是唱流行歌曲和谐氛围里,我们又玩起了相对小众的新金属,哪怕现在我同学孩子都已经很大了,我还每天沉迷在 “塞狗、发克鹰、馊兽” 这样的嘶吼音乐里(这是 Slipknot 活结乐队在 Psychosocial 这首歌的某次现场版开场,特别燥的一个 Live 版)…

对于爱好和生活之间的平衡,这一点我特别佩服中山大学的何广平教授,白天衬衫教书,晚上甩头演出,双面人生太让我羡慕了!(可戳: 一边是量子物理,一边是极端金属,中大教授诠释科研与音乐的完美融合 了解何教授)。

用了好久 “胸口碎大石” 这个乐队名

头发也是从 2018 年初就再也没有去剪过,从光头到莫西干再到现在的长发及腰,我感觉我还可以继续留下去…

“程小姐” 你好…

最让我走上 “只过自己喜欢的生活” 的不归路就是下定决心去文身了,从不到 20 岁的时候就想要纹一条花臂,也是念念不忘了多年后终于开始了行动,第一个文身是我的琴,然后是我的猫,然后是音乐元素,还有一些逆境阶段的有意义的图,有一些是自己设计点草图,到了后面默契上来了就全部交给我的专属文身师 Johnny 了,从 2016 年文身到现在,还在继续加图案,每一个图案都在自己的人生阶段里有着不同的意义。

我的花臂

说了这些往事,主要还是想回到前面说的,只要保持足够的 “热爱” ,很多困难真的不是困难,而且因为热爱,也会自然而然的遇到一群志同道合的好朋友,很感谢这么多年一路陪我玩陪我成长以及在我转行过程中给到了很多帮助的同事好友!

如果对我的更多往事感兴趣,可以扫码查看我之前整理的我在网易五年的工作和生活的记录。

记录一下在网易五年来的工作与生活

表达能力如何培养?

最后分享一个可能会比较多程序员都比较关心的问题,如何锻炼自己的码字能力和表达能力。虽然我很宅,不爱社交,但很多读者在阅读了我的文字之后给我的反馈都是看完容易理解,性格和表达似乎出现了矛盾?其实不然。

我之前写过一篇文章叫 Markdown 工程师的一周 ,分享过我曾经一周写了大约 25 个小时的 Markdown 文档,几乎一天有 5 个小时在码字。

一周写了 24 多个小时的文档

为什么我不觉得写文档是个很费劲的事情?因为我自己常常保持的习惯有主要两个:

一个是保持每天写日记的习惯,把自己的喜怒哀乐都记录到日记里,开心的时候记录起来以后可以回顾,不开心的时候用文字把负面情绪输出走,这个方式可以很好的让自己不会把坏情绪带回家里或者带入到工作中,从几个字到两三千字我都写过,内容的多和少并不需要很刻意的去要求,重要的是这一天对你来说,过的有没有意义,我从 2019 年把写日记的习惯重新培养起来到现在也有 4 年了,已经连续写了 4 年日记,没有中断过。

另外一个习惯是上面说的费曼学习法,把自己学到的东西输出成博客文章或者其他什么载体都可以(例如下面的两个 PPT ,是我之前在一些分享会上的演讲稿,已脱敏),一开始写分享内容时可能会觉得无从下手,但是如果能够长期保持习惯,久而久之自己所写的东西就会开始有了逻辑有了条理。

因为上面两个习惯,让我后来开始记录我平时做菜时的菜谱也蛮多人爱看。

左边是我的小红书账号,右边是我曾经写了两千多字的日记

写在最后

能看到这里的朋友对我真的是真爱了,希望我的书也能给到您一些帮助,希望您在继续学习的路上,或者转行的路上,都可以实现自己想达到的目标!

再次附上买书链接:

☞ 访问 京东商城 购买

☞ 访问 天猫商城 购买

如果想问我接下来会做什么?我也是继续保持学习哈哈哈哈哈哈!我在今年三月份刚刚换了新工作,来到了一个很牛逼的团队,技术氛围特别好,队友们的能力也好强,未来也有很多我之前没有接触的东西,我也还在继续成长!

之前跟朋友说的哈哈哈

最后的最后,分享一下我保持学习的动力和精力的秘诀……

一年多前觉得是这个原因
现在还是觉得是这个原因

谢谢您的支持!