<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                使用本框架作為開發項目,必須遵守以下規范. # 開發工具強制統一 - 前端: VS Code - 后端: IntelliJ IDEA - 數據庫設計: CHINER - 數據庫客戶端: DBeaver # IDEA 強制安裝插件 - Lombok:自動生成get set等方法 # IDEA 推薦安裝插件 - Maven Helper: maven 依賴排查 - Free Mybatis plugin: mybatis xml 快速切換 - RestfulTool: 接口查找 - Alibaba Java Coding Guidelines : 阿里代碼編碼指南 - Git commit Template: git 提交消息模板 - GitToolBox: Git工具 # VS Code 推薦安裝插件 * [Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify)\- Iconify 圖標插件 * [windicss IntelliSense](https://marketplace.visualstudio.com/items?itemName=voorjaar.windicss-intellisense)\- windicss 提示插件 * [I18n-ally](https://marketplace.visualstudio.com/items?itemName=Lokalise.i18n-ally)\- i18n 插件 * [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur)\- vue 開發必備 (也可以選擇 Volar) * [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)\- 腳本代碼檢查 * [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)\- 代碼格式化 * [Stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint)\- css 格式化 * [DotENV](https://marketplace.visualstudio.com/items?itemName=mikestead.dotenv)\- .env 文件 高亮 # 約定 - 源碼、jdk、mysql、redis、rabbitmq、nacos、seata等存放路徑禁止包含中文、空格、特殊字符等。 ``` 正例: D:/projects/lamp-cloud D:/projects/lamp-boot D:/projects/lamp-util D:/projects/tools/nacos_121 D:/projects/tools/redis D:/projects/tools/seata 反例: D:/Program Files/lamp-cloud D:/Program Files/lamp-boot D:/Program Files/lamp-util D:/Program Files/視頻配套項目軟件_window版(配置文件被群主優化過)/nacos_121 D:/Program Files/視頻配套項目軟件_window版(配置文件被群主優化過)/redis D:/Program Files/視頻配套項目軟件_window版(配置文件被群主優化過)/seata ``` # 數據庫設計 (參考c_user表) * 使用CHINER來設計表結構 * 必須顯式指定`主鍵`, 勿用復合主鍵. 主鍵的命名統一為: `id` * 任何表至少包含3個字段: bigint id、 datetime create_time、bigint created_by (可以自行修改 EntityType) * 關于狀態字段根據業務含義命名為: state、status - 如(隱藏、顯示),(是、否),(可用、不可用)、(啟用、禁用) 等字段用 state - 如 OrderedStatus, ShippingStatus,ReceiptedStatus 等字段用 status * 界面上要顯示成樹形結構的表, 至少需要4個字段: id、parent_id、label、sort_value * 表中有以下含義的字段, 盡可能的采用同樣的命名規則: - 名稱: name (樹型結構用: label) - 編碼: code - 描述: describe_ - 最后修改數據的用戶ID: updated_by - 最后修改數據的時間: update_time - 是否內置數據: readonly_ * POJO 類的布爾屬性不能加 is,而數據庫字段必須加 is_,要求在 resultMap 中進行 字段與屬性之間的映射。 * 主鍵索引名為 pk_字段名;唯一索引名為 uk_字段名;普通索引名則為 idx_字段名。 說明:pk_ 即 primary key;uk_ 即 unique key;idx_ 即 index 的簡稱 * 不得使用外鍵與級聯,一切外鍵概念必須在應用層解決 * 不用存儲過程 * 數據庫名、表名、字段名統一使用小寫 + `_` * varchar 是可變長字符串,不預先分配存儲空間,長度不要超過 5000,如果存儲長 度大于此值,定義字段類型為 text,獨立出來一張表,用主鍵來對應,避免影響其它字段索 引效率。 * 表名命名規則: “b_業務名稱_表的作用” 、 “c_業務名稱_表的作用” . `b_ ` 表示業務表, `c_`表示核心表(權限系統的一整套) * 表、字段 必須加注釋 * 表名注釋支持換行,第一行會被視為表名。 表的介紹請換行填寫。 * 字段的第一行視為字段簡介,詳細介紹和枚舉類型請換行 * 所有字段盡量根據業務設置合理的`缺省值`,盡量避免表中出現 NULL值 * 當字段為外鍵時,字段名為: 關聯表\_id, 注釋需要在字段注釋基礎上,換行加上`#關聯表表名`來說明關聯的哪張表。(注意英文#號) * 當字段為枚舉時,需按照下面當格式添加注釋: ~~~ 注釋模板1: 注釋內容 #枚舉類名{枚舉值英文名:"枚舉值英文注釋"; ...} 注釋模板2: 注釋內容 #枚舉類名{枚舉值英文名:val,"枚舉值英文注釋"; ...} 注釋模板3: 注釋內容 #枚舉類名{枚舉值英文名:val,"枚舉值英文注釋",val2; ...} 注釋模板4: 注釋內容 #{枚舉值英文名:"枚舉值英文注釋"; ...} 其中枚舉類名可以沒有,如果沒有,則生成的枚舉值名為:表對應的實體名 + 當前字段對應的屬性名(首字母大寫) + Enum 枚舉值例子: 文件類型 #FileType{PAN:云盤數據;API:接口數據} 數據類型 #DataType{DIR:1,目錄;IMAGE:2,圖片;VIDEO:3,視頻;AUDIO:4,音頻;DOC:5,文檔;OTHER:6,其他} 數據類型 #{DIR:目錄;IMAGE:圖片;VIDEO:視頻;AUDIO:音頻;DOC:文檔;OTHER:其他} ~~~ * 當字段需要使用Echo模塊回顯功能時, 需要按照下面當格式添加注釋 ~~~ 模版1: @Echo(api = ORG_ID_CLASS, beanClass = Org.class) 模版2: @Echo(api = DICTIONARY_ITEM_CLASS, dictType = DictionaryType.NATION) 模版3: @Echo(api = STATION_ID_CLASS) ~~~ * 其他更多約束盡量遵守阿里規范 # 后端 * 詳細的代碼注釋: 類、字段、方法、參數上必須加上doc注釋, 方法內部適當的位置加上行注釋和塊注釋. doc注釋標明 作者(@author)、創建時間(@date)等. * 使用Mybatis-plus 相關查詢接口時, 使用系統封裝的 Wraps , 而非mp官方的 Wrappers * 在xml寫sql 需要使用模糊查詢時, 使用自定義類型處理器: `fullLike` , 會自動給你拼接% 如: name like #{name, typeHandler=fullLike} * 盡量多的使用jdk8 + 新特性 * 必須顯示的使用 泛型 * 暴露給前端的接口參數不宜過多, 使用DTO將必要的字段暴露給前端.避免前端大海撈針! 如: 保存接口, id、createTime、createUser、status 等字段不應該顯示在swagger文檔的入參里面, 而是由后臺自動賦值. * 暴露給前端的接口,一定要在swagger文檔上體現合理的注釋! * 其他更多約束盡量遵守阿里規范 * 常量的復用層次有五層:跨服務共享常量、應用內共享常量、子工程內共享常量、包內共享常量、類內共享常量。 1) 跨服務共享常量:放置在lamp-commom模塊中,constant 目錄下。 2) 應服務共享常量:放置在lamp-xxx-entity中, constant 目錄下。 3) 子模塊共享常量:即在當前模塊的 constant 目錄下。 4) 包內共享常量:即在當前包下單獨的 constant 目錄下。 5) 類內共享常量:直接在類內部 private static final 定義。 * 集合初始化時,指定集合初始值大小。 說明:HashMap 使用 HashMap(int initialCapacity) 初始化,如果暫時無法確定集合大小,那么指定默 認值(16)即可。 正例:initialCapacity = (需要存儲的元素個數 / 負載因子) + 1。注意負載因子(即 loader factor)默認 為 0.75,如果暫時無法確定初始值大小,請設置為 16(即默認值)。 # 前端 * 業務代碼都寫在`src/views/lamp`下面, 建包規則跟 項目的菜單層級保持一致. 包名跟菜單的路由uri保持一致(大小寫也要一致) 如: 用戶管理的路由為: `#/user/user` , 代碼就放在`src/views/lamp/user/user/Index.vue` * 其他更多約束盡量遵守阿里規范 # 提交代碼規范 1. 每次提交盡量按功能點或bug提交代碼,哪怕是只修改了一行代碼,一個字母,盡量不要一次性提交過多的功能和bug等 2. 及時拉取、及時提交、及時推送、及時合并; 3. 提交代碼前,記得勾選IDEA提交框中的`Reformat code`、`Rearrage code`、`Optimize imports`選項 3. 提交代碼時按照以下模版進行注釋 type: 用于說明 commit的類別,只允許使用下面幾個標識: fix:修補bug hotfix:緊急修復bug chore:構建過程或輔助工具的變動 docs:文檔(documentation) feat:新功能(feature) refactor:重構(即不是新增功能,也不是修改bug的代碼變動) style: 僅僅修改了空格、縮進等,不改變代碼邏輯(不影響代碼運行的變動) test:增加測試 revert:回滾到上一個版本; perf:改善性能和體現的修改 build:改變構建流程,新增依賴庫、工具等(例如webpack修改); - scope of this change : 本次變更范圍 用于描述改動的范圍,格式為項目名/模塊名,例如: node-pc/common rrd-h5/activity,而we-sdk不需指定模塊名。如果一次commit修改多個模塊,建議拆分成多次commit,以便更好追蹤和維護。 - short description : 簡要說明 - Long description : 詳細說明 - breaking changes : 不兼容變動 break changes指明是否產生了破壞性修改,涉及break changes的改動必須指明該項,類似版本升級、接口參數減少、接口刪除、遷移等。 - close issue : 關閉指定Issue
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看