编者按:
人生如逆水行舟,不进则退。开发者想要保持自身的竞争力,做到所向披靡,知识储备必不可缺。这就意味着,简单的代码阅读远远不够。
快速迭代的信息社会,技术前进的速度远超人类历史上的任何时期,技术攫取呈现出碎片化的特征,开发者更倾向于通过网络搜素寻求问答。然而,这种浅尝辄止的阅读方式,会给人深沉的浮躁感,难以做到为自己切实所用。
新语言、新工具持续更替,让人目不暇接,学习过程中必定伴随着各种琐碎的问题。事实上,许多伟大的技术人在以前就遇到过同样的难题,并且提出了相应的策略和解决方法。虽然具体问题具体对待,但其中蕴含的思考方式,所凝结的智慧成果,只会历久弥新,给开发者们以新的启迪,提纲挈领,助力自身的技术升级。
本文总结了业界的十本经典书籍,我们来一一探索吧。
《The Pragmatic Programmer》
Andrew Hunt,David Thomas
著
《The Pragmatic Programmer》
,即程序员修炼之道。这本书直击编程陈地,适用于所有编程语言,创建用户乐于接受的、可工作和易维护的代码。它不仅会改变你的编程习惯,还会改变你的性格。
Andrew Hunt
在多个行业工作过,电信、银行、金融服务和公用事业,还有一些外来领域,如医学成像、图形艺术、网络服务。他擅长于将已验证的技术实践和前沿技术相结合,创造新奇而实用的方法。所以,这本书的见解涉及了许多有趣的领域,从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术,开发者能够从中学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容。
“程序员入门书、终极书、DR
Y、KISS···从做人到做程序员,这本书教给了你一切,你所需的只是遵循书上的指导。”——知乎,萧井陌
“程序员技艺具备的古老特点,此书表达的很清楚。此书涉及了软件工程角度,个人技艺如何配合的方方面面。”——豆瓣读书,皂角菌
《The Mythical Man-month》
Frederick Brooks
著
《The Mythical Man-month: Essays on Software Engineering》
,即《人月神话:软件项目管理之道》。这本出版于1970年的书被奉为软件行业的《圣经》,即使在现在看来也是字字珠玑。Frederick Brooks是1999年的图灵奖得主,致辞中曾提到,“今天我们所看到的计算机体系结构、软件工程,以及三维计算机图形,均受惠于布鲁克斯的开创性工作,是他改变了这些领域的面貌。”他在软件工程领域的最广为人知的经典著作《人月神话》,让软件工程学真正进入人们的视野。
《人月神话》对软件开发过程的几个重要关键点,提出了独到的见解:提倡外科手术式的团队组织;软件项目的核心概念要由很少的人来完成,以保证概念的完整性;软件开发中最大的风险往往不是技术的缺陷,而是缺少沟通;在开发中,要保持适度的文档;在软件开发的过程中,只有适度改进,没有包治百病的银弹。
“书中记述的前辈们在解决这些窘迫所体现的才智和热情,是永远值得后人借鉴的,也将启迪我们开拓未来之路。”——豆瓣,pythia
“Software Development
的圣经。如果只能读一本书,那么是这本书。”——豆瓣,浪人BabyL
《Clean Code: A Handbook of Agile Software Craftsmanship》
Robert C·Martin 著
《Clean Code: A Handbook of Agile Software Craftsmanship》
,即《代码整洁之道》。软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都必须承认。
Rober C.Martin,Object Mentor
公司总裁,也是面向对象设计、模式、UML、敏捷方法学和极限编程领域的资深顾问。作为编程领域的佼佼者,他给出了一系列行之有效的整洁代码操作实践,并提出一种观念:代码质量与其整洁度成正比。本书阅读对象为一切有志于改善代码质量的程序员及技术经理,内容涵盖从命名到重构的多个编程方面,虽然书中所有的例子都用的Java,但其经验适用于任何编程语言。
“用整理代码的决心替代创造废话的冲动。你会发现自己成为更优秀、更乐观的程序员。”——豆瓣,陈
“本书中提倡写代码犹如写文章,对此观点我印象深刻!如何才能写出整洁代码呢?总的原则无非是
KISS(Keep It Simple Stupid)
。”——豆瓣,Wuqifu
《The Clean Coder: A Code of Conduct for Professional Programmers》
Robert C·Martin 著
《The Clean Coder: A Code of Conduct for Professional Programmers》
,即《代码整洁之道:程序员的职业素养》,这是本列表中
Robert C·Martin
的第二本书,建议在上一本书之后阅读。成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。
Robert C. Martin
以自己40余年编程生涯的心得体会,介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态进行软件开发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,助力专业软件开发人员具备令人敬佩的职业素养。这本书探讨的主题可能不是你希望的,但一定是你需要的。
“创造性的输入,产生创造性的输出!这本Bob大叔定义专业程序员为目的的书,从个人的精进练习到时间管理,测试,需求,压力,到理想的团队,描述作者的程序员修炼之道。”——豆瓣,liuwill
“这本不厚的书,给了普通程序员走向“专业”的灯塔。知易行难,“专业”的路上总有各种各样的拦路虎,也许我会再走作者标明了的错路,我也并不孤单,但心里知道这是错误的,不要走远。每看到这种书,低沉的士气会再次振奋。”——豆瓣,银光
《Refactoring: Improving the Design of Existing Code》
Martin Fowler
著
《Refactoring: Improving the Design of Existing Code》
,即《重构:改善既有代码的设计》。
Martin Fowler
,世界软件开发大师,在面向对象分析设计、UML、模式、XP和重构等领域都有卓越贡献,现为著名软件开发咨询公司ThoughtWorks的首席科学家。本书揭示了重构的过程,解释重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。其中提出的重构准则将帮助开发者一次一小步地修改代码,从而减少开发过程中的风险。