程序员的修炼之道读后感(三)

阅读了这本书的第三四章,让我明白了程序的稳定性、健壮性最重要,为了完成这个目的,编程时最好使用最稳妥的编程方式,比如文本编辑,虽然费时费力,但却最稳妥。一定的存储空间换来程序的健壮性我觉得是值得的。

不要意图掩饰程序的瑕疵,勇于承认,因为死程序是不会说谎的,在项目测试时崩溃总比在商业用途中崩溃好。

让工具变为双手的延伸
纯文本的威力Keep knowledge in Plain Text.用纯文本保存知识。文本的威力:不过时;杠杆作用(每一样工具都可以工作在纯文本上);更易于测试;纯文本是永远的公共通信标准。
Shell游戏别受限于GUI界面,回到文本操作吧,让Shell成为你的朋友。Use the Power of Command Shells.利用命令Shell的力量。Cygwin,UWIN是Windows下的Unix Shell工具实现。
强力编辑Use s Single Editor Well.用好一种编辑器。编辑器特性:可配置,可扩展,可编程;Emacs是一个很好的编辑器,Vi也是,EditPlus也是。
源码控制进步远非游变化组成,而是取决于好记性。不能记住过去的人,被判重复过去。源码控制系统(SCCS)是一个长效的Undo功能。我们可以在主干上开发,也可以生成一些完整的分支提供给客户。如果分支情况良好,可以考
虑将分支和主支合并。Always Use Source Code Control.总是使用源码控制。无论怎么样,只要你在计算机上工作就要使用它。VSS,CVS,PCVS,SVN都是很不错的版本控制系统,还有就是ClearCase.
调试调试的目的:解决问题Fix the Problem,Not the Blame.修正问题而不是指责。面对Bug千万不要恐慌或者认为那是不可能的,既然发生了就要积极面对它。如何暴露Bug:1.最好可以和报告Bug的人面谈一下,这样可以搜集更多的数据;2.人工合成测试不能足够地演练应用,必须设计测试边界条件同时实现在现实中用户地使用模式;
测试策略别让Bug离你太远,否则会捉不到它地。1.使数据可视化:Variable name = data value.(直观地数据表达方式)2.跟踪:  a.把小诊断消息打印到屏幕上或者文件中,例如什么printf或者System.out.println之类的;  b.栈的踪迹(Stack trace)。3.橡皮鸭:对着别人解释你的代码,说着说着Bug就出来了;4.消除过程:找问题先找自己的问题,再找别人的问题;再提交Bug报告前,必须先消除你代码中的Bug.造成惊讶的要素:发生了,就认了把,然后努力去解决它。Don't Assume it-Prove it.不要假定,要证明。以后就别在说:“ Oh,My god”了。
文本操纵Learn a Text Mainpulation Language.学习一种文本操纵语言。用途列举:数据库维护,属性访问,测试数据生成,写书,接口,生成文档……
代码生成器Write Code that Writes Code.编写能编写代码的代码。被动代码生成器:只运行一次来生成结果1.创建新的源文件;2.在变成语言只间进行一次转换;3.生成查询表及其他运行时很昂贵的资源;主动代码生成器:在每次需要其结果时被使用取某项知识的一种表示形式,将其转换未你的应用需要的所有形式,说白了就是格式转换。————————————————版权声明:本文为CSDN博主「interhui」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/interhui/article/details/921421

猜你喜欢

转载自www.cnblogs.com/haheihei/p/11760760.html