一:整体架构
二:代码规范
1、命名规范:除了类名首字母大写外,其他的函数名、变量名遵循驼峰式命名,全局变量使用全部大写。
2、每个函数(关键函数)及关键类、关键功能定义处要写上日期、作者、功能、参数等。
3、代码书写要考虑到跨平台特性及软件兼容性。
4、在代码中避免出现明显的数字参数定义,把一些改变的参数定义为一个有意义的变量名称,单独放在一个文件或者是配置文件中,更改的时候只需要更改配置文件即可。
5、我有个朋友是爵士音乐家,他有次跟我说:如果你不是乐队里最差的演奏者,马上换支乐队。我现在在Spotify工作,在这里我每天都觉得自己是个【狗屁程序员】,也因此我离开了上一家公司,从Spotify重头开始。当我在这里再也感觉不到自己是个【狗屁程序员】的时候,我会选择离开,然后找一个能让我再次感到自己是坨屎的地方。这种策略在我的职业生涯里确实 帮了我大忙。 ------译自 Quora
6、
一、需求分析:
(1)预算估计
(2)时间进度估计
(3)充分列出需求分析文档(文档包含客户提出明确的项目需求点和未提及的不可避免的需求点)这个步骤尽可能包含详细的每个功能模块,列成表格形式,同时以10-50打分制进行每个功能难度、开发优先级划分
(4)对项目需求点及项目难度进行负责任评估(这个评估的方式就是通过对项目功能进行模型建立,找寻类似的开发模型,并且分析功能需求与找到的模型中一样的地方和不一样的地方进行具体评估;还有一种可能就是这种评估通过经验进行分析)
【培养一种透过功能看模型本质的思维能力。】
二、软件设计:
概要设计
(1)评估完成后根据需求分析文档进行功能点模块提取(尽可能详细列出)
(2)对提取出来的功能模块点进行分类、单元类别汇总提取(这个分类过程要尽可能科学,尽量一个类别能正确包含子功能模块)利用分层思想
(3)对汇总出来的功能模块类别建立初步类文件设计(不一定一个单元类别就只包含一个类文件,有可能多个类文件共同属于同一个单元类别)
(4)分析单元类别之间的关系以及单元内类文件间的关系、接口设计
(5)根据设计原则和适当的设计模式对软件架构进行整体设计
详细设计
(1)功能模块下的算法设计、程序设计(扩展性、耦合度、维护性等原则)
(2)数据结构设计
(3)接口设计
三、具体编码:
(1)模块划分好后,理清楚项目的整个流程方向,对项目整体有个完整清晰的认识
(2)模块功能调研(查阅相关知识、资料、文档)
(3)制定项目开发进度表
(3.1)选择合适的开发语言,面向问题编程
(4)正式编程
(5)单元测试 、函数测试
(6)系统集成及测试
(7)代码重构、版本控制、极客编程
四、软件测试:
(1)单元测试、函数测试、功能测试、防御性测试 、安全性 测试、性能测试
(2)黑盒测试(输入输出)
(3)灰盒测试(初步进入系统了解)
(4)白盒测试(深入系统进行测试)
五、软件维护:
(1)代码重构
(2)功能拓展、升级、变更等