软件开发流程规范
前言
根据项目要求,以及相关的软件开发流程和最近遇到的各种问题,如何才能交付符合软件设计规范以及用户需求的软件,如何避免在开发中出现的一系列问题和重复劳动,需要对开发过程中出现的各种问题做一个详细的总结。以目前的开发流程来看,主要集中在开发、部署、测试以及需求变更阶段,这几个阶段需要特别的注意。
1.一个完整的软件项目开发流程 (这里有几章图倒是挺有用的)
2.完整的IT项目开发流程 (这篇文章其实写的也非常的详细)
3.值得参考的项目开发流程 (这篇文章中,有一点值得注意的,就是在开发中遇到的问题,即便我们在开发中未曾遇到相应的问题,但是也需要作为警惕)
4.前端项目开发流程 (这篇文章其实比较简单)
1.项目启动阶段
此阶段为项目的论证阶段,主要由项目经理、技术负责人、以及相关人员参与,进行项目开发的可行性分析,讨论各种现有的技术方案,人力物力成本,评估各个开发人员的能力。
2.需求阶段
此阶段主要就是明确项目的需求,设计项目的大致方向,对项目的安全性、可维护性、可扩展性,项目的进度以及时间节点进行明确而充分的定义。
3.设计阶段
设计阶段,也是整个项目进程的较为重要的一环。项目设计要尽可能的详细。大到各项功能,各个界面,小到各个按钮的功能,设置按钮的样式,颜色等,都要在设计图上,或者是详细设计书中体现。
3.1.功能设计
主要编写项目的功能结构图,并对各个功能进行详细的说明,这个功能的作用什么,如何操作,最后的结果是什么。
3.2.数据库设计
数据库设计,主要就是对数据库中各个字段及其含义进行详细的描述,通常会和功能设计进行融合,一个功能,对应一个或者若干张表,其他的一些规范,详见参考文章。
(1) 数据库命名规范
(2) 表命名规范
(3) 字段命名规范
(4) 索引命名规范、视图命名规范、存储过程命名规范、函数命名规范、触发器命名规范、约束命名规范、用户命名规范
(5) 数据表设计原则
1.数据库表和表字段的命名规范 这个规则说明有些简单,没有相关的示例
2.数据库表字段命名规范 这里还有一些示例,字段类型规范,数据库中每个字段的规范描述,还提到了表设计步骤:一般情况下每张表都有着五个字段,追踪数据的来源和修改,并且只能逻辑删除,不能物理删除,重要!!!
3.公司用的 MySQL 团队开发规范,太详细了,建议收藏! 表命名规范,字段命名规范,索引命名规范、视图命名规范、存储过程命名规范、函数命名规范、触发器命名规范、约束命名规范、用户命名规范,还提到了数据库对象设计规范,存储引擎的选择、字符集的选择、表设计规范
4.数据库表字段命名规范 命名规范,命名示例以及优化。
4.开发阶段
该阶段主要作用就是规范开发者的开发以及编码规范。避免在开发中出现代码结构不清晰,较难维护以及没有注释的情况。
4.1编码和注释
系统编码应该符合相关语言的通用编码和命名规范,比如:Google Java Style Guide,5个JavaScript编码规范-包括AirBnB, GitHub 和 Google,其中比较重要的就是代码的空格缩进,变量的命名等。
代码注释,是编码过程中的重中之重,每一个函数都需要写注释,包括入参和出参的含义,变量的用途要写明,大块代码要编写相关的逻辑说明。
1.Java开发规范
4.2.接口说明
编写代码中,除需要在代码中编写相关的注释之外,还需要提供一份独立的接口文档说明,详细说明各个接口的请求参数以及返回值。
5.部署阶段
(1) 部署的版本主要分为测试版和正式版,测试版通常在域名中添加dev,比如能源管理系统WebPC版正式版phems.proheng.net,测试版phems.dev.proheng.net。
(2) 测试版部署到ECS4上,正式版部署到ECS6上。
(3) 部署时通常采用AzureDevops(192.168.1.241)上的自动化部署工具进行部署,正式版检索分支为cloud,测试版检索分支为dev或者是master。
6.测试阶段
测试阶段分为自测和他测。
(1) 自测:也就是自己测试,根据项目需求设计书,项目需求变更文档等内容中列出的相关的项目功能,进行各项功能的逐一测试。此过程中,可能涉及到其余部分的功能,在测试中需要注意。
(2) 他测:在自己测试没有相关问题后,可以提交测试版,指定专人进行测试,目前来说以ui测试为主要测试人员,并需要测试人员出具相关的功能测试报告。
7.项目维护
在开发以及上线过程中,不可避免的会出现各种各样的问题,在测试阶段,或者上线之后,出现的各种问题以及bug等,需要及时的记录问题产生的原因,时间以及解决方法。同样的,在软件的运维过程中,出现的各种问题也应一并记录。
8.常规文档
根据项目需求,调整相关的项目文档。有些软件项目比较小,数据设计文档和项目设计文档可能都合并到一起了;有些项目不需要项目变更文档。
- 需求文档
- 项目设计文档
- 数据库设计文档
- 项目部署文档
- 接口说明文档
- 需求变更文档
9.项目变更
项目需求变更时,应先编写需求文档->提交需求文档确认->修改->再次确认,最后根据需求的优先级,调整项目的开发进度。
10.开发过程复盘
这一步为总结经验,主要总结开发中存在的各种问题,比如功能完成度,代码完成时间等。
11.总结
目前主要的问题,其实就是沟通以及文档的完善。我们应该先从文档开始入手,并经过反复的沟通和修改,最后才落实到开发上。
结合我在一个小公司中,作为唯一一个开发人员,要坚持做开发,做文档,做产品,做架构的经历来说,在日常中主要,还应该考虑如下几点:
(1) 找大公司上班,小公司你学不到什么东西。
(2) 没有产品经理的情况下,文档一定要做好。
(3) 产品的交互要仔细考虑,屏幕分辨率
(4) 软件测试,软件测试,软件测试,软件测试