《C# 敏捷開發實踐》
========== ========== ==========
[作者] (英) Gary McLean Hall
[譯者] (中) 許順強
[出版] 人民郵電出版社
[版次] 2016年07月 第1版
[印次] 2016年07月 第1次 印刷
[定價] 69.00元
========== ========== ==========
【第一部分】
(P001)
編寫代碼是軟件開發的核心工作,而編寫好用的代碼有很多不同的方式。及時拋開平臺、語言和框架的影響,對於一個開發人員,最簡單的一個功能的實現也會有多種選擇。
編寫的代碼也應該具備一定的自適應變更的能力。
【第01章】
(P030)
自律是一種始終能夠拒絕眼前誘惑而選擇長期利益的能力 —— Mike Alexander ,健身專家
(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)
水平擴展是指應用程序應該能夠通過額外的服務機器以支持更多用戶的併發訪問。
垂直擴展是指應用程序在通過增強單個機器的能力以支持更多用戶的併發訪問。