新手注意:java開發的有哪些重要的知識點?
學習Java的時候,一定要把重要的知識點的基礎打牢才是關鍵,那可能剛開始學習Java的小夥伴就會問:學習java開發的有哪些重要的知識點?接下來小編來給大家分享在學習Java過程有哪些知識點是非常重要的!
1.將一些需要變動的配置寫在屬性檔案中
比如,沒有把一些需要併發執行時使用的執行緒數設定成可在屬性檔案中配置。那麼你的程式無論在DEV環境中,還是TEST環境中,都可以順暢無阻地執行,但是一旦部署在PROD上,把它作為多執行緒程式處理更大的資料集時,就會丟擲IOException,原因也許是線上環境併發造成也許是其他。如果執行緒數目可以在屬性檔案中配置,那麼使它成為一個單執行緒應用程式就變得十分容易了。我們不再需要為了解決問題而反覆地部署和測試應用了。這種方法也同樣適用於配置 URL、伺服器和埠號等。
這裡推薦使用屬性檔案外化這些配置,檔案格式使用properties、yaml、hocon、json都可以。下面的類實現了對這些格式的檔案的spring注入支援,包括佔位符支援。
2.測試中儘可能模擬線上環境
生產過程中一個典型的場景就是隻使用1到3個帳戶進行測試,而這個數量本應是1000到2000個的。在做效能測試時,使用的資料必須是真實並且未經裁剪的。不貼近真實環境的效能測試,可能會帶來不可預料的效能、擴充和多執行緒問題。這裡也可以採取預釋出環境的方式來解決部分問題。如果你想學習java可以來這個群,首先是五三二,中間是二五九,最後是九五二,裡面有大量的學習資料可以下載。
3.對於所有外部呼叫以及內部服務都要做容錯處理
不管是RPC呼叫還是對於第三方服務的呼叫,都不能想當然的認為可用性是100%的。不允許出現服務呼叫超時和重試,將會對應用程式的穩定性和效能造成不利的影響。
4.安全設計上一個系統要遵循最小許可權原則
網路服務隨處可見,從而使得駭客可以輕易地利用它進行拒絕服務攻擊。所以,設計系統時,需要遵循“最小許可權”原則,採用白名單等方式。
5.需要提供以下文件
編寫單元測試文件並使其擁有良好的程式碼覆蓋率。
高層次的設計圖:描述了所有的元件,互動和結構。
詳細的設計圖:具體到程式碼層面的設計,以及一些關鍵邏輯的流程。
系統組成文件:說明系統的所有組成檔案、配置檔案等。
資料庫層面的dml以及ddl文件,尤其是sql查詢語句需要經過dba或者核心開發人員的review才能夠上線。
不僅僅對於傳統的開發流程,即使對於敏捷開發,這些文件也是必不可少的,否則在後續的維護、交接上會帶來很大的不便。
6.做好系統關鍵功能的監控、錯誤恢復、備份等
對於系統一些至關重要的功能模組要做好對其的監控,防止其影響系統的執行,造成不可估
算的損失。另外,如果可以,監控到故障後去去試圖恢復,恢復失敗再傳送告警。對於一些很重要的資料檔案,還要做到冗餘備份,防止發生一些突然故障造成資料丟失。
7.資料庫設計時設計一些便於追蹤歷史、整理的列
比如create_time、update_time可以說明記錄的建立和更新時間。create_by、update_by可以說明記錄是由誰建立和更新的。
此外,刪除記錄有時候並非真正刪除,這時需要設計表示此記錄狀態的列,如可以取‘Active’或‘Inactive’的 ‘status’列。
8.制定好專案回滾計劃
新的功能上線時,如果發生故障,沒有一份回滾計劃,那麼可能會手忙腳亂而造成線上服務一段時間不可用。有一個良好的回滾計劃,可以讓你能夠有條不紊的執行相關操作,在可控時間內將系統恢復到一個可執行的狀態。
9.專案上線前要做好量化分析
對於專案中用到的記憶體、資料庫、檔案、快取等,要做好量化分析。預估出未來一段時間
的空間佔用,給運維分配機器時一個參考。防止,由於資料量增長過快,導致儲存不夠。這一點是非常重要的,不然很容易造成線上服務不可用。
10.制定好系統的部署計劃
系統部署的平臺是一個至關重要的部分。對於部署平臺的描述,不能僅限於一臺伺服器、兩個資料庫這個層面,至少需要包括作業系統的特定版本,JVM等。
有多少記憶體(包括實體記憶體,JVM堆記憶體,JVM棧記憶體和JVM永久代的空間)。
CPU(核心數)。
負載均衡器,需要的節點數、節點型別,比如是Active-Standby型還是Active-Active型。
檔案系統要求,例如,你的應用程式可能會收集生成的日誌並將其儲存很長的週期,之後才進行歸檔。這樣的話,你就需要有足夠的硬碟空間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2638716/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- web前端的開發規範比較重要的知識點Web前端
- 從Java新手到大神需要學哪些知識?Java
- 新手學習Java需要了解的幾個知識點!Java
- Promise重要知識點Promise
- Java常見知識點彙總(⑥)——Object有哪些公用方法?JavaObject
- 重要,知識點:InnoDB的插入緩衝
- 值得注意的安全開發知識總結
- Nginx有哪些重要特性?學習linux系統知識NginxLinux
- 給新手 Java 開發者的 7 點提示Java
- web開發知識體系中必要的知識點Web
- 學大資料開發要掌握的基礎知識有哪些?大資料
- 【知識分享】windows伺服器使用有哪些注意事項Windows伺服器
- Python新手需要知道的5條知識點Python
- 學習Java知識應該注意哪些基礎原則Java
- 主鏈開發有哪些值得注意的事項?
- Java要學的知識點有哪些?學到什麼程度可以高薪進大廠?Java高薪
- [ Java面試題 ]Java 開發崗面試知識點解析Java面試題
- 總結的Java知識點集合Java
- Core Java 的知識點總結Java
- 【Java基礎知識】物件導向有哪些特性Java物件
- Flutter 知識梳理 (Dart) - Dart 和 Java 有哪些不同?FlutterDartJava
- 資料庫設計與操作的重要知識點資料庫
- 可能是全網最好的MySQL重要知識點MySql
- 重要知識點:如何降低DNS攻擊的風險DNS
- 整理:iOS開發知識點iOS
- 所有和Java中代理有關的知識點都在這了。Java
- Linux命令有哪些知識點需要掌握?面試題Linux面試題
- Redis有哪些開發設計規範值得我們注意的!Redis
- 阿里巴巴java開發手冊容易忽視的幾個知識點阿里Java
- java小知識點Java
- 前端知識科普:HTML5中重要的6個點!前端HTML
- 【網路安全知識】網路安全需注意攻擊型別有哪些型別
- Vue3 中有哪些值得深究的知識點?Vue
- 適合新手的Java學習路線圖,從零到一系統掌握Java知識點Java
- 【知識分享】伺服器的分類有哪些伺服器
- 【知識分享】 linux伺服器的特性有哪些Linux伺服器
- 【知識分享】主流的web伺服器有哪些Web伺服器
- Linux新手入門必須要掌握的10個知識點!Linux