阅读笔记大型网站技术架构03
通过阅读第三篇案例分析,我对第13章大型网站典型故障案例分析印象深刻。其一,流程规范。文章中案例讲的是发现某应用发布以后数据库Load迅速飙升,超过报警值,发现该应用发布后出现大量数据库读取操作,而这些数据本来应该从分布式缓存读取。检查发现,缓存的代码被注释掉了,开发的时候忘了取消注释。
自己平常写代码的时候,也经常犯类似的错误,有的时候为了测试程序,就会注释掉一部分功能代码,结果运行的时候总是忘记把之前的注释取消,结果运行报错。
其二,良好的编程习惯。文章中案例讲的是某应用更新功能后,有用户投诉无法正常访问该功能,一点击就显示出错信息,结果发现这些用户都是第一次使用该功能,程序根据历史使用记录构造一个对象,如果该对象为null,就会导致NullPointException。这个案例提醒自己要时刻注意,1)程序在处理一个输入对象时,如果不能明确一个对象是否为空要做空指针判断,2)程序再调用其它方法时输入的对象尽量保证不是null,必要时构造空对象(使用空对象模式)。
平常编程无论是小的练习还是做大的项目,都要养成良好的编程习惯,时刻注意是否为空等问题的处理,写完一处功能就要做测试看看是否能运行,确保通过了再继续下一步处理。就像作者最后结语,软件设计有两种风格,一种是将软件设计得很复杂,以使其缺陷没那么明显;一种是将软件设计得很简单,以使其没有明显的缺陷。自己要做后者,再不明显的缺陷随着时间也会被凸显出来,因此,尽可能将设计做的简单些,即使出现了问题,也能较容易解决。