分享給新手程序員

 

當年真是充滿活力啊,大概12年年中,完成了人生第一個項目,總結了30條代碼經驗,過去幾年了,分享下咯....

適合1年左右新手閱讀喔


代碼規範:

一、DAO:所有的關於session的用try。。catch。。finally

在try中執行,finally中colse session

 

 

二、頁面的增改,將對象 填充到頁面。。。。

刪除的時候:可以學增加,刪除,前提是,先查詢得到對象,修改不需要,因爲可以修改本來就能獲得對象

 

 

三、刪除:刪除後 page保持不變 傳id,不涉及到模型對象

 

Page模式的時候,在tolist 的時候也要將page放入request中,在tolist的時候初始化page,關於ESP系統中的分頁 由一汽大衆任務管理中的分頁爲準,所有的提交用函數提交,在函數上加分頁標識,最簡單的也用函數提交

 

四、各種驗證,各種空值,需要多加註意

 

五、封裝list判斷方法

list!=null &&list.size()>0  return true or false

 

 

六、以後jdk版本不低於jkd1.6.5

 

 

 

七、Action中page用構造方法實例化

 

八、CheckBOX不勾上就沒法傳值

 

 

九、當數據的處理很頻繁的時候有可能從數據庫中查詢出來的是空的

現在的解決方式是用for循環重新查詢,有數據則break,else,,,continue.(根本的解決方式是,後臺邏輯儘量不用對象查詢)。儘量一句sql完成一個功能。當然在系統的關鍵部位都要加for循環和日誌。

 

十、寫代碼,先寫註釋,將要實現的什麼功能先寫好,

將註釋寫完後,在註釋中添加代碼。

代碼的前後臺儘量分開,後臺代碼儘量用sql,而前臺代碼可以用HQL。

 

十一、儘量想辦法一個方法中最多開一個session,

而session中做的事情只是和數據庫交互。

也就是效率第一

 

 

十二、在代碼中寫死的任何參數用常量類封裝或者用一個配置文件封裝,

正代碼中不得存在任何寫死的變量或常量

 

 

十三、在使用一個新的版本的時候 儘量先去看看他有一些什麼新的功能或者優化

 

 

在和數據庫交互的時候全部用for+try的結構

十四、關於jdbc的resultSet,set值的時候要記住按照查詢出來的順序set,否則會報‘流已關閉’哦

 

十五、Java 中的按位或 a |=b;意思是把a和b都換成2進制然後賦值給a,意思是a= a|b;a|b是一種算法

 &:當兩邊操作數的位同時爲1時,結果爲1,否則爲0。如1100&1010=1000
      | :當兩邊操作數的位有一邊爲1時,結果爲1,否則爲0。如1100|1010=1110
      ~:0變1,1變0
      ^:兩邊的位不同時,結果爲1,否則爲0.如1100^1010=0110

 

 

十六、程序的好壞評估

一個程序,一個系統是否優秀,不是他的代碼有多優秀,算法有多精妙,而是他的適應性。一個優秀的程序必須有很強的適應性,特別是對於敏捷軟件來說。

對於敏捷軟件來說,需求必定是源源不斷的改變,程序要能及時的適應這些需求,改的最少的情況下來實現相應需求,當然這也對代碼的要求有些偏高 ,有時候甚至會降低代碼性能,這些付出一般情況下都是值得的。

一個好的程序追求高複用,一個好的工具被多次複用是大家都追求的,就像當前流行的很多框架一樣。當然這裏的複用工具一定要制度化,很多敏捷軟件開發小組最缺乏的就是這點,很多人寫wangNiMaUtil。我表示非常的鄙視

一個好的程序,最重要的不是他的代碼,而是是否有一套和他緊密相連的文檔。這裏的文檔包括需求文檔、設計文檔、架構文檔、數據字典、(UML圖)、技術文檔、僞代碼。

十七、軟件質量

軟件的質量通常是指一個測試小組(質量保證小組)來確定,如果質量不行就交給程序猿進行返工。其中有兩項重要的標準。

1.缺陷發現率

2.缺陷密度

缺陷發現率,失敗的測試用例/所有經過測試的用例數。

缺陷密度,一般以1000行代碼爲一個單位,發現的缺陷個數,平均下來的數值就是缺陷密度,缺陷密度越高代表軟件的質量越差。

PS:一般來說80%的缺陷出現在20%的代碼中。

十八、冪等性

冪等性是指HTTP請求中一次到N次請求的副作用

十九、REST------一個資源有一個唯一ID(一個唯一的URL對應某個文件或者某段信息<原子信息>)

二十、MYSQL  Sql中數字相加,用ifnull()判斷 ,如ifnull(null,0),null+數字爲null

二十一、四種事務處理方式

1.Supports

Supports:如果有帶有事務的方法調用該方法,則使用事務,否則不使用。

2.NoSupports

NoSupports:絕對不支持事務,反正就是不會支持事務.如果一個帶有事務的方法調用它,它將先把事務停掉,然後執行完畢,然後再將對應事務重新開啓。

3.Requried

Requried:如果當前有空閒事務則使用空閒事務,如果沒有則重新創建一個事務

4.New Requried

無論如何都會重新創建一個事務

二十二、Mybatis中用in、exist、not in等函數要用$符號,而不是和其他的一樣用#

二十三、RGB取色

RGB是按照16進制進行選取,16進制的代表字符是0-9,A-F。

顏色的位數是6位,那麼比如00FF11(00代表R-red,FF代表G-gree,11代表B-blue),這個顏色就是帶有一點點藍色的深綠色。

所以如果要是紅色,則可以直接寫FF0000,需要黑色FFFFFF,需要紫色FF00FF.....F代表最大,0代表最小,可以根據需要調。知道原理就不需要嚴重依賴取色器了

二十四、Ajax請求<option>的value只能爲數字,否則將會沒有任何反應,用GOOLE瀏覽器進行調試,發現返回400 bad request

二十五、MYSQL字符串寫條件爲 = 數字的時候會忽略該條件 如varchar類型的sid寫成sid=0則會忽略該條件

二十六、建索引

1.越不重複效率越高,(那種狀態的字段就不用建了)

2.有可能爲null的不要建立,遇到null也無法建立

3.查詢頻率

二十七、注意left join 中的條件和where後的條件

如 left join table1 on XX=OO and table1.XX=1  

& left join table1 on XX=OO where table1.XX=1

二十八、Spring 同一個類非事務方法調用事務方法 該事務方法無法得到體現

二十九、拼接字符串的時候,儘量不要用=拼接,因爲有可能引起防火牆sql注入的誤解

三十、在配置通配符的時候,/代表目錄,.do等代表後綴,若要攔截所有目錄下的.do則配置/**/*.do

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章