Parcourir la source

Gitbook Auto Published

Willin Wang il y a 8 ans
Parent
commit
93d8cf90ae
5 fichiers modifiés avec 69 ajouts et 0 suppressions
  1. 1 0
      SUMMARY.md
  2. BIN
      _static/design/er.png
  3. BIN
      _static/project/test.png
  4. 62 0
      design/system.md
  5. 6 0
      project/structure.md

+ 1 - 0
SUMMARY.md

@@ -4,6 +4,7 @@
   - [需求分析](design/requirements.md)
   - [产品设计](design/product.md)
   - [系统架构](design/architecture.md)
+  - [系统实践](design/system.md)
 - [项目](project/README.md)
   - [结构](project/structure.md)
   - [Benchmark](project/benchmark.md)

BIN
_static/design/er.png


BIN
_static/project/test.png


+ 62 - 0
design/system.md

@@ -0,0 +1,62 @@
+# 系统架构设计实践
+
+一个开放平台的设计大概思路。
+
+## 第一步:定位用户
+
+开发者,分企业开发者和个人开发者。
+
+## 第二步:系统功能设计
+
+心中先有个梗概,列出列表。
+
+最核心的功能模块:
+
+1. 提供开放接口
+2. 提供开放文档
+  1. 提供API文档
+  2. 提供SDK
+    1. SDK下载,来源各个组,如嵌入式、移动开发、服务器端,提供各种语言的SDK版本
+    2. 除了SDK下载还需要提供SDK使用说明,整合进文档中
+
+其他功能模块:
+
+1. 用户中心
+  1. 开发者认证
+2. 产品管理
+
+---
+
+然后可以搭配脑图、流程图、时序图、用例图等建模工具,设计核心业务模块的流程。
+
+## 第三步:设计数据库表结构
+
+建库建表非常关键。主要原则为,减少冗余数据、避免表字段过多、提高查询性能。
+
+最好是以数字id为主键,避免使用自增id(影响数据同步),外键关系不用外键,关键字段设置索引。
+
+首先第一张表,应该是用户表,虽然不是核心业务,但所有核心业务都与用户相关联,也需要注册登录才能进行。
+
+所以先设计用户表。用户表应该至少两张表,一张是用户基本信息表,只存用户名、密码等或最常用字段,如登录信息;另一张是认证信息,当然也可以分别为企业开发者用户、个人开发者用户建两张表,因为不同的认证方式需要的字段也是不同的。通过用户id字段将用户其他信息表数据进行关联。
+
+示例:
+
+![ER图](/_static/design/er.png)
+
+上图为ER图的一个示例,Windows下有 PowerDesigner、Visio等工具,Mac下用MySQLWorkbench。
+
+(可以参考已有系统的用户体系设计,但开发者平台与用户产品系统存在一些细节差异。)
+
+另外,前期也可以考虑加入一些日志表,如认证记录表,存一些历史的认证信息。根据项目时间预算,如果前期不考虑,后期也需要考虑加上。
+
+## 第四步:搭建系统框架
+
+先搭建一个大框架,配置缓存数据库,加入通用类,配置端口,并且能够运行。
+
+(可以参考现有的项目以及项目章节的结构)
+
+搭建测试框架(如果项目进度预算允许)。在项目实现过程中的细节,关注下一章节的内容中讲解。
+
+## 第五步:迭代
+
+重复上面的过程,完善新功能模块设计,加入到已有系统。

+ 6 - 0
project/structure.md

@@ -48,3 +48,9 @@
     ├── webpack.config.js
     └── webpack.config.prod.js
 ```
+
+## 测试:BDD
+
+![BDD](/_static/project/test.png)
+
+上图为BDD测试目录,非测试用例文件(或目录)以`_`开头。