书籍介绍
烹饪有菜谱,游戏有攻略,每个领域都存在一些能够让我们又好又快地达成目标的“套路”。在程序世界,编程的“套路”就是设计模式。
设计模式是“拿来主义”在软件领域的贯彻实践。和很多人的主观臆断相反,设计模式不是一堆空空如也、晦涩鸡肋的理论,它是一套现成的工具 —— 就好像你想要做饭的时候,会拿起厨具直接烹饪,而不会自己去铸一口锅、磨一把菜刀一样。
随着前端应用复杂度的日新月异,如今的前端应用已经妥妥地成为了软件思想的一种载体,而前端工程师,也被要求在掌握多重专业技能之余,具备最基本的软件理论知识。同时,工程师对设计模式的掌握程度,一定程度上反映着他用健壮的代码去解决具体的问题的能力。因此,设计模式如今已经成为前端面试中无法回避、同时具有较高候选人区分度的一个核心考点。
基于面试、工作的双重需要,相信很多同学不止一次地向设计模式发起过挑战、并草草收场——觉得设计模式难学,是一件非常正常的事情。设计模式的“难”,在于其令人望而生畏的抽象性和知识点的分散性。这带来了本册要着重解决的问题——帮助大家摆脱枯燥乏味的技术恐惧感,最大程度上降低前端设计模式的学习成本。
本书经过近一年时间的打磨,在编写过程中力求内容的可读性、趣味性和时效性。
书中的每一个设计模式,都有它自己的一个“故事”,有它自己的场景。经过我们近20个小节的学习,相信大家会有一个非常惊喜的发现:其实设计模式并不高大上,它是一个非常接地气、非常实际、非常好理解的东西——因为它本身就是一帮非常苦逼的程序员在自己的职业生涯里实打实地踩坑踩出来的。本书的重点不在于对固有理论的反复阐述,而是把读者放到一个正确的场景里、去体会每一个设计模式的好。甚至贯穿设计模式始终的设计原则理论,也会被我们化解到具体的、易于理解的场景片段里去。本书具体的知识结构用思维导图展示如下:
“橘生淮南则为橘,橘生淮北则为枳”——一些在服务端应用场景下看似合理、好用又酷炫的操作,生搬硬套到前端的场景里可能就会弄巧成拙。本书的目的并不是做传统设计模式书籍的“译本”,而是面向前端工程师,讲有利于前端的技术。因此在正式的实战章节里,我们权衡每种模式对前端的价值、对 23 种设计模式做了取舍,保留下来的这些设计模式,具备这两个共性:
- 前端能用,而且好用;
- 面试会考,而且常考。
此外,设计模式中有几个特别重要、特别好使、特别受面试官关注的的,我们在讲解的过程中会有针对性地穿插一些高频面试真题(注意面试题不一定会单开小节,有的面试题就穿插于原理讲解之中~)。具体是哪几个,可能要等大家读到了那一节才知道了哈哈(所以不要随便跳读:))。
本书目录
- 开篇:前端工程师的成长论
- 设计模式的“道”与“术”
- 创建型:工厂模式·简单工厂——区分“变与不变”
- 创建型:工厂模式·抽象工厂——理解“开放封闭”
- 创建型:单例模式——Vuex的数据管理哲学
- 创建型:单例模式——面试真题手把手教学
- 创建型:原型模式——谈Prototype无小事
- 结构型:装饰器模式——对象装上它,就像开了挂
- 结构型:装饰器模式——深入装饰器原理与优秀案例
- 结构型:适配器模式——兼容代码就是一把梭
- 结构型:代理模式——一家小型婚介所的发家致富之路
- 结构型:代理模式——应用实践范例解析
- 行为型:策略模式——重构小能手,拆分“胖逻辑”
- 行为型:状态模式——自助咖啡机背后的力量
- 行为型:观察者模式——鬼故事:产品经理拉了一个<钉钉群
- 行为型:观察者模式——面试真题手把手教学
- 行为型:迭代器模式——真·遍历专家
- 前方的路
你会学到什么?
通过对本书的学习,我们至少可以达到三个目的:
- 充分理解前端设计模式的核心思想和基本理念,在具体的场景中掌握抽象的设计原则
- 掌握前端应用场景中最核心的设计模式
- 会写代码,会写好代码;
- 会面试,能言之有物。
- 会学习,掌握学习方法,不再畏惧看似艰深晦涩的软件理论知识
适宜人群
具备 JavaScript 语言基础即可