专栏名称: 前端早读课
我们关注前端,产品体验设计,更关注前端同行的成长。 每天清晨五点早读,四万+同行相伴成长。
目录
相关文章推荐
前端早读课  ·  【第3376期】Ling(灵):追求极致响应 ... ·  2 天前  
前端充电宝  ·  前端的本质 ·  3 天前  
前端充电宝  ·  前端的本质 ·  3 天前  
前端早读课  ·  【第3373期】使用 Bun 实现部分预渲染的优势 ·  5 天前  
前端早读课  ·  【第3372期】在 Node.js 中使用 ... ·  6 天前  
前端Q  ·  前端构建系统浅析 ·  1 周前  
51好读  ›  专栏  ›  前端早读课

【图书】漫画设计模式

前端早读课  · 公众号  · 前端  · 2024-09-03 08:01

正文

AI 时代对程序员的设计能力提出了更高的要求。

很多人说设计模式难学,是因为已有的经典图书的文字过于晦涩,代码难以理解,类似的教材或参考资料增加了认知负荷。

为此,李一鸣(笔名 “爱码叔”)老师写作了《漫画设计模式》。这本书用生动形象的漫画和故事勾勒出一个个设计模式的应用场景,再加上简单易懂的代码,认知负荷被大大降低。帮助大家轻松在设计模式之路上打怪练级!

下面,跟随李一鸣老师走进《漫画设计模式》,看看这本书创作的背后为读者们做了哪些贴心的设计吧~~

2024 年 3 月 18 日,我终于完成了《漫画设计模式》的第一版书稿,历时 7 个月。当时的我如释重负,天真地以为大功告成,只差临门一脚。但没想到又过了近半年的时间,这本书才得以和读者见面。

完成第一版书稿之后的这半年,我经历了校对修改、绘制人物表情、设计封面、绘制 “设计模式之城” 折页、排版、邀约推荐语等一系列的工作。全流程地参与到图书出版的过程之中,可以说是我人生中一份难得的体验。

2024 年 8 月 16 日,我收到了出版社寄来的样书。看到自己的文字和漫画被印刷成出版物,心中确实十分开心和兴奋。但不知为何,这种感觉并没有刚签下出版合同时那么强烈。可能自己的心态已经被漫长的写作过程和无数次的修改磨平,此时的心情反而是水到渠成的平静。

为什么萌生写书想法?

这本书的写作始于 2023 年 8 月 9 日。那是盛夏的一个下午,我刚刚送完孩子们去上画画课,下楼时看了一眼微信,跳出一条添加好友的信息。点开后,发现是电子工业出版社编辑张爽老师的写作邀约。

在这之前,我已经写了 8 年技术博客,也曾经在慕课网写过付费专栏《Java 并发编程学习宝典(漫画版)》。在收到写作邀约的前 2 个月,我画了 10 期《程序员涛哥》漫画。我已经在技术写作的道路上坚持了多年,也取得了一点小小的成绩,但 “写一本技术图书” 一直是我的最终追求。

张爽老师提出 “希望我写一本漫画系列的技术图书”,这和我的想法不谋而合。我近年来一直在坚持写作 “漫画 + 技术” 主题的文章,也曾写出过 10 万 + 阅读量的技术文章,并且当时刚刚画了 10 期程序员漫画,对画画的信心大增。在程序员中,可能我是最会画漫画的;在画漫画的人中,我可能又是写代码最好的。为枯燥的技术加点料,说干就干!

经过简单的沟通,写一本漫画系列的技术书这件事就算定下来了。经历选题、列大纲、试写、审核、修改、选题申报…… 最终在 2023 年 8 月 28 日敲定书名 ——《漫画设计模式》。

为什么选择写 “设计模式”?

这首先来源于《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)原作的经典,时至今日,我每次翻阅这本书,仍旧能有新的感悟。但是这本书的阅读有一定门槛,对于初学者来说存在一定难度。

在我看来,设计模式非常贴近现实世界的场景。人类文明经过几千年的发展,早已沉淀了太多的 “模式”,而软件设计模式自然也跳不出这个大圈子。通过使用生活中的例子类比设计模式,可以大大降低学习的门槛。

更为重要的是,生活中的场景也非常适合创作漫画。因此,即使市面上已经有很多优秀的设计模式图书,我还是有信心写出一本独具风格的《漫画设计模式》。

为什么用 “漫画” 来写 “设计模式”?

将时间的指针向前拨 30 年,我还清楚地记得爸爸带我去少年宫咨询画画课,但是由于和奥数课冲突,最终没有报名。说实话,当时我的心里非常失望,但也无可奈何。

我确实是有点画画的天赋在的。

我爷爷在年轻时,自己绘制皮影、刻窗花,即使 80 岁高龄还绘制了皮影人物谱。

我的父亲年轻时曾经放过电影,在这期间承担着公社宣传的工作,手绘了大量宣传幻灯片。

我小时候很喜欢看漫画,经常临摹书中人物。小学六年级时,我还模仿《七龙珠》,自己画漫画,不过画得很烂,只是为了打发漫长的假期时光罢了。后面随着学业压力加重,我画画的时间越来越少,便逐渐放弃了这个爱好。

但是,谁又能想到:在 30 年后,我能将专业和爱好相结合,完成这本《漫画设计模式》呢?这个世界真的很奇妙!

漫长而艰辛的创作过程

将时间的指针调回到 2023 年 9 月。此时,我正式开始了图书的创作过程。

刚接到写书邀约时的兴奋劲儿很快就过去了,写作的过程非常平淡和枯燥。要说最让我兴奋的事情,那莫过于为每种设计模式找一个生活中可类比的场景!

大多数设计模式比较好找,但有几个设计模式让我绞尽脑汁,在屋里绕了几圈也想不出来恰当的场景。但往往在最痛苦的时候,希望也就快出现了!可能脑海中突然灵光一现,就冒出一个非常契合的场景!紧接着灵感一股脑儿地全都冒了出来,我会立刻飞奔到电脑前一屁股坐下,恨不得一口气将这个设计模式写完。


状态模式的生活场景 —— 立体车库

绘制插图和漫画,是令我非常享受的一个过程。我会把项目上、生活中的经历都画进来。比如租房、我家小区的立体车库、大学时组装电脑、餐饮加盟、需求变更审批、上线流程…… 甚至在参加电子工业出版社博文视点的作者大会时,节目单中有一支叫作 “新帽子” 的乐队,也被我借鉴到了书中,改为了 “新袜子” 乐队!

画画的时候,我一旦定了创意,就不再思考技术的内容,全心扑在画画这一件事上。脑子里想的是如何把人物画生动、画对透视关系、如何配色,等等。虽然画画的时间占到了写书时间的 1/3,大大增加了我的负担,但也让我痛并快乐着。将技术讲明白,并且图文契合、相得益彰,这让我很有成就感。

在实际项目中,设计模式容易被不合时宜地运用,也就是我们常说的过度设计。在书中,针对 “过度设计” 这个难题,我会通过类似下面的插图来提醒读者。

书中各种设计模式的类图,我全部采用手绘的方式,一笔一笔地画出来,在确保可读性的同时,增加一些趣味性,让读者更容易接受。

本书采用 “兔小白” 和 “熊小猫” 对话的方式,展开讲解。在排版阶段,编辑建议将对话的人物名字改为人物头像,根据场景,呈现不同的表情。这是一个很好的主意,我立即动手绘制了 “表情包”!虽然增加了大量工作,但是让对话变得生动起来。

最后说说书中的点睛之笔 —— “设计模式之城” 折页。

这是计划外的产物。在完成第一稿后,编辑要进行第一轮审阅。趁着这个时间空档,我冒出了这个灵感:既然设计模式就存在于日常生活中,那么我可以用一张城市图,画出与设计模式相对应的生活场景。这样不但方便读者记忆设计模式,而且读者可以使用此图快速找到与问题相匹配的设计模式。这张图我画了两周时间,耗费了大量心血。虽然很辛苦,但是很有成就感。

对了!折页中还有彩蛋,加入了我养的龙猫以及朋友家的猫猫、狗狗们!

在这本书的写作期间,家人、朋友给了我很多支持和帮助,十分感谢你们!感谢电子工业出版社博文视点的工作人员,尤其是我的编辑张爽老师,在长达一年的合作中,给了我很多建议,给我改了很多版稿子。希望这本书不辜负这么多人付出的辛勤汗水,能够得到读者的喜爱,并切实为读者提供帮助!

本书围绕主人公 “兔小白” 和 “熊小猫” 的对话展开,辅以百余张贴合内容、生动形象的手绘插画,以轻松、幽默的方式讲解 GoF 的 23 种设计模式。本书共 27 章,

  • 第 1、2 章简要介绍设计模式和设计原则,

  • 第 3~26 章详细介绍设计模式,

  • 第 27 章重点讲解从 23 种设计模式中提炼的 10 种设计手法。

各章的内容结构为:首先,从现实生活中的常见案例切入,讲解设计模式的结构、功能、优势和意图,使读者形成具象的宏观认知;然后,将案例作为编码练习,使用 Java 语言开发,并在一次次代码重构中完善程序设计,引导读者思考程序设计中的问题和解决思路;最后,自然而然地引出设计模式的结构图和适用场景等。

既适合具备一定面向对象语言基础且希望提升程序设计水平的开发人员,也适合想要系统学习设计模式的程序员,还可作为高等院校计算机等相关专业师生的参考资料。

对这《漫画设计模式》有兴趣的读者,可以通过下方解详情。