天洑软件 发表于 2019-11-27 16:43:05

快速开发思路畅想

快速开发思路畅想

作者:朱启明



本文可能存在与软件工程理论相悖之处,诚然亦有本人在软件设计层面上积累不足的因素。通过总结在过往工作中的经验和教训,寻力在快速开发、软件易维护、可扩展性上做适合自己的平衡。

开发过程大致分为下几个阶段。

      准备阶段:此阶段主要包括用户需求分析,技术需求分析。首先研读相关技术文档、与项目经理以及技术小组成员仔细交流、探讨清楚用户需求。在此基础上,对项目自己职责范围内进行技术需求分析。一方面,理清需求上有哪些较独立的技术模块,其中有哪些模块在开发上存在一定的技术难度;另一方面根据项目周期,能做到对那些技术需求在开源社区已经有较好支持的开源方案,合理的去集成、利用。如存在不明确的技术需求,在这一时期可多花时间做技术调研。问Google,注意stackoverflow.com上是否有人解答相似问题,看github.org上有没有相关的开源工程等等。尽量不重复造车轮,快速集成部署开源方案,最大化提高软件研发效率。

       开发前期:快速编码实现模块基础接口,编写测试代码快速验证模块接口功能。模块间面向对象层次结构、低耦合、封装性必须在开发前期保持住水准。前期工作就是要快速验证方案可行性,每一个模块先做出Demo,对各个模块相应的实现技术要素都有一个全局的把握,让风险可控。

       开发中期:这一阶段,单独拎出前期做出Demo的各个子模块,从程序全局再思考,小规模重构它的文件层次设计、把可独立存在的分支模块独立出去让程序主体更轻盈,更易阅读和维护、考虑类层次设计是否做到简化编码工作、接口设计合理性,模块内部和外部调用关系简明清晰、用户交互的完善性。这一阶段通过细致的编码工作让软件框架严谨,代码条理清晰、易于维护和扩展。

       开发后期:软件各模块功能完成后,花少许时间再次review代码,对程序结构的合理性做最后一次审思。同时测试、大量的测试,利用软件测试各种方法来修正复杂逻辑堆叠后的思维误区。

       最后,贯穿于整个开发过程中,思考-交流-学习-思考,遇到技术问题去寻求在程序设计语言范畴内的elegant way来解决。力求做出品质上乘、体验优秀、用户满意、专业好用的软件产品。




页: [1]
查看完整版本: 快速开发思路畅想