书籍推荐《UNIX编程艺术》

这次要推荐的书是《UNIX编程艺术》,这本书成书很早,作者是大名鼎鼎的 黑客 Eric S. Raymond,一位自由、开源软件的倡导者。这本书被国内出版社多次重新出版发行。豆瓣链接-> https://book.douban.com/subject/11609943/

有的人可能会问,你是一个前端程序员,为什么要推荐一本操作系统的编程艺术啊?前端工程师也有必要读这一类书吗?

答案是肯定的,很有必要。

首先,我认为前端工程师务必不要总是因专能领域而固步自封,前端开发人员也是程序员,如果想变得更加牛逼,就不能这么束缚自己。要去接触更广阔的领域(当然,前提最好是前端技术已经到中高级阶段~)。

其次,这本书其实并非关于系统编程的细节,而是基于 UNIX 系统与程序设计的经验,总结出来的软件设计、开发过程中的通用原则与哲学,也即书的题目所指的“编程艺术”。

什么时候可以读这本书?其实理论上来说,任何时候都可以,而且是越早越好。不过,如果你在任何领域编程了两三年(无论前端、后端,乃至传统软件开发领域),有一定的代码量,参与或主导过中大型系统的设计与开发,那么你应该会对《UNIX编程艺术》的见解更为感同身受。

前端开发同样会面临软件复杂度的问题,有一些通用原则,我们实际上已经采用到了,例如:

模块原则:使用见解的接口拼合简单的部件。我们有不少模块系统可以采用:CommonJS,ECMAScript Modules,AMD,等等。

组合原则:设计时考虑拼接组合。言下之意是避免继承。这个理念其实任何 OOP 的教程都会提出:组合优于继承。

分离原则:策略同机制分离,接口同引擎分离。前端开发中的分离原则有多种体现:HTML/CSS/JavaScript 的解耦分离;前后端分离模式的开发流程,等等。

经济原则:宁花机器一分钟,不花程序员一秒。这个原则目前可能只有少数程序员能够领会到。很多人都会过早进行性能优化,这导致代码一开始并不清晰易懂。最终导致的问题就是过段时间再来看这段代码,需要花费很多的时间。而当时的优化可能只是把在浏览器端执行需要2ms的任务改为了0.1ms。要记住:代码是给人写的,不是给机器写的。在性能优化之前,先考虑可读性。

生成原则:避免手工 hack,尽量编写程序去生成程序。如今的前端工程化解决方案就是生成原则的实践之一。Babel.js 是一个符合生成原则的例子。另外就是代码压缩的工具,例如 uglify.js,都是使用程序去生成程序。

还有一些其他原则,例如,简洁原则、吝啬原则(除非却无他法,不要去编写庞大的程序)、透明性原则、通俗原则,等等,也都是每位开发人员应该去思考、践行的。

这本书的许多核心理念与《代码大全》极为相似。两位作者一个是 UNIX 开源世界的黑客,一位曾参与微软 windows 系统开发的工程师,他们在不同系统下的开发经验疏通同归——软件开发中的各种策略都是围绕着如何降低软件复杂度而展开。而这些经验,也同样可以给前端开发人员带来启示。

希望你在读过这本书后,再写代码时,愿意写注释,愿意考虑到其他人读你写的代码时的感受~~

祝好~

KISS.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180415G0GSYG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券