Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

《编写可维护的JavaScript》译序 #13

Open
jayli opened this issue Jul 24, 2014 · 1 comment
Open

《编写可维护的JavaScript》译序 #13

jayli opened this issue Jul 24, 2014 · 1 comment
Labels

Comments

@jayli
Copy link
Owner

jayli commented Jul 24, 2014

N.C.Zakas是我最佩服的前端工程师,他是很多人的励志榜样。他那本经典的“红宝书”和“猫头鹰”书,伴随很多前端工程师一起成长。他身上的这种务实的技术风格让人倍感亲切,这本“乌龟书”是他最新的作品,是他在Yahoo工作期间最精华的积累,不仅从技术的普适性角度,还是从人的成长角度,NC.Zakas 不仅从技术层面给予我莫大启发,在从一名独行侠到团队精英的蜕变过程中,也让人看到他勤勉务实的可贵精神,我想正是这种精神,趋势着他在充满变化的前端技术领域保持优势,也正是我们身边的大多数(包括我)所或缺的一种。这本书经过五个月的翻译,中文版已经出版,这里我把译序分享出来,我想,作为前端工程师,这本书是最不应当错过的吧。


译者序

在我的编程生涯中,曾遇到过各种各样的开发者,他们的编程风格天马行空,有时甚至让人哭笑不得。有一种风格被称为“霰弹枪编程”,例如某个方法调用出错 了,我尝试将参数0改为’0′、NaN甚至false,直到试出能“正确”运行的参数为止。当你和这种人组成团队一起编程时,你会发现你的智商变得很低。

比“霰弹枪编程”更温柔一点的编程方式是“撞大运编程”,就是我根本看不懂程序到底在干嘛,但确实能正常运行,这往往是因为这些程序中有很多错误成对 出现,于是就负负得正,看起来就正确了,这种程序实在是“动弹不得”,只能重构。当你和这种人组成团队时,上帝都会同情你。

当然,当渐渐意识到这类随意编程风格带来的危害时,很多人开始思考什么才是“好”的编程风格。不少人开始向高手学习,尽管有时并不知道高手为什么要把 代码写成这个样子。于是越来越多的hack代码出现了,那些看起来晦涩难懂、短小精悍却又暂时行之有效的代码片段越来越流行,尤其是在处理浏览器兼容性问 题时,这种情况更甚。有些人会在这些hack代码片段旁边打上记号,以便以后有问题时能留意到此。这时,问题又出现了,不同人做记号的方法又不一样,我的 天哪!

如果你自诩为一名有能力有良知的程序员,遇到这种“烂”代码时往往将之重构,为了修改几个拼写错误的bug,而修改10个类,并且重构与这10个类有 关联的另外20个类,甚至修改了打包脚本以及部署配置文件。这就是一种有着代码洁癖的人很“青睐”的编程风格—“屠宰式编程”。

霰弹枪式、撞大运式、不求甚解式、屠宰式……

编程是一项复杂的工程,却又如此充满喜感,让人又爱又恨。但有一点确定无疑,即这些风格因为缺少基本的约束,会导致团队协作效率低下,甚至影响产品的 存亡。而对于Web开发领域最为流行却有着先天设计缺陷的语言JavaScript来说,情况更加糟糕。一直以来都缺少宏观的设计模式和微观的编程风格的 指导,从而导致JavaScript编程始终没有权威和统一的指导思想和方法论。因此,大部分Web前端团队依然将很大精力放在解决注入代码冲突、命名规 范性、代码复用模式等团队编程最基本的问题上。迟迟走不上创新、高效的快车道。

我们很欣喜地看到,在设计模式领域,《JavaScript设计模式》(JavaScript Design Patterns)和《JavaScript编程模式》(JavaScript Patterns)两本书填补了这方面的空白,而在编程风格领域,这本《编写可维护的JavaScript》(Maintainable JavaScript)真可谓姗姗来迟。

本书正是向开发人员阐述如何在团队开发中编写高可维护的JavaScript代码,涵盖了编码风格、编程技巧、自动化、测试等几方面,不过,同样的原 则也适用于其他任何语言。本书作者是大名鼎鼎的Nicholas C. Zakas。他曾是Yahoo!的首席前端开发工程师,在完成了从一名独行侠到团队精英的蜕变后,他站在前端工程师的角度为我们提炼出许多的最佳编程实 践,其中包括很多来自工业生产的最佳法则。应用这些技巧和技术,可以使你的团队编程从侠义的个人偏好的阴霾走出来,走向真正的高效和高水准。

本书由淘宝北京前端团队翻译,在翻译过程中,我们始终保持一种学习的心态,因为正像前面提到的,作者给出的很多经验正是我们手头工作中不在意却又至关 重要的,这种学习心态也让我们在这次翻译过程收获颇丰。我们尽最大的努力,力求翻译后的表述在还原作者原意的同时又不失中文的流畅。但难免由于译者水平有 限而有所纰漏,还请各位高手多多批评指正。

最后,我要感谢人民邮电出版社信息技术分社的陈冀康老师的信任和鼓励,宁愿让我们多花些时间来保证质量,同时感谢我的同事魏凡哲(陶清)、贺亮(完真)、杨翰文(地极)、王保平(玉伯)参与本书的试读和审校。如果要提交本书的勘误和建议,请在本书的介绍页面留言

2013年1月于北京

@jayli jayli added the blog label Jul 24, 2014
@yaochiqkl
Copy link

赞 最近刚看完这本书
这本书适合斧正自己的一些编程规范和几处技巧

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants