项目文档编写

一般项目都会包含需求分析、界面原型、概要设计、数据库设计、详细设计、测试用例、接口设计等文档组成

需求分析

需求分析的核心是了解都用户的需求,这套软件需要时间哪些核心功能,解决客户哪些问题。理清楚业务流程。

架构设计

文档概述:包含项目背景、项目目标、文档版本信息、目标读者、参考文档、名词解释之类的一般文档都会有的章节
整体架构:主要从整个IT层描述系统所处的位置,与周边关联系统之间的调用关系
逻辑架构:系统内部功能模块的划分以及各模块功能介绍、相互之间的关系表述
接口设计:包括系统间的接口设计以及内部功能模块之间的接口设计
数据架构:本系统与上下游系统间的数据流关系,以及本系统关键数据表设计、数据管理策略等
技术架构:实施此架构需要用到哪些技术能力,有哪些复用能力及风险
部署架构:系统如何部署,网络拓扑上有何要求,对硬件服务器有何要求,需要几台,是否需要优化服务器参数
非功能性设计:性能、高可用、可扩展性、可维护、安全性、可移植性等
其他说明:如特别约束条件、风险考虑、进度要求、政策限制、环境影响等

概要设计

需要理清楚完成客户需求需要用到哪些技术,需要用那种架构(CS、BS、分布式、集群、hadoop、windows还是linux平台等等)后续架构如何升级,本系统涉及到与哪些系统交互,是如何进行交互的。

设计顺序:先设计界面原型→数据库设计→API接口设计
(设计好数据库理清数据之间的关系有助于API接口具体业务的设计)

详细设计

功能描述+界面原型+业务流程图+数据库设计(包含哪些表、表字段都定义清楚)+技术难点解决方案

流程图设计原则

  1. 根据不同维度绘制不同的流程图,应该包括:大的框架流程图、具体业务流程图、内部交流流程图
  2. 很难做到面面俱到,要有得取舍,对应需要描述细节的可以流程图加文字组合描述
  3. 线框无法标识的就用非常淡的单色背景代替

测试规范

主要是系统各个功能点的测试步骤。包含对系统各个业务流程、各种异常情况的处理。以及需要达到的性能指标。

接口设计

主要是系统提供的对外接口。以及系统内部调用的接口。系统调用第三方平台接口文档也要统一汇总过来避免丢失。

开发

文档齐全了,开发就会简单很多,使用java语言有springboot框架,前端有vue与各种开源UI框架。

加功能

一定要注意新加功能会不会影响旧功能,会不会导致旧功能不能用。重大功能修改还得对所有旧功能进行重新验证。特别是对于一个软件包括做个子系统或者多个进程组成的系统。比如FTP、文件目录变更等

一些重要原则

  • 热点信息:局部性原理
  • 速度快的跟慢的打交道:缓存
  • 抽象
  • 分层:网络分层(应用层、传输层、网络层、链路层、物理层),javaweb(表示层,业务逻辑层,数据访问层)。隔离变化,接口不变的情况下,某一层的变化只局限于本层次
  • 异步:ajax dma nginx
  • 分而治之:递归,程序分模块
  • 编程需要浓厚的兴趣与好奇心

规范

  • 得有人专门审核代码规范

计划安排

  • 可以分期完成,先制定好一期的计划与设计。开发过程中进行二期功能的设计,这样一期开发完成有空余时间可以快速切入二期功能开发。

软件开发难点

  1. 各种字段、方法、变量命名
  2. 由研发人员想需求、想实现

工具使用

流程图绘制工具

  1. 流程图连接点
  2. 页面引用