Java工程師修煉之道

後端技術關注指標

  • 可用率:能夠提供正常服務的時間佔比上運行時間的百分比。
  • 穩定性:也叫做魯棒性、健壯性,即服務在異常和危險情況下保持穩定的能力。
  • 容錯性:在服務出現錯誤或者異常的時候,能夠繼續提供一定服務的能力,主要強調的是容許誤差、故障的能力。
  • 拓展性:在服務的動態擴展能力,即通過拓展(而非修改)現有系統的能力來滿足需求的能力。
  • 可維護性:指的是修正服務錯誤、修改服務功能的能力。
  • 安全性:保障系統以及用戶數據安全能力,包括保障系統不被非法入侵、用戶數據不被泄露。

軟件開發的核心原則

  • Don’t Repeat Yourself:不要做重複性勞動
  • Keep it semple stupid:即KISS原則在做軟件設計的工作中,很多時候都不要想得過於複雜,也不要過度設計和過早優化,最簡單且行之有效的方案也就避免了複雜方案帶來的各種額外成本。
  • You Ain’t Gonna Need It:即YSNGIN原則。只需要將應用程序必須的功能包含進來,而不要試圖添加任何其他你認爲可能需要的功能。
  • Done is better than perfect:在面對一個開發任務時,最佳的思路就是先把東西做出來,再去迭代優化。如果一開始就面面俱到,考慮到各種細節,那就很容易鑽牛角尖而延誤項目進度。
  • Choose the most suitable things:在做方案選擇、技術選擇時候一個很重要的原則,在面對許多技術方案、開源實現的時候,務必做到不能盲目求新,要選擇最合適的而非被吹的天花亂墜的。

軟件開發的過程管理

  • 項目管理:保證項目進度有條不紊地進行,在可控的時間內以一定的質量交付。
  • 測試驅動開發:在平時的開發過程中,目前比較流行也是行之有效的一種方式就是Test Driven Develop ,即測試驅動開發。核心就是編寫單元測試。簡單來講,就是先完成某一個功能的單元測試用例,然後在逐步消除測試用例的編譯錯誤的過程中完成功能的開發。
  • 持續集成:某一個軟件功能完成開發之後,後續還有測試、預發佈、部署等過程。整個過程被稱爲集成,而持續集成指無需人工干預即可不斷地進行這個過程。Jenkins、Quick Build 都是比較典型的持續集成工具。

關於讀源碼

看源碼”的典型流程
1. 閱讀該技術的架構文檔,瞭解其總體架構和組成。
2. 根據總體架構,將源碼文件以模塊或者上下層級進行分類。
3. 從未閱讀過的模塊中選擇最獨立(依賴性最新)的模塊代碼讀起
4. 閱讀此模塊的功能介紹文檔
5. 閱讀此模塊的源代碼
6. 一邊閱讀一遍整理調用關係(以表或者樹的形式)
7. 轉到第三步

在這裏插入圖片描述

其他雜

前端指的是用戶能夠直接感知到的那些東西,包括Web前端和客戶端技術;後端技術是相對前端技術而言,是藏在網絡後面支撐網頁、APP、應用軟件運行的設施、環境、服務等。

請求統一入口——API網關
支持功能:負載均衡、API訪問權限控制、用戶鑑權
Linux 要數量掌握常用的shell命令,如ps、netstat、lsof、ss、df、dh等,以及性能分析命令,如top、vmstat、iostat、sar等
消息隊列,消息隊列有兩種角色,即生產者和消費者,兩種角色對於消息隊列的需求也不一樣。對於消費者來說,消息消費的方式包括髮布——訂閱和隊列兩種。消息隊列在語義保證上分爲At Most Once、 At Least Onse、Exactly Once共三種模式,需要根據特定的業務場景選擇合適的語義保證。

代碼質量等級:可編譯,可運行,可測試,可讀,可維護,可重用

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