软件工程在项目里的实践教训

一、惨痛的教训 事件一:以前做的一个项目,前前后后已经花费了2年半的时间,可还是bug不断,每一次客户打电话,对于我来说都是一次痛苦的经历,不到5千行的代码总是改了这里坏了那里,还有许多问题都是偶发性的,很难还原现象,找原因基本如同大海捞针,只能用恶心来回忆找原因的过程。 事件二:现在做的一个项目,去年年底刚做好就拿到现场了,基本没有进行过测试就上了,现在工厂开始验收了,出现了连环bug,一会界面莫名点击崩溃,一会通讯不稳定,在现场,客户盯着你,领导催着你,现场改代码,实在太痛苦。 二、深刻的反思 经过我的惨痛经历,我痛定思痛,有了以下反思。

1. 充分理解需求

开始一个项目之前一定要充分理解需求,一定要有需求文档,一定要和客户充分沟通,理解他的需求,不要不清楚的地方自己想当然地去设计。这些需求包括:有哪些功能模块?硬件资源哪些?检测处理时间多少?允许的误差多少?存储多大?运行环境在哪里?界面怎么交互?甚至界面上的一个Btn到底做多大,什么底色都要弄清楚。

2. 编码前要做设计

不要一接到需求就开始写代码,要先设计,比如定义什么样的数据结构?什么样的类?每个功能模块怎么实现?模块之间怎么分工协作?采用什么样的数据结构和算法?使用什么样的通讯协议?怎么保证通讯的稳定性?什么样的设计方案是最优的?这些都要有个文档来记录,否则你写的代码一定是混乱的,而且是项目越大就越混乱,记住一句话:代码未动,文档先行,文档有2个,一个是需求文档,一个是设计文档,而这恰恰是上学时软件工程这门课里强调的东西。另外切记不要做过度设计,不要让简单的问题复杂化,设计应该要力争让复杂的问题简单话。

3. 重视测试

4. 总结

开发前期重视需求文档和设计文档,中期重视单元测试,后期重视系统测试,不要做过度设计。

经验分享 程序员 微信小程序 职场和发展