程序员修炼之道 - (EPUB全文下载)
文件大小:0.19 mb。
文件格式:epub 格式。
书籍内容:
程序员修炼之道1 我的源码让猫给吃了2 软件的熵3 石头汤与煮青蛙4 足够好的软件5 你的知识资产6 交流!7 重复的危害8 正交性9 可撤消性10 曳光弹11 原型与便笺12 领域语言13 估算14 纯文本的威力15 shell游戏16 强力编辑17 源码控制18 调试19 文本操纵20 代码生成器21 按合约设计(1)21 按合约设计(2)22 死程序不说谎23 断言式编程24 何时使用异常25怎样配平资源
1 我的源码让猫给吃了 注重实效的程序员的特征是什么?我们觉得是他们处理问题、寻求解决方案时的态度、风格、哲学。他们能够越出直接的问题去思考,总是设法把问题放在更大的语境中,总是设法注意更大的图景。毕竟,没有这样的更大的语境,你又怎能注重实效?你又怎能做出明智的妥协和有见识的决策? 他们成功的另一关键是他们对他们所做的每件事情负责,关于这一点,我们将在“我的源码让猫给吃了”中加以讨论。因为负责,注重实效的程序员不会坐视他们的项目土崩瓦解。在“软件的熵”中,我们将告诉你怎样使你的项目保持整洁。 大多数人发现自己很难接受变化,有时是出于好的理由,有时只是因为固有的惰性。在“石头汤与煮青蛙”中,我们将考察一种促成变化的策略,并(出于对平衡的兴趣)讲述一个忽视渐变危险的两栖动物的警世传说。 理解你的工作的语境的好处之一是,了解你的软件必须有多好变得更容易了。有时接近完美是惟一的选择,但常常会涉及各种权衡。我们将在“足够好的软件”中探究这一问题。 当然,你需要拥有广泛的知识和经验基础才能赢得这一切。学习是一个持续不断的过程。在“你的知识资产”中,我们将讨论一些策略,让你“开足马力”。 最后,我们没有人生活在真空中。我们都要花大量时间与他人打交道。在“交流!”中列出了能让我们更好地做到这一点的几种途径。 注重实效的编程源于注重实效的思考的哲学。本章将为这种哲学设立基础。 1 我的源码让猫给吃了 在所有弱点中,最大的弱点就是害怕暴露弱点。 ——J. B. Bossuet, Politics from Holy Writ, 1709 依据你的职业发展、你的项目和你每天的工作,为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石。注重实效的程序员对他或她自己的职业生涯负责,并且不害怕承认无知或错误。这肯定并非是编程最令人愉悦的方面,但它肯定会发生——即使是在最好的项目中。尽管有彻底的测试、良好的文档以及足够的自动化,事情还是会出错。交付晚了,出现了未曾预见到的技术问题。 发生这样的事情,我们要设法尽可能职业地处理它们。这意味着诚实和坦率。我们可以为我们的能力自豪,但对于我们的缺点——还有我们的无知和我们的错误——我们必须诚实。 负责 责任是你主动担负的东西。你承诺确保某件事情正确完成,但你不一定能直接控制事情的每一个方面。除了尽你所能以外,你必须分析风险是否超出了你的控制。对于不可能做到的事情或是风险太大的事情,你有权不去为之负责。你必须基于你自己的道德准则和判断来做出决定。 如果你确实同意要为某个结果负责,你就应切实负起责任。当你犯错误(就如同我们所有人都会犯错误一样)、或是判断失误时,诚实地承认它,并设法给出各种选择。不要责备别人或别的东西,或是拼凑借口。不要把所有问题都归咎于供应商、编程语言、管理部门、或是你的同事。也许他(它)们全体或是某几方在其中扮演了某种角色,但你可以选择提供解决方案,而非寻找借口。 如果存在供应商不能按时供货的风险,你应该预先制定一份应急计划。如果磁盘垮了——带走了你的所有源码——而你没有做备份,那是你的错。告诉你的老板“我的源码让猫给吃了”也无法改变这一点。 提示3 Provide Options, Don’t Make Lame Excuses提供各种选择,不要找蹩脚的借口 在你走向任何人、告诉他们为何某事做不到、为何耽搁、为何出问题之前,先停下来,听一听你心里的声音。与你的显示器上的橡皮鸭交谈,或是与猫交谈。你的辩解听起来合理,还是愚蠢?在你老板听来又是怎样? 在你的头脑里把谈话预演一遍。其他人可能会说什么?他们是否会问:“你试了这个吗……”,或是“你没有考虑那个吗?”你将怎样回答?在你去告诉他们坏消息之前,是否还有其他你可以再试一试的办法?有时,你其实知道他们会说什么,所以还是不要给他们添麻烦吧。 要提供各种选择,而不是找借口。不要说事情做不到;要说明能够做什么来挽回局面。必须把代码扔掉?给他们讲授重构的价值(参见重构,184页)。你要花时间建立原型(prototyping),以确定最好的继续前进的方式(参见原型与便笺,53页)?你要引入更好的测试(参见易于测试的代码,189页;以及无情的测试,237页)或自动化(参见无处不在的自动化,230页),以防止问题再度发生?又或许你需要额外的资源。不要害怕提出要求,也不要害怕承认你需要帮助。 在你大声说出它们之前,先设法把蹩脚的借口清除出去。如果你必须说,就先对你的猫说。反正,如果小蒂德尔丝(Tiddles,BBC在1969~1974年播出的喜剧节目“Monty Python's Flying Circus”中的著名小母猫——译注)要承受指责……
2 软件的熵 尽管软件开发几乎不受任何物理定律的约束,熵(entropy)对我们的影响却很大。熵是一个来自物理学的概念,指的是某个系统中的“无序”的总量。遗憾的是,热力学定律保证了宇宙中的熵倾向于最大化。当软件中的无序增长时,程序员们称之为“软件腐烂”(software rot)。 有许多因素可以促生软件腐烂。其中最重要的一个似乎是开发项目时的心理(或文化)。即使你的团队只有你一个人,你开发项目时的心理也可能是非常微妙的事情。尽管制定了最好的计划,拥有最好的开发者,项目在其生命期中仍可能遭遇毁灭和衰败。而另外有一些项目,尽管遇到巨大的困难和接连而来 ............
书籍插图:
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 程序员修炼之道 - (EPUB全文下载)