程序员修炼之道阅读笔记02
本周阅读了程序员修炼之道(从小工到专家)的第四章《注重实效的偏执》、第五章《弯曲,或折断》、第六章《当你编码时》的相关内容,对其中一些值得我们学习的地方进行了摘录。
1.在制作任何软件时不免的会遇到很多输入的情况,而我们在编写的时候又有谁考虑过输入如是否合法的问题呢,在老师的要求,不断练习中才醒悟,开始对输入进行一点的限制,书中对使用DBC时,在输入时简单的列举输入域的范围是什么、边界条件是什么、例程允许交付是什么、更重要的是它不允许交付什么。这其实是一个非常重要的事情,如果输入不正确的数据,系统到底该如何处理,你无法确定用户将对系统输入什么,为了不使自己的程序奔溃,你必须学会,如何用一定的限制,限制用户输入正确的信息。
2.对程序进行异常的处理以及资源的分配:你无法估计程序在运行过程中会出现什么样的情况,为了不出现程序由于异常出现卡死的情况所以要根据自己的情况进行异常处理,要根据异常返回错误信息,是自己清晰地看到异常出现的具体位置,以及具体情况。另外要对资源的分派进行一定的控制,在分派某项资源的例程或对象应该负责接触该资源的分配。这一点也是老师一直在强调的无论是文件还是数据库,用完后就必须显示的关闭,不要无辜的占用资源通道,这对你陈旭的安全性以及资源的利用都是一个众多的问题。这些问题看似都不起眼,也比一定都会出现,但是一旦出现问题想要排查还是相当困难的,所以在今后的编程过程中,一定要养成规范的编程习惯。
3.解耦与德墨忒尔法则:把你的代码组织成最小的组织单位(模块),并限制他们之间的交互,如果随后出现于折中必须替换某个模块,其他模块仍能够继续工作,使用德墨忒尔法则使你的代码适要尽量做到用性更好、更健壮。其实德墨忒尔法是分而治之的一种具体体现。更改一个小的与外界几乎没有任何交互的模块比从打模块中修改要容易得多。所以在今后的编程中一定要尽量做到,一个小的模块只处理一件事。
4.靠巧合编程:最为开发者,我们也工作在雷区,每天都有成百上千的陷阱等着抓我们,我们应该警惕,不要得出错误的结论,我们应该避免靠巧合编程--依靠运气和偶然的成功,而要生死熟虑的编程。对于写程序用胸有成竹,切记,提笔就写依靠巧合编程。