对于开发者来说,“设计模式”这个概念肯定不陌生,它是经过分类的、代码设计经验的总结,能将编写代码进行工程化,从而提升开发效率。
简而言之,它就是“代码模板”。
设计模式 + 代码逻辑 => 清晰高效的程序
“写作模式”这个叫法也借鉴于此,是我针对一些热门技术文章的写作方式进行的总结,能帮我们快速地构思出结构清晰的文章。
下面通过7篇热门技术文章来总结7种写作模式。
清单式
举例
《2018年你需要知道的11个JavaScript库》大纲:
|
|
这里列举了13个GitHub上star数量较多的js库,各个库之间是并列的,相互之间并没有直接联系,即使调换说明顺序也不会对文章造成影响。
模式
代码
这种模式结构非常简单,我们可以直接用数组的形式来描述它:
|
|
小结
把同一类(一般是并列关系)的知识/技能点汇聚起来,分条进行阐述。适用于有一定关联关系,但逻辑性不强的碎片化的知识点。
对比式
举例
《为什么Goroutine能有上百万个,Java线程却只能有上千个?》大纲:
作者用JVM来指代Java语言,针对线程占用内存空间以及CPU的使用率两个方面,对JVM和Go进行了对比。
模式
代码
这种模式可以理解为“清单式”的2.0版本,所以我们用对象数组来描述它:
|
|
小结
将两三个类似的概念放在一起讨论,在一些特定的维度上将两者进行对比,最后总结出结论。
疑问式
举例
|
|
文章按照 what(什么是跨域) -> why(为什么会跨域) -> how(怎么解决跨域) 的思路来进行的写作,具有一定的递进关系。
模式
代码
因为这种模式的出现已经有弱逻辑关系了(顺序上有依赖,内容上无依赖),用串行的函数来描述它最适合不过了:
|
|
小结
通常由多个相关联的问题组合而成,逻辑关系层层推进,比如why(为什么)、what(是什么)、how(怎么样)。
发散式
举例
|
|
围绕日志系统分条陈述,包括日志级别、内容、存储、内容、性能。
模式
代码
可以用JSON数据类型来描述这种结构
小结
和清单式有些相似,但它是将一个具体的概念拆分成多个部分,然后针对每个部分进行阐述。
流程式
举例
《如何Docker化任意一个应用?你需要参照这10步》大纲:
|
|
作者按照操作流程编写文章,具有强逻辑。
模式
代码
我们还是用函数来描述逻辑。
|
|
说明
这种模式并无太多技巧可言,通常适合实践类型的文章,按照操作顺序来讲解。
探索式
举例
|
|
文章结构简单,逻辑清晰,先提出技术难点,然后给出技术解决方案。
模式
代码
这种探索方式和循环有些类似:
|
|
说明
针对开发中的某个问题一步一步探索最优解决方案。一般的思路: 提出问题==>寻找解决方案==>现有方案的问题==>最终优化方案。
插画式
举例
《你闺女也能看懂的插画版Kubernetes指南》这篇文章比较特别和少见,没有明确的提纲,但是丝毫不影响阅读体验,因为图文穿插的方式能够缓解阅读疲劳,同时更容易理解。
模式
代码
如果要用代码来表示这种模式的话那么我们可以把图片看成注释来进行描述:
|
|
小结
图文结合,生动形象。
总结
总结一下本文提到的7种写作模式,他们是:
- 清单式。
- 对比式。
- 疑问式。
- 发散式。
- 流程式。
- 探索式。
- 插画式。
当然我们在写较长的文章的时候可以将多种写作模式结合起来,全文用某种模式,而不同章节内部用其它模式。
如果要把这7种写作模式抽象成写作原则的话,那么可以用两个词概括:转化和联接。
何谓转化?
- 把复杂的事情讲简单。
- 把简单的道理讲深刻。
何谓联接?
- 把分散的东西关联起来。
- 把关联的东西拆开对比。
最后给读者一个思考题来检验阅读效果:本文属于那种写作模式,你有没有看出来呢?
一部由众多技术专家推荐, 帮你成为具有全面能力和全局视野工程师的进阶利器—— 《了不起的JavaScript工程师》出版了! 点击下方链接即刻踏上进阶之路!
- 淘宝:https://detail.tmall.com/item.htm?id=600756390664
- 京东:https://item.jd.com/12562349.html?dist=jd
- 当当:http://product.dangdang.com/27922044.html