員工入職開發規范文檔V1.0
===
**目錄索引:**
- 編碼規范
- SVN代碼提交規范
- Eclipse使用設置與技巧
- Maven鏡像配置
- 性能與安全
- 基本規范
### 一、編碼規范
例如:表名 :jeecg_sys_demo
#### 1.代碼文件命名規則
首先:表名采用駝峰寫法轉換為Java代碼使用單詞 jeecg_sys_demo => JeecgSysDemo
[1].control命名 :JeecgSysDemoControl
[2].Servlice命名:JeecgSysDemoServiceI/JeecgSysDemoServiceImpl
[3].JSP命名 :jeecg-sys-demo.jsp(表單頁面)
jeecg-sys-demo-list.jsp(列表頁面)
jeecg-sys-demo-*.jsp(新增表單頁面 例如:detail)
[4].control中方法命名:
頁面觸發業務方法以do*開頭
頁面跳轉方法以go*開頭
(方法標簽注釋需和方法名保持一致)
[5].page/entity字段定義必須是對象類型
int --> Integer
#### 2.代碼注釋規范
[1].代碼存在缺陷或者留有功能點的代碼,采用以下方式進行標示
//TODO author:zhangdaihao for:插入未完成 date:20130711
[2].系統已有代碼的修改采用以下注釋
//----------------------------------------------------------------
//update-begin--Author:zhangdaihao Date:20130205 for:[bugfree號]樹機構調整
//update-end--Author:zhangdaihao Date:20130205 for:[bugfree號]樹機構調整
//----------------------------------------------------------------
[3].業務邏輯注釋
a.方法注釋 參入傳出參數注釋說明 ctr+shift+J
### 二、SVN代碼提交規范
#### 1.代碼修改注釋
//update-begin--Author:zhangdaihao Date:20180101 for:[bugfree號]樹機構調整--------------------
//update-end--Author:zhangdaihao Date:20180101 for:[bugfree號]樹機構調整----------------------
#### 2.SVN提交注釋
[author:用戶名 date:20130203 for:(bugfree號碼)增加查詢條件,組織機構]
#### 3.修改文件記錄
代碼修改日志 :/jeecg-framework/doc/日志/代碼修改日志.log
數據庫修改日志:/jeecg-framework/doc/日志/DB修改日志.log
#### 4.SVN忽略不提交的文件配置
進入eclipse設置頁面,過濾編譯文件svn提交
Team->Ignored Resources點擊Add Pattern,分別輸入以下內容,并使其保持選中狀態
.classpath
.project
.settings
*.class
target
#### 5.svn提交避免沖突,先同步
先同步對比代碼,項目右鍵: Team -> 與服務器同步,三個方向看本地修改、服務器修改,沖突代碼。

### 三、Eclipse使用設置與技巧
#### 1.進入eclipse設置頁面,修改工作區編碼
General->Workspace->Text file encoding修改為UTF-8,
New text file line delimiter 修改為Unix

#### 2.進入eclipse設置頁面,取消js驗證
Validation->取消所有選項,只保留classpath dependency validator校驗
Javascript->VIlidator->Errors/Warning 將Enable javascript semantic validation選項勾掉
如果還有錯,把js文件拷貝到其他目錄,刪除出錯的js文件后再拷貝回來,可以去掉錯誤提示
#### 3.設置package explorer視圖
Window->Show View->輸入package explorer,選中并點擊確定,然后拖動到面板左側替換Project Explorer
#### 4.導入自定義代碼注釋模板
Java->Code style->Code template 點擊Import codetemplates.xml
首先,需要加載指定的代碼模板,打開Code Templates后選擇Comments,再點擊Import,將jsecode_eclipse_codetemplates.xml模板導入。

#### 5.常用快捷鍵
Alt+/ 代碼提示與補全,例如輸入syso后按此快捷鍵
Ctrl+/ 單行注釋,取消單行注釋
Ctrl+Shift+/ 多行注釋
Ctrl+Shift+\ 取消多行注釋
Ctrl+Shift+o 導入package,刪除多余的package
Ctrl+Shift+f 格式化代碼(對于大段代碼不要使用)
Alt+Shift+S 源碼操作快捷菜單
Ctrl+e 切換tab
Ctrl+o 快速定位類內方法
Ctrl+t 查看繼承關系,選中接口名稱按此快捷鍵
Ctrl+Shift+r 快速定位資源包括xml文件,properties等
Ctrl+Shift+t 快速定位類文件
### 四、Maven鏡像配置
````
找到 maven老家 conf/settings.xml,
??在<mirrors>標簽內增加阿里云maven鏡像 最終結果見下面:
??<mirrors>
? ?? ? <mirror>
? ?? ?? ?? ?? ??<id>nexus-aliyun</id>
? ?? ?? ?? ?? ??<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
? ?? ?? ?? ?? ??<name>Nexus aliyun</name>
? ?? ?? ?? ?? ??<url>http://maven.aliyun.com/nexus/content/groups/public</url>
? ?? ???</mirror>?
? ? </mirrors>
````
### 五、性能與安全
#### 1.String 與StringBugffer
````
不要使用如下String 初始化方法:
String str = new String(“abcdef”);
這將產生兩個對象,應當直接賦值:
String str = “abcdef”;
在處理可變String 的時候要盡量使用StringBuffer 類,StringBuffer 類是構成String 類的基礎。String 類將StringBuffer 類封裝了起來,(以花費更多時間為代價)為開發人員提供了一個安全的接口。當我們在構造字符串的時候,我們應該用StringBuffer 來實現大部分的工作,當工作完成后將StringBuffer 對象再轉換為需要的String 對象。比如:如果有一個字符串必須不斷地在其后添加許多字符來完成構造,那么我們應該使用StringBuffer 對象和她的append() 方法。如果我們用String 對象代替StringBuffer 對象的話,將會花費許多不必要的創建和釋放對象的CPU 時間。
````
#### 2.對象使用
````
避免在循環中頻繁構建和釋放對象。
不再使用的對象應及時銷毀。
如無必要,不要序列化對象
````
#### 3.同步
````
在不需要同步操作時避免使用同步操作類,如能使用ArrayList 時不要使用Vector。
盡量少用同步方法,避免使用太多的synchronized 關鍵字。
盡量將同步最小化,即將同步作用到最需要的地方,避免大塊的同步塊或方法等。
````
#### 4.final
````
將參數或方法聲明成final 可提高程序響應效率,故此:
注意絕對不要僅因為性能而將類、方法等聲明成final,聲明成final 的類、方法一定要確信不再被繼承或重載!
不需要重新賦值的變量(包括類變量、實例變量、局部變量)聲明成final。
所有方法參數聲明成final。
私有(private)方法不需要聲明成final。
若方法確定不會被繼承,則聲明成final。
````
#### 5.垃圾收集和資源釋放
````
不要過分依賴JVM 的垃圾收集機制,因為你無法預測和知道JVM 在什么時候運行GC。盡可能早的釋放資源,不再使用的資源請立即釋放。
可能有異常的操作時必須在try 的finally 塊中釋放資源,如數據庫連接、IO 操作等。
````
### 六、基本規范
1. 代碼中不能使用System.out.println(),e.printStackTrace(),必須使用logger 打印信息。
2. 新寫的代碼,提交前必須格式化ctr+shif+f
3. 修改eclipse默認換行長度
打開Eclipse的Window菜單,然后
Preferences->Java->Code Style->Formatter->Edit ->Line Wrapping->Maximum line width:默認80
加個0,改成800就行了
4.eclipse中自定義類的toString模版生成Json字符串
```
{"${member.name()}":"${member.value}","${otherMembers}"}
```

- 總體介紹
- 快速了解
- 平臺優勢
- 技術支持
- 社區榮譽
- 開發環境準備
- JEECG私服Maven
- 代碼結構說明
- 入門開發環境搭建
- 開發工具
- 代碼生成器使用
- GUI代碼生成器
- Online代碼生成器
- P3插件代碼生成器
- 代碼生成器配置
- 功能介紹
- 權限開發手冊
- Online開發權限
- Online表單訪問規則
- 列表按鈕權限控制
- 列表數據權限控制
- 頁面表單權限控制(一對多表)
- 頁面表單權限控制(單表)
- 其他
- 二級管理員手冊
- 接口權限配置
- 平臺權限設計總覽
- 編碼開發方式
- 列表按鈕權限用法
- 列表數據權限用法
- 數據權限自定義SQL
- 表單權限用法
- UI標簽庫文檔
- AuthFilter(頁面權限標簽)
- Autocomplete(自動補全標簽)
- BaseTag(樣式和JS引入標簽)
- Choose(彈出選擇標簽)
- ComboTree(下拉樹形選擇框)
- Datagrid(數據列表標簽)
- DepartSelectTag(部門樹選擇標簽)
- DictSelect(數據字典下拉選擇框)
- FormValidation(表單提交及驗證標簽)
- HasPermissionTag(頁面權限標簽)
- Menu(左側菜單生成標簽)
- MutiLang(國際化標簽)
- OrgSelectTag(部門樹列表選擇標簽)
- SelectZTree(Ztree樹控件)
- Tabs(選項卡父標簽)
- TreeSelectTag樹分類標簽
- Upload(上傳標簽)
- UserSelectTag(用戶選擇標簽)
- WebUploader(上傳標簽)
- 查詢構造器
- 查詢過濾器
- 高級查詢構造器
- 專題功能介紹
- 國際化使用
- 多數據源使用
- 定時任務
- 平臺JWT接口文檔
- 消息中心
- Online在線開發
- Online二次開發
- Online代碼生成
- Online唯一性校驗配置
- Online查詢機制(數據權限)
- Online樹形表單配置
- Online表單填值規則
- Online表單對外接口
- Online表單控件
- Online表單配置
- Online表單高級應用
- Online報表開發
- Online圖形報表配置
- Online數據報表配置
- Online移動報表配置
- 自定義表單設計
- 自定義表單權限
- 列表空間權限控制
- 功能介紹
- 常規控件權限控制
- 自定義表單配置
- 自定義表單二次開發
- 自定義表單控件
- 自定義表單數據源
- 自定義表單模板
- 自定義表單配置
- 自定義表單高級應用
- 表單數據維護
- 附錄小技巧
- datagrid擴展屬性用法
- Formvalid新增屬性tiptype的使用
- JEECG單點集成文檔
- Jeecg定時任務開發
- JEECG常見問題貼
- Redis與Ehcache切換文檔
- Toolbar自定義js參數規則
- UI標簽規則
- 列表多表頭的設計
- 列表拓展字段展示
- 列表自定義查詢條件
- 員工入職開發規范文檔V1.0
- 數據列表合計功能
- 登錄權限攔截器排除方法
- 組織機構導入功能使用說明
- 表單字段重復校驗方法
- JEECG新技術
- 新版UI技術方案