作为一名开发者,对你影响最深的书籍是哪一本?

影响几代程序员的书非《重构 改善既有代码的设计(第2版 平装版)》莫属。软件开发大师马丁·福勒(Martin Fowler)的不朽经典,普通程序员进阶到编程高手必须修炼的秘笈。

豆瓣评分9.3

一线的实践者们经常很随意地使用“重构”这个词——软件开发领域的很多词汇都有此待遇。

重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

这个定义适用于我在前面的例子中提到的那些有名字的重构,例如提炼函数和以多态取代条件表达式。

动词形式的定义是:

重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

过去十几年,这个行业里的很多人用“重构”这个词来指代任何形式的代码清理,但上面的定义所指的是一种特定的清理代码的方式。重构的关键在于运用大量微小且保持软件行为的步骤,一步步达成大规模的修改。每个单独的重构要么很小,要么由若干小步骤组合而成。因此,在重构的过程中,我的代码很少进入不可工作的状态,即便重构没有完成,我也可以在任何时刻停下来。

如果有人说他们的代码在重构过程中有一两天时间不可用,基本上可以确定,他们在做的事不是重构。

本书是一本为专业程序员编写的重构指南。我的目的是告诉你如何以一种可控且高效的方式进行重构。你将学会如何有条不紊地改进程序结构,而且不会引入错误,这就是正确的重构方式。

本书的目标读者是专业程序员,也就是那些以编写软件为生的人。书中的范例和讨论,涉及大量需要详细阅读和理解的代码。这些例子都用JavaScript写成,不过这些重构手法应该适用于大部分编程语言。为了理解书中的内容,读者需要有一定的编程经验,但需要的知识并不多。

豆瓣评分8.5

程序员都是乐观主义者,他们总是试图走捷径:编写函数代码,并将其插入系统中,然后热切地期望它能运行。有时候这样做行得通。但是有千分之九百九十九的概率,这样做会导致一场灾难:人们不得不在巨型系统的迷宫中操纵这个小小的函数。
每个程序员都知道调试是很困难的。但是,伟大的调试人员可以使这个工作看起来很简单。心烦意乱的程序员向调试大师描述了一个他们花费数小时也没有捕捉到的错误,而大师询问了几个问题之后,他们花几分钟的时间就找到了错误代码。专业的调试人员永远也不会忘记,无论系统的行为乍看起来多么神秘莫测,其背后总有合乎逻辑的解释。

本书描述了计算机编程更具魅力的一面:在可靠的工程之外,在洞察力和创造力范围内结晶而出的编程珠玑。正如自然界中的珍珠来自于磨砺牡蛎的细沙一样,这些编程珠玑来自于磨砺程序员的实际问题。书中的程序都很有趣,传授了重要的编程技巧和基本的设计原理。

阅读本书的一个提示:不要读得太快。要仔细阅读,一次读一章。要尝试解答书中提出的问题——有些问题需要集中精力思考一两小时才会变得容易。然后,要努力解答每章末尾的习题:当读者写下答案时,从本书学到的大部分知识就会跃然纸上。如有可能,要先与朋友和同事讨论一下自己的思路,再去查阅本书末尾的提示和答案。每章末尾的“深入阅读”并不算是学术意义上的参考文献表,而是我推荐的一些好书,这些书是我个人藏书的重要部分。

最后再推荐一本《代码整洁之道》鲍勃大叔作品,程序员,汇聚编程数十年编程生涯的心得体会,阐释如何解决软件开发人员、项目经理及软件项目领导们所面临的棘手的问题。

豆瓣评分:8.6

有豆瓣读者给以下几本书做了排序,顺便问一下,你的书架上的书做了哪些排序。《代码整洁之道》>《代码大全》>《重构》

只要你干过两三年编程,就有可能曾被某人的糟糕的代码绊倒过。如果你编程不止两三年,也有可能被这种代码拖过后腿。进度延缓的程度会很严重。有些团队在项目初期进展迅速,但有那么一两年的时间却慢如蜗行。对代码的每次修改都影响到其他两三处代码。修改无小事。每次添加或修改代码,都得对那堆扭纹柴了然于心,这样才能往上扔更多的扭纹柴。这团乱麻越来越大,再也无法理清,最后束手无策。

你是否遇到过某种严重到要花数个星期来做本来只需数小时即可完成的事的混乱状况是否见过本来只需做一行修改,结果却涉及上百个模块的情况种事太常见了。
怎么会发生这种事什么好代码会这么快就变质成糟糕的代码由多得很。我们抱怨需求变化背离了初期设计。我们哀叹进度太紧张,没法干好活。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月20日
下一篇 2022年5月20日

相关推荐