工做之經驗之談4

1. 對於一些類型或者步驟,通常使用整數類型做爲值。爲了防止新增類型或步驟,通常能夠可定義不連續值。例如:0 10 20 30 等,若是有新增類型或者步驟,能夠定義值爲2,3,4等。前端

2. 自動化代碼生成工具java

3. 若是定義字段類型爲int,在使用Integer轉換的時候,會默認調用方法將Integer轉換爲int,若是Integer爲null,會報空指針異常。須要判斷是否爲null。git

4. 使用spring MVC傳遞參數時,若是報400錯誤,多是類型轉換錯誤,請確認傳遞的參數類型是否一致。github

5. 詳細的註釋:每一個參數什麼意思;有哪些狀況須要處理;若是有Map,map的key和value值有哪些;使用<br>換行web

6. static靜態方法或靜態代碼塊,進行數據初始化redis

7. service引用別的service,儘可能不要引用別的mapperspring

8. git的使用sql

9. map中key值爲字符串時,按int型排序:shell

    Map<String,Integer> sortMap = new TreeMap<>(new Comparator<String>() {數據庫

            public int compare(String o1, String o2) {

                       return Integer.parseInt(o1)-Integer.parseInt(o2);

             };

     });

10. token認證,攔截器。使用基於 Token 的身份驗證方法,在服務端不須要存儲用戶的登陸記錄。大概的流程是這樣的:

      1). 客戶端使用用戶名跟密碼請求登陸

      2). 服務端收到請求,去驗證用戶名與密碼

      3). 驗證成功後,服務端會簽發一個 Token,再把這個 Token 發送給客戶端

      4). 客戶端收到 Token 之後能夠把它存儲起來,好比放在 Cookie 裏或者 Local Storage 裏

      5). 客戶端每次向服務端請求資源的時候須要帶着服務端簽發的 Token

      6). 服務端收到請求,而後去驗證客戶端請求裏面帶着的 Token,若是驗證成功,就向客戶端返回請求的數據

       token:加密 ; 請求時攜帶 ; 緩存起來

11. 模擬post請求:amber 和 postman

12. 使用guava中的工具類

13. 使用泛型,簡化代碼

14. 使用lombok中的@Data減小setter和getter方法

15. 實體類繼承

16. 自動構建工具,jenkins

17. 相同的代碼提取成複用方法

18. 緩存不變的內容,例如:區域、城市

19. 數據庫插入或者更新,時間自動生成

20. 分頁封裝,將設計分頁的內容提取出來,例如:放到intercept和ThreadLocal中

21. 員工/崗位:查詢員工使用員工,查詢上下級關係使用崗位。崗位保存歷史信息,同一個員工的每一個時間段只有一個處於激活狀態。

22. 封裝返回對象

23. mybatis:

      HashMap:<select id="getDealerVisitRecordCount" resultType="int" parameterType="java.util.Map" >

      in語句判斷,判斷是否爲空以及長度是否大於0:

      <if test="positionIdList!=null and positionIdList.size!=0">

               a.position_id in

                      <foreach collection="positionIdList" item="id" index="index"  open="(" close=")" separator=",">

                                       #{id}

                      </foreach> 

        </if> 

        大於和小於:

         <if test="startDate!=null"> 

                    AND a.visit_time &gt; #{startDate} 

         </if>

 

24. 一個項目,若是一切正常,多是訪問路徑錯了。包括:IP,項目名,類路徑,方法路徑。更新maven項目可能致使項目路徑由/變爲項目名。

25. 在eclipse中新建simple Maven project項目後,pom.xml報錯:

      web.xml is missing and <failOnMissingWebXml> is set to true

      解決方法:

      在Java EE窗口下,打開項目,單擊Deployment Descriptor,右鍵單擊:Generate Deployment Descriptor Stub

      注意,只有新建簡單項目,打war包的時候,纔會出現上面的操做。

26. 直接使用:PrepareStatement

      Class.forName(db_driver);

      conn = DriverManager.getConnection(url, "root", "123123");

       ps = conn.prepareStatement(sql);

      ResultSet rs = ps.executeQuery(sql);

27. List、Set、 數組等轉字符串:

      list轉字符串:str = StringUtils.join(list.toArray(), ",");

      符串數組轉爲字符串:str = StringUtils.join(strArray, "-");

      set轉換爲字符串:str = StringUtils.join(set.toArray(), ";");

28. 本身的項目,一個方法,各類狀況,各類測試

29. guava處理字符串與List之間,字符串與map之間的轉換:

      List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom");  

     String result = Joiner.on(",").join(names);  

     參考:http://blog.csdn.net/sunhuwh/article/details/41291515

30. 自動分頁:https://github.com/pagehelper/Mybatis-PageHelper

31. 使用jenkins部署項目時,打包等都沒問題,只有部署有問題。能夠經過tomcat下的日誌查看錯誤。

32. 經過拋出自定義異常來獲取返回信息給前端

33. 一直查看後臺日誌,來判斷是否有錯誤

34. 寫SQL語句來查詢一些經常使用東西否,方便查看

35. 設計一個表時,要知道這個表都會顯示顯示哪些內容。須要保存哪些信息,之後用。(例如:記錄人員等)

36. 在插入數據時,若是有字段限制惟一。爲防止數據重複插入致使異常。可使用下面三種方法:

       1). 使用redis,redis操做爲單線程。標記已有線程在處理這件事。例如:手機號

       2). 使用ON DUPLICATE KEY UPDATE

       3). 捕獲重複字段異常

37. 當超連接不表示真正訪問路徑時,能夠按F12,經過點擊超連接,查看網絡請求來確認真正的訪問路徑。

38. 記錄操做日誌,一些關鍵信息記錄到數據庫中,方便之後查詢。但對於錯誤信息,通常記錄到文件。若是錯誤日誌也記錄到數據庫,可能會在非法攻擊的時候致使數據庫崩潰。

39. 一些專業的羊毛黨,很是強大。能夠經過程序辨別短信驗證碼等,刷註冊等。通常只能經過業務解決,如:讓對方投資纔給優惠,或者直接下線活動。

40. xshell上的連接有明確的名字,不要全用IP地址做爲名字

41. 保存經常使用SQL。數據庫用戶名和密碼

42. 保存經常使用訪問地址

43. 定時回收舊文件 

44. 若是報錯找不到類,jar又確實有,能夠反編譯jar包看看jar包裏面有沒有相關類。

45. restTemplate請求資源時 設置請求頭:

      1)HttpHeaders requestHeaders = new HttpHeaders();

            requestHeaders.add("key1", "values");

            requestHeaders.add("key2", "ddd");

       2)HttpEntity<String> requestEntity = new HttpEntity<String>(null, requestHeaders);

             ResponseEntity<String> response = template.exchange(url, HttpMethod.GET, requestEntity, String.class, params);

             String sttr = response.getBody();

             參見:https://blog.csdn.net/u010139801/article/details/72770123

46. 提交的代碼不生效怎麼辦? 

      1)確認git上已有最新代碼

      2)反編譯服務器上代碼

      3)本地分支驗證

      4)監控日誌,不行的話新增日誌。新增日誌包括是否執行,執行的中間結果是什麼 

47. 必定要有異常監控,否則的話很尷尬

48. 前端頁面空白,能夠debug模式,看看哪些文件沒有加載成功

相關文章
相關標籤/搜索