pudongliang 5 年之前
父节点
当前提交
b3d935b946
共有 1 个文件被更改,包括 48 次插入2 次删除
  1. 48 2
      README.md

+ 48 - 2
README.md

@@ -1,7 +1,42 @@
+项目代码的结构仁者见仁智者见智,没有特定的规范,更加没有银弹,只有合适不合适!
+
+下面这套结构是龙飞和我在这么多年在互联网行业开发了几十个应用的一点总结。
+
+首先module的组成:
+
+```
+fw-sample-admin
+fw-sample-api
+fw-sample-job
+fw-sample-mqc
+fw-sample-portal
+fw-sample-rpc
+fw-sample-service
+```
+
+所有业务都集中在了service module中;通过包名区分功能边界;
+
+admin/portal组成后台管理系统;
+
+api作为客户端服务接口提供方和rpc的服务提供方;
+
+rpc作为服务提供方的对外共享包;
+
+mqc作为消息队列的消费方启动(可放在api中);
+
+job作为独立的任务服务;
+
+
+portal方案是参考的免费小说项目作为基础结构;
+
+
+
+下面是包的具体说明:
+
 # fw-sample-admin 包结构描述
     com.mokasz.fw.admin
         controller                  //Api controller
-        ApiApplication              //Api启动类
+        AdminApplication            //Api启动类
         resources                   //资源文件
 # fw-sample-api 包结构描述            
     com.mokasz.fw.api               //针对小程序端,和RPC服务端
@@ -79,6 +114,17 @@ Controller上加上该注解由框架封装ApiResponse
 
 ### 统一线程池 ThreadPoolTaskExecutor;ttlExecutor增强版
 
-### 
+## 一些边界说明
+- controller可以直接使用service, mapper(针对简单的功能)
+-  POST requestBody 必须是Query,ENT
+-  POST responseBody 必须是ENT, DTO,VO
+- 针对复杂的,业务弱关独立的功能,代码放在lib包下,通过报名区分功能;
+- 一个接口只做一件事情(单一职责)
+- 前期开发还没那么多业务特性的时候,别整一些有的没得设计模式进行套用。当业务清晰的时候,有时间进行重构。
+- 
+
+为什么必须: 明确数据来源,当你看到Query的时候,就可以很明确的知道它是来自接口入参,其他同理;
+
+为什么不接口复用:通过字段区分不同功能,然后if else 它看起来就复用了吗? 职责单一才能复用。