软件架构

Table of Contents

1. UI

设计好一个 UI,基本的功能就大致确定了。

2. 取名

  • 设计目录的结构,每个目录下一定要有 Readme 来描述清楚各个文件。个人不推崇 Web 应用在实际生产环境下还有 Readme 文件,这样会暴露程序的设计,被外人访问到了,影响安全性。
  • 文件结构
  • 各个文件的功能
  • 文件的格式,主要是配置文件和日志文件格式。配置文件公司要求必须用文本格式,比如 YAML、JSON,不提倡使用 XML(占的字符更多)。不提倡用二进制格式的目的是为了方便人阅读,如果要涉及到传输性能,可以用压缩文本的方式。

3. 接口定义

可以画流程图,弄清楚文件之间如何调用、什么时候调用、什么时候触发,比如:

返回一个值(每个值是什么意思,错误值说明)

4. 数据库结构设计

  • 表名、表段名、字段名,它们拿来做什么
  • 索引设计,在之前就要设计好
  • 每个表的 insert、delete、select、update 的函数设计

5. 概要框图

比如按机房地域、服务器等为目标进行设计,详细描述每一个是做什么用的。

6. 限定条件

限定条件一定要量化,比如 Linux 默认可以创建多少个进程、多少个线程和句柄等等,这需要对底层知识的累积,如果这些知识匮乏,可能一个程序看上去没问题,但调试很长时间都找不到原因。

7. 触发机制

比如某个函数在某种情况下才会被触发、某个文件在某种环境下才会被调用等。

8. 核心算法

如果核心代码过于复杂,可以在注释中加入伪代码,方便别人理解。