《C# 敏捷開發實踐》 [作者] (英) Gary McLean Hall[譯者] (中) 許順強[出版] 人民郵電出版社[版次] 2016年07月 第1版[印次] 2016年07月 第1次 印刷[定價] 69.00元 【第一部分】 (P001) 編寫代碼是軟體開發的核心工作,而編寫好用的代碼有很多 ...
《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)
水平擴展是指應用程式應該能夠通過額外的服務機器以支持更多用戶的併發訪問。
垂直擴展是指應用程式在通過增強單個機器的能力以支持更多用戶的併發訪問。