《C# 敏捷開發實踐》 - 學習筆記

《C# 敏捷開發實踐》編程

========== ========== ==========
[做者] (英) Gary McLean Hall
[譯者] (中) 許順強
[出版] 人民郵電出版社
[版次] 2016年07月 第1版
[印次] 2016年07月 第1次 印刷
[訂價] 69.00元
========== ========== ==========api

【第一部分】 網絡

(P001) 架構

編寫代碼是軟件開發的核心工做,而編寫好用的代碼有不少不一樣的方式。及時拋開平臺、語言和框架的影響,對於一個開發人員,最簡單的一個功能的實現也會有多種選擇。併發

編寫的代碼也應該具有必定的自適應變動的能力。框架

【第01章】 單元測試

(P030) 測試

自律是一種始終可以拒絕眼前誘惑而選擇長期利益的能力 —— Mike Alexander ,健身專家spa

(P035) 設計

一般認爲單元測試覆蓋率至少要達到百分之八十。

【第02章】

(P042)

對 .NET Framework 程序集的引用老是會致使加載這些程序集。即便你並無真正使用某個 .NET Framework 程序集,它依然會在應用程序啓動的時候被加載到內存中。

(P065)

ASP.NET API 用來建立基於 .NET Framework 的 REST 服務。

(P071)

分層 (layering) 是一種架構模式,它鼓勵開發人員將軟件組件看做是水平功能層,而一個完整的應用程序能夠劃分爲多個水平功能層。分層造成的組件一個疊加在另一個上面,它們的依賴關係方向必須朝下。也就是說,程序最底層的組件沒有依賴,每一個層只能依賴它的直接下層。一般狀況下,應用程序的頂層都是用戶界面,服務程序的頂層都是客戶端用來與服務端交互的 API 。

(P072)

問題越複雜,越可能引入更多分層的架構。

老是追求很完美的方案是沒有意義的,由於客戶心中的完美與開發團隊想象的完美有可能不同。

多層架構要比簡單的兩層劃分方案耗費更多的開發時間,也沒法及時獲取重要的用戶反饋。

物理層的數目就是單個應用程序拆分部署的宿主機器數目。

同一臺機器上的跨進程交互的時間代價已經比較高了,而跨越網絡邊界交互的時間代價比前者還要高出不少。

多物理層的部署方式依然有一個明顯的優點,那就是它賦予應用程序更好的擴展能力。

(P073)

用戶界面層不該該直接引用數據訪問層具體實現所在的程序集。這兩個層次的接口和實現程序集也應該是嚴格分開的。

(P074)

數據訪問層的全部接口都應該隱藏全部與技術相關的事情,也不該該引入任何對第三方的依賴,這樣才能夠保證客戶端徹底不受具體實現選擇的影響。

設計良好的數據應用程可以在多個應用程序中重用。

(P077)

面向切面編程是代碼中跨層次的縱切關注點 (也稱爲切面) 的運用。

【第03章】

(P080)

接口是 Microsoft .NET Framework 開發中一個很是強大的構件。儘管關鍵字 interface 很簡單,可是它表明了一個很是強大的範式。若是正確應用,接口定義的擴展點會讓你的代碼具備很是好的適應變動的人能力。

(P107)

返回非接口類數據的方法都不是流方法,非流方法會致使客戶端代碼中方法鏈方式的調用中斷。

【第二部分】

(P145)

S - 單一職責原則;
O - 開放與封閉原則;
L - Liskov 替換原則;
I - 接口分離原則;
D - 依賴注入原則;

【第05章】

(P172)

基於 .NET Framework 平臺開發應用的最大優點就是它能很好地支持快速應用開發 (Rapid Application Development , RAD) 。

一般狀況下, C# 被認爲有助於提升開發效率,但開發出的應用程序運行速度相對卻比較慢。

【第06章】

(P186)

切記,任何沒有標記 sealed 關鍵字的類都提供了繼承能力。類並非必需要有虛方法或者抽象方法纔可以派生子類。

【第08章】

(P243)

接口分離會生成很小的接口。接口規模越小,就變得越通用。

【第12章】

(P324)

水平擴展是指應用程序應該可以經過額外的服務機器以支持更多用戶的併發訪問。

垂直擴展是指應用程序在經過加強單個機器的能力以支持更多用戶的併發訪問。

相關文章
相關標籤/搜索