JavaScript设计模式(0)—— 学设计模式有个鸟用?

  通常在任何系列开始之前,我都会写一篇简短的预告,将这个系列的实践意义进行提取进行总结,以便初学者不需要看具体的内容也可以通过看个开头就决定需不需要学习这部分的内容,在我的许多文章中都有这样的"FBI Warning"。所以在这篇文章中我会先把个人目前所学进行一个简短的总结。

  首先这个系列参考的书籍是曾探——《JavaScript设计模式与开发实践》。简单的评价下这本书与这个作者,个人认为这本书写的很好,基本上作为给人来看的东西,内容是十分合格的,没有什么绕来绕去的地方,例子也都通俗易懂。但是作者就比较一般,书中的内容跟我写博客其实差不多,有深入的思考,但是很少有丰富的实践,硬吹的话,我看完XXX设计模式,然后再出个翻版设计模式,差不多也就这样,当然我的代码水平稍次一点,真正的大佬看起来会觉得代码比较low。以上是个人观点,论真正水平,我跟作者差十万八千里。

  在我开始写这篇文章之前,已经看完了发布者-订阅模式,差不多有半本书这样子,基本上我写文章都是先看后写,然后边看边写,有时候会用到一些比较超前的知识点,后面也基本会补上。当然设计模式这个东西其实也没有什么超前的知识点,只要有一定前端基础的人基本都能看懂。

  在学习设计模式之前,希望各位能搞清楚设计模式是一种总结而不是一种模式。例如我们最常用的for循环,你可以用原生的for(...),也可以使用forEach等方法,既然这种遍历访问的方式这么通用,于是乎就会有一些人跑出来给这种操作方式定义一个高端词汇来显得自己比较高端。即使你从来没听过“迭代器模式”,但这丝毫不会影响你去使用for循环。所谓的设计模式,不过是一些经常使用的操作的“高级说法”罢了。

  那么学习设计模式有什么用呢?

  1.面试的时候装杯,一个forEach,你说成迭代器,听起来就屌

  2.给自己写的代码进行总结和优化,基本上看设计模式都是有代码经验的老码农了,看完设计模式可以比对下自己的哪些代码可以套用设计模式来让自己的代码变得更加精巧和清晰。

  3.学习(抄袭)设计模式的通用方法,提高自己的代码水平。如果让你手写一个深拷贝,你会怎么写?相信在座的各位很少能写出“标准答案”的版本的。大部分人的代码水平就是这样,让你写一个XXX功能或者需求,ok,会写。但是写出来的东西往往是有瑕疵的,如果让你写个深拷贝,我猜你大概率直接去百度复制粘贴。为什么?因为你怕写错,怕漏写,甚至不知道怎么写的也很多。因此学习设计模式,跟着抄一遍别人的“写法”,可以帮助你更有自信的写“完美的代码”。

 

  说了这么多,最后我还是想说,学习设计模式其实并没什么鸟用。大部分人即使看完了,代码水平依旧停留在以前的水准,这是因为设机模式本身是一种总结,在书本上,是对所有设计模式的总结,而对你个人而言,是对你以前写的代码的总结,说白了,就是你以前会的,我给你取个名字,你以前不会的,给你说了你不用你也会忘记,经常实践是记住真理的唯一方式。

  用一个高端比喻总结设计模式:重要的不是你知道发布者订阅模式,而是你能想出来数据双向绑定这个操作。

  

  

 

你可能感兴趣的:(JavaScript设计模式)