標籤:style http io os 使用 ar 檔案 sp 資料
1、針對物件導向的設計與分析:為了讓軟體有更好的可維護性,重用性以及快速開發, 簡短的 OOAD 與它的 SOLID 原則對於每一個軟體工程師來說都是該牢記的。
2、軟體品質因素:軟體工程的好壞與軟體的品質因素是絕對關聯的。請在開發過程中深刻的理解這一點。
3、資料結構與演算法:深刻理解像數組,列表,棧,樹,圖,集合等這樣的基本資料結構 ,並在軟體開發過程的關鍵區段使用好的演算法。這樣整個軟體邏輯就會很清晰了。
4、Big-O符號來標記演算法複雜度:在開發過程中,請務必使用 Big-O 符號來比較兩個程式碼片段或者不同演算法所消耗的時間複雜度,這在開發高效能軟體項目中是非常重要的。
5、UML 圖:UML 圖已經是一個通用的軟體設計與分析的語言。如果你們在開發軟體的過程中還沒有做 UML 圖,那麼給人的感覺就是這壓根就不是軟體工程。
6、正確的衡量軟體開發進度。
7、設計模式:設計模式是前人在解決各種各樣問題的過程中總結出來的一套標準對策, 在絕大部分情況下,使用這些模式肯定是利大於弊的。如果你不想在開發過程中重新造輪子,那麼就直接使用它吧。
8、理解作業系統的基本原理:因為所有的應用程式都是直接運行在作業系統這個層級的 ,學習作業系統的基本原理能讓我們對應用程式的底層以及效能有更好的把握。
9、學習電腦群組成原理:幾乎所有的應用程式甚至是 OS 都需要與物理硬體打交道的,所以學習電腦群組成原理與理解作業系統原理一樣都可以讓你對於應用程式有更深刻的理解。
10、網路基礎:網路與電腦群組成,作業系統以及傳輸串流程都是緊密關聯的,理解網路基礎能讓你在開發過程中得心應手。
11、需求分析:對於軟體工程來說,需求分析是項目的起點,也是整個項目最最重要的部分。如果這玩意你搞錯了,整個項目的方向也就錯了。
12、軟體測試:在軟體工程中,測試也是非常重要的。單元測試,黑箱測試,白盒測試,TDD,整合測試等等都是我們必須知道的。
13、獨立管理:主要是說類庫(JAR,DLL 等等)的管理,熟悉使用一些類似 Maven,Ant,lvy 這樣的知名工具對於大型項目的類庫管理是非常有用的。
14、持續化整合:持續化整合能讓測試大型模組與組件更加簡單與自動化,關於這一點,你可以去瞭解 Hudson 這個工具。
15、ORM:瞭解 Hibernate 這種將對象與資料庫表映射工具是非常有好處的,它可以減少你的代碼量並節省你的代碼維護時間。
16、DI (獨立注入):DI 或者 IoC (Inversion of Control)的具體實現架構 Spring 能讓你建立對象時更加輕鬆,對於大型企業階層專案更是如此。
17、版本控制系統:VSC 工具(SVN,TFS,CVS 等)對於團隊合作開發以及版本控制都是非常重要的。熟練使用這類工具算得上是必備技能。
18、國際化:通過 i18n 來將不同語種的字串儲存在其他檔案是讓軟體支援多語種最好的方法。所以 i18n 在不同的 IDE 上使用的方法我們應該瞭解。
19、架構模式:理解類似 MVC,MVP,MVVM 這樣的架構模式非常關鍵,這能讓你寫出易維護,簡潔以及方便測試的代碼。
20、編寫乾淨的代碼:你的代碼僅僅只是能夠正常運行是遠遠不夠的,它必須讓編程人員輕易看懂來方便後續維護,所以,代碼格式以及編寫易讀的代碼技術都是我們需要瞭解的關鍵點。
原文地址:http://www.open-open.com/news/view/bc0fb9
作為軟體工程師,你必須知道的20個常識