【程式設計素質】程式設計思想總結
1,資料結構和演算法
【資料結構】排序演算法
【資料結構】查詢
【資料結構】樹
【資料結構】圖
【資料結構】陣列
【資料結構】佇列和棧
【資料結構】線性表:順序表、單連結串列
【java學習】String字串
【演算法】電梯排程演算法/磁碟掃描演算法
【演算法】劍指offer
【資料結構】斐波那契數列(Fibonacci sequence,黃金分割數列,兔子數列)
2,設計模式
【程式設計素質】多執行緒程式設計之設計模式
複合模式:三層架構、MVC、MVP、MVVM
3,程式設計方法
3.1 函數語言程式設計(functional programming)
3.1.1 概念
是結構化程式設計的一種。將電腦運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是λ演算(lambda calculus)。
java8引入了函數語言程式設計概念。
3.1.2 與OOP對比
物件與物件之間的關係是物件導向程式設計首要考慮的問題,而在函數語言程式設計中,所有的資料都是不可變的,不同的函式之間通過資料流來交換資訊。
3.1.3 優點
在函數語言程式設計中,由於資料全部都是不可變的,所以沒有併發程式設計的問題,是多執行緒安全的。
程式碼可讀性更強。
3.1.4 缺點
由於所有的資料都是不可變的,所以所有的變數在程式執行期間都是一直存在的,非常佔用執行資源。
雖然現代的函數語言程式設計語言使用了很多技巧比如惰性計算等來優化執行速度,但是始終無法與物件導向的程式相比,當然物件導向程式的速度也不夠快。
3.2 物件導向程式設計(Object-oriented programming,縮寫:OOP)
3.2.1 概念
具有物件概念的程式程式設計範型,同時也是一種程式開發的方法。它可能包含資料、屬性、程式碼與方法。物件則指的是類的例項。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充套件性,物件裡的程式可以訪問及經常修改物件相關連的資料。在物件導向程式程式設計裡,計算機程式會被設計成彼此相關的物件。
3.2.2 優點
系統更靈活、更容易擴充套件,而且成本較低。
3.2.3 缺點
物件導向程式設計以資料為核心,所以在多執行緒併發程式設計中,多個執行緒同時運算元據的時候可能會導致資料修改的不確定性。
物件導向雖然開發效率高但是程式碼的執行效率比起程式導向要低很多。
3.2.4 物件導向三大特性:封裝,繼承,多型
3.3 面向方面程式設計(Aspected Oriented Programming,縮寫:AOP)
3.3.1 概念
偏重業務處理過程的某個步驟或階段,強調降低模組之間的耦合度,使程式碼擁有更好的移植性。
3.3.2 特點
AOP 的一個很重要的特點是原始碼無關性,也就是說如果我們的系統中引用了 AOP 元件,即使我們把該元件去掉,系統程式碼也應該能夠編譯通過。要實現這一點,可以使用動態 proxy 模式。
3.3.3 優點
i>更易模組化
AOP將程式分解成各個方面或者說關注點。這使得可以模組化,相當橫向上分切了。它可以解決OOP和過程化方法不能夠很好解決的橫切(crosscut)問題,如:事務、安全、日誌等橫切關注
ii>AOP有助於提高系統可維護性
3.3.4 實現方式
AOP是一種設計模式,Spring提供了一種實現。
Spring 1.2版本中通過ProxyFactoryBean來實現aop,即通過動態代理來實現的,Aspect必須繼承MethodBeforeAdvice,MethodAfterAdvice等。
Spring 2.0 AOP需要改的是FBI 這個類,而且它也不需要再實現某些介面
三使用標註(@AspectJ)實現AOP
3.3.5 與OOP對比
也可以說 AOP 是面向業務中的動詞領域, OOP 面向名詞領域。
核心業務還是要OOP來發揮作用,與AOP的側重點不一樣,前者有種縱向抽象的感覺,後者則是橫向抽象的感覺, AOP只是OOP的補充,無替代關係。
4,Java編碼約定
相關文章
- MR核心程式設計思想總結程式設計
- 程式設計思想 面向切面程式設計程式設計
- 程式設計師的基本素質如何?程式設計師
- 【程式設計素質】Java編碼約定程式設計Java
- React程式設計思想React程式設計
- 程式設計思想之冪等性 | 程式設計之道程式設計
- 程式設計技巧總結程式設計
- 結對程式設計總結程式設計
- 淺談程式設計思想程式設計
- 極限程式設計思想程式設計
- 程式設計師程式設計知識經驗總結程式設計師
- 從李小龍的思想看程式設計師程式設計之道程式設計師
- Nio程式設計模型總結程式設計模型
- 程式設計感悟總結一程式設計
- 程式設計中的自頂向下設計思想程式設計
- 計算機程式設計心得總結計算機程式設計
- 程式設計思想 物件導向程式設計物件
- JAVA語言程式設計思想Java程式設計
- 重讀JAVA程式設計思想Java程式設計
- 優秀程式設計師具備的8種素質程式設計師
- 程式設計師自我修養之程式設計經驗總結程式設計師
- Javascript非同步程式設計總結JavaScript非同步程式設計
- 程式設計師面試技巧總結程式設計師面試
- iOS圖形程式設計總結iOS程式設計
- qt model view 程式設計總結QTView程式設計
- c++/tcl程式設計總結C++程式設計
- 《java程式設計思想》筆記1Java程式設計筆記
- java程式設計思想之註解Java程式設計
- iOS-鏈式程式設計思想iOS程式設計
- 程式設計的本質程式設計
- 程式結構&&程式設計程式設計
- 自己總結物件導向程式設計的總結物件程式設計
- Windows CMD命令列程式設計總結Windows命令列程式設計
- 遊戲程式設計十年總結遊戲程式設計
- 資料庫程式設計方法總結資料庫程式設計
- 談談一個程式設計師本該具備的素質程式設計師
- [技術討論]程式設計師的基本技能和素質程式設計師
- XML 程式設計思想: Harold 的高效 XML 設計原則(轉)XML程式設計