书评《编写可测试的JavaScript代码》
又到了京东618,出于习惯和往届一样看了看键盘和书籍。键盘除了升级到全filco外已经别无所求,最后还是忍住。书籍的话,作为前端还是主要看JavaScript的书为主,但搜着搜着发现自己JavaScript相关书籍居然都快买齐了...
当然买书和看书是两回事,虽然大部分我都看了,但自认为脑容量不是很大,经常前看后忘,不时需要回顾。所以打算以后在这过程中写下一些书评,帮助自己记忆,也帮助别人选择。
在中国,书的价格真的堪称廉价,其成本之低真是令人发指。相比而言,书价对于整体知识成本来说简直可以忽略不计!我往往更关心的是我所花去的时间和我所得到内容的比值。
今天写的书叫做《编写可测试的JavaScript代码》,英文原版名称《Testable JavaScript》,作者Mark Etban Trostlter,译者徐涛老师。
我买到的是2015年2月第一版,印数3000册,字数31万。从出版信息可以看出这本书还是相当偏门的。好在时间上并不算很老,并且可以说是JavaScript里相当少见的专门谈论测试的书籍。
这是一本讨论测试的书籍,所以中文名有些讨巧,“编写可测试的JavaScript代码”,而书中并没有详细描述“如何编写可测试的代码”,更多的还是在探讨测试JavaScript这个大的主题。
众所周知JavaScript的测试比较麻烦,尤其是浏览器端的部分,这使得当前绝大部分的客户端代码都仅限于"refresh to see if it works",即便编写测试往往是浅尝辄止。比如讨论到单元测试时,作者自己也发出了这样的感慨:
随着时间的推移,Web应用程序越来越重要,单元测试——常规测试——通常会遭到冷遇。最好的情况,也是在交付代码之后才创建单元测试,而最坏的情况,则是永远不创建单元测试。这是很有问题的,因为后测试即不会带来益处,也不会像在开发过程中(或之前)测试那么高效。预防为主,测试为辅。
当然测试是有意义的,只是往往在项目时间压缩中被牺牲掉了。
书的一开始从测试角度描述了一些概念,基本是程序通用概念。然后书的前半部分讨论了复杂度,耦合,事件等代码相关的主题,主要是描述而非展示技巧,所以这需要读者根据描述调整自己的代码。中部谈到测试主题,编写测试,工具以及报表。后部分则主要谈了JS的调试和测试JS的自动化工具。
书一共246页,读完感觉对测试JS方面的知识补全还是比较明显的,但作者是个话痨,言语明显拖沓,有类似博客的文风,感觉此书应精简至150页为佳:) 书中关于关于代码复杂度以及远程调试值得一看,其他依赖于工具的章节则显得有些不合时宜(比如YUI Test框架用的人并不多,目前主流应该是Mocha,Jest)。
我大约零散花了一周看完的,给个3星吧。