版權聲明:本文爲北京尚學堂原創文章,未經容許不得轉載。javascript
開發注意事項html
1. 服務器端必須提供輸入數據正確性的驗證,客戶端的JavaScript驗證能夠沒有。這是基於安全性的考慮,由於Javascript是很容易被繞過的,增長客戶端驗證只是爲了減小服務器壓力、界面更加容易使用。java
2. 適度使用Session,儘可能不要在Session裏放很大的集合對象,以避免內存消耗過大,由於不少用戶訪問的時候會產生不少的Session。參數傳遞應該儘可能經過Request。熟悉HTTP有助於更好的理解Session、Cookie、Request等的機制。spring
3. 在帶有分頁的查詢界面,儘可能不要使用POST方法來傳遞參數,POST傳遞的參數在地址欄裏是看不到的,刷新後會有從新提交表單的提示。使用GET方法傳遞參數要注意URL的長度不能超過1K。數據庫
4. 分層應該清晰,通常目前咱們分爲View(Jsp或FreeMarker加上Action)、Bean(Service)、DAO這麼三層,即顯示層、業務層、數據層。記錄集ResultSet這種只能出如今DAO層中的對象不能出如今Bean(Service)層中,一樣HttpServletRequest這種只能出如今View層的對象也不該出如今Bean(Service)層中。這並非絕對的。編程
5. 儘可能使用簡單SQL,避免兩表以及多表聯查。多表聯查會致使數據庫壓力大幅增長,並且不利於在內存中對部分記錄進行緩存,代碼的重用性也難以提升。瀏覽器
6. 避免在循環裏執行findXXById這樣的方法,不如執行一個findXXByIds這樣的方法一次性把記錄取到Map裏。大部分有實際對象對應的表應該提供這樣一個方法。緩存
7. 若是使用最原始的jdbc編程的話須要注意資源的正確釋放,在循環裏new出來的Statement或者ResultSet就要在循環裏關閉。安全
8. 在編寫SQL進行查詢的時候,須要可以判斷這個SQL是否已經使用了索引,避免全表掃描,必要的時候增長索引。服務器
9. 在寫一個方法前,首先查看有沒有相同功能或者很相似功能的方法已經有了,尤爲是工具類方法,每每已經寫過了,避免重複代碼的產生,發現重複代碼及時進行處理。若是一段代碼被重複使用兩遍或以上,那麼能夠考慮專門寫個方法來放這段代碼,一樣屢次使用的常量也應該專門定義出來。更多精彩內容關注微信公衆號:北京尚學堂。
10. 在一個方法裏並不必定只能有一個return,若是已經有結果了儘早return,不必增長嵌套的層次,那樣會致使代碼可讀性不佳,但也不能return太多,代碼看起來比較舒服就能夠了。
11. 不要知足於可以熟練的編寫DAO和Bean(Service)的代碼,相比較而言,後臺若是在成熟框架的支持下,編碼是沒有太大難度的,也不值得沾沾自喜,由於這是對Java研發工程師基本的要求。適當的培養一下前臺的編碼能力,學會使用Dreamweaver。不要輕視界面,也別認爲這是界面設計的事情,界面對用戶來講就是軟件,學會編寫CSS和調整界面對你沒有壞處。
12. 很是明確Java和javascript做用的範圍,明確它們能作的事情。
13. 通常很奇怪的現象都是由一些低級錯誤引發的,若是你查了一段時間也沒有結果,那麼讓別人來查吧。
14. 不要用可能被修改的字段來作主鍵,那樣會讓相關記錄的更新成爲一個大麻煩。
15. 若是被迫使用hibernate和jdbc混合操做數據庫的話,不要用Hibernate來作複雜查詢和統計。Hibernate用的很差的話,帶來的便利是很是有限的。更多精彩內容關注微信公衆號:北京尚學堂。
16. 數據庫中常常被讀取,可是不多修改的話,應該把這樣的數據讀到內存中用OSCache之類的緩存起來,而後按期或者觸發的去更新,有助於減小讀數據庫次數,提高性能。
17. 編碼的時候應該注意部署環境帶來的影響,這種影響包括操做系統不一樣帶來路徑的差別;應用服務器和數據庫服務器之間時間的差別;外網可能部署在多臺服務器上,放到Session裏的對象由於須要複製因此要實現java.io.Serializable接口等。更多精彩內容關注微信公衆號:北京尚學堂。
18. 儘可能不要在jsp上編寫太多代碼,保持jsp的整潔很重要,用Dreamweaver打開不至於一塌糊塗,根本看不出來這是個什麼界面。
19. 目前咱們的項目通常都使用spring來管理數據庫事務,並且通常都配置在Bean(Service)即業務層這一層,應該注意要保持事務的完整性,不要把一些應該放在一塊兒的操做分散在Action這一層。相關的更新操做能夠認爲是一個事務,好比:增長一個家長,同時更新學生是否有家長的字段。
20. 在Spring的配置中,對於有些須要保持獨立事務的方法操做,好比生成主鍵等,應該聲明該方法爲獨立事務ROPAGATION_REQUIRES_NEW。Bean(Service)裏若是拋出checked exception,事務默認是不會回滾的,須要加以聲明,好比PROPAGATION_REQUIRED,-PassportException。
21. 在一個Bean(Service)中引用其餘Bean(Service)的時候儘可能引用Bean(Service),而不是DAO。由於其餘的Bean(Service)每每封裝DAO的操做後,又作了進一步的完善,好比增長校驗等,因此應該重用這些方法,而沒必要要去引用DAO的方法來重寫這些操做。
22. 至少在Bean(Service)的接口定義上增長註釋,方便他人引用你寫的方法。
23. 好好利用集合框架裏的Map、List、Set。尤爲是HashMap、ArrayList、HashSet用的最多,這些類是多條數據操做的基礎,它們都不是線程安全的。更多精彩內容關注微信公衆號:北京尚學堂。
24. 如今跑的快的頁面,隨着數據量的增長,可能會變的很慢,因此應該意識到頁面可能變慢的緣由,而不是如今看起來很快。影響速度的大部分緣由是對數據庫的壓力太大了,在java代碼執行上花費不少時間的狀況是不常見的。
25. 避免沒必要要的跳轉,若是頁面執行的足夠快,那麼中間的載入進度提示頁是沒必要要的,那樣會讓用戶以爲閃爍。
26. 注意頁面的文件大小,並非每一個用戶的帶寬都是很是理想的,文件小一點,速度快一點,老是感受更好一點。
27. 不要去修改用戶的瀏覽器,好比隱藏他們的地址欄、菜單、右鍵菜單等,這可能會引發部分用戶的反感。儘可能不要使用彈出窗口,可能會被攔截。更多精彩內容關注微信公衆號:北京尚學堂。
28. 網站的權限控制至少應該保證有訪問權限的用戶才能訪問頁面,經過隱藏連接之類的方法是很不安全的,用戶看不見了並不表示安全了。權限的控制儘可能使用框架裏的攔截器這樣的機制,而不是把權限控制代碼寫的處處都是。過濾器不宜過多的使用,不只由於過濾器的做用範圍很難控制,並且容易引發頁面執行效果的混亂,錯誤不易排查。
29. 頁面裏大部分狀況使用相對路徑,保持Action路徑層次和頁面一致,這樣應用就能夠發佈在各類目錄下。更多精彩內容關注微信公衆號:北京尚學堂。
30. 最後一點,多溝通,多交流
對於學習有困難不知道如何提高本身能夠微信:858568103進行交流獲得幫助,獲取學習資料。
若是你的目標是就業,而且是高薪就業,那麼北京尚學堂是你正確的選擇。北京尚學堂一直在爲改變中國IT教育努力着。十年以來,北京尚學堂堅守「爲莘莘學子改變命運而講課」這份情懷,不忘初心。感謝你們的閱讀!更多精彩內容關注微信公衆號:北京尚學堂。
更多猛料!歡迎掃描上方二維碼關注北京尚學堂官方微信公衆號(資料領取驗證消息:156)