软件架构

Table of Contents

1. UI

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

2. 命名

  • 统一好命名法则,下划线命名、驼峰等等。
  • 设计目录的结构,项目源码中要有 README 来描述清楚文件、目录的用途。注意 Web 应用在生产环境中不要让 README 可被访问到。
  • 文件结构
  • 各个文件的功能
  • 文件的格式,主要是配置文件和日志文件格式,如 INI、YAML、JSON,不提倡使用 XML(占的字符更多)。为了便于阅读,避免用二进制格式,如果要涉及到传输性能,可以用压缩文本的方式。

3. 接口定义

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

函数要写上参数含义、传值类型、返回一个值(每个值是什么意思,错误值说明)。

4. 数据库结构设计

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

5. 概要框图

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

6. 考虑限定条件

限定条件一定要量化,尤其是服务端程序,比如 Linux 默认可以创建多少个进程、多少个线程和文件句柄等等,这需要对底层知识的累积,如果这些知识匮乏,可能一个程序看上去没问题,但运行时随时可能爆发问题,还要花不少时间去找原因。

7. 触发机制

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

8. 核心算法

对于复杂的核心代码(尤其涉及到算法),在注释中加入关键的伪代码,方便别人理解。