软件架构
1. UI
设计好一个 UI,基本的功能就大致确定了。
2. 命名
- 统一好命名法则,下划线命名、驼峰等等。
- 设计目录的结构,项目源码中要有 README 来描述清楚文件、目录的用途。注意 Web 应用在生产环境中不要让 README 可被访问到。
- 文件结构
- 各个文件的功能
- 文件的格式,主要是配置文件和日志文件格式,如 INI、YAML、JSON,不提倡使用 XML(占的字符更多)。为了便于阅读,避免用二进制格式,如果要涉及到传输性能,可以用压缩文本的方式。
3. 接口定义
可以画流程图,弄清楚文件之间如何调用、什么时候调用、什么时候触发。
函数要写上参数含义、传值类型、返回一个值(每个值是什么意思,错误值说明)。
4. 数据库结构设计
- 表名、表段名、字段名,它们拿来做什么
- 索引设计,在之前就要设计好
- 每个表的 insert、delete、select、update 的函数设计
5. 概要框图
比如按机房地域、服务器等为目标进行设计,详细描述每一个是做什么用的。
6. 考虑限定条件
限定条件一定要量化,尤其是服务端程序,比如 Linux 默认可以创建多少个进程、多少个线程和文件句柄等等,这需要对底层知识的累积,如果这些知识匮乏,可能一个程序看上去没问题,但运行时随时可能爆发问题,还要花不少时间去找原因。
7. 触发机制
比如某个函数在某种情况下才会被触发、某个文件在某种环境下才会被调用等。
8. 核心算法
对于复杂的核心代码(尤其涉及到算法),在注释中加入关键的伪代码,方便别人理解。