只要是程序就会存在漏洞,成熟的程序相对漏洞会少一点,上线之后出了问题并且造成损失,表面上看是程序员代码直接导致的,作为实现者本身来讲是负有一定责任,但如果把所有的过失都归结到程序员身上欠妥,从整个链条上来看项目的负责人要承担很大的责任,因为项目版本的发布和负责人的最后的拍板有直接的关系,项目中除了技术人员还有测试人员,重大的隐患没有测试出来测试人员也是负有一定的责任。
为什么程序这么容易出问题?
1.项目中程序框架设计不合理,导致兼容性或者抗风险能力出问题,好的框架在一定程度上会规避很多不必要的问题出现,而且在新添加功能后不会影响整体逻辑,千军好得一将难求,一个好的架构师对于一个项目启动显得至关重要,但并不是每个软件公司都能请的起高端的技术人才,所以难免开始设计的框架存在问题,架构师不是天生就有的,也是无数项目摸爬滚打出来经验提炼出来的,很多老程序员根据自己做的多个项目积累经验,然后架构出来的东西基本上差异也不会太大。
2.项目周期赶得太急,导致很多功能没有完全走通就匆匆忙忙上线,这种可能导致功能模块在还没有完全调研清楚就直接开搞代码,所以容易在实现功能过程中忽略掉一些细节,这种细节可能在测试过程中不太容易被发现,结果造成问题到客户的手里才被发现,这种会导致出现隐患在里面,常见的项目故障大部分都是在这种场景下出现的。
稳定的产品是靠时间打磨出来的,任何一点出问题都是某一个人的因素,程序员本身而言就是一个执行者完成到什么程度,能够达到什么效果外在影响还是挺大,周期短以及功能复杂都会导致异常。
曾经做过一个项目,有个同事因为在管理指针进行释放内存的时候,没有管理好代码,造成局部的内存泄露,而且是小块内存的泄露,结果连续运行72小时系统就会崩溃,造成很差的客户影响,表面上看是程序员的疏忽造成,但如果在测试阶段能够及时发现这个问题,也不至于到客户现场才能被发现,所以任何一个问题的出现都不是单一的,单纯怪到程序员身上,不太公平。