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

来源:https://www.cnblogs.com/GATTACA2011/archive/2020/06/09/13070178.html
-Advertisement-
Play Games

《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)

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

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SunnyUI為了避免視覺傳達差異,使用一套特定的調色板來規定顏色,為你所搭建的產品提供一致的外觀視覺感受。 主色 SunnyUI主要品牌顏色是鮮艷、友好的藍色。 ...
  • 0. 前言 通過前兩篇,我們創建了一個項目,並規定了一個基本的數據層訪問介面。這一篇,我們將以EF Core為例演示一下數據層訪問介面如何實現,以及實現中需要註意的地方。 1. 添加EF Core 先在數據層實現層引入 EF Core: cd Domain.Implements dotnet add ...
  • vs版本 2019,鏈接資料庫使用Navicat,資料庫MySql abp的官網:https://aspnetboilerplate.com/,我們去Download這裡下載一個模板,需要選好Target Version、輸入項目名字,我這裡使用abp的mvc版本、項目名為AbpLearn下載一份 ...
  • LiveCharts 提示框(DataTooltip)百分比一直為0.00%解決辦法 問題描述:在使用LiveCharts 開源圖標庫的時候,使用CartesianChart類圖表,當Series為LineSeries(多個對象)類型時,DataTooltip數據提示框會提示每個點對應的百分比,但一 ...
  • 後臺修改前臺不刷新可能的原因: 1.前臺頁面沒有寫Binding 2.後臺數據定義的欄位沒有get和set 3.數據容器沒有使用ObservableCollection 4.欄位內容修改時沒有重置數據源 首先簡單舉例界面代碼如下: <DataGrid Name="DG" ItemsSource="{ ...
  • 隨著微服務的火熱,DDD(領域驅動設計模式)思想風起雲涌,衝擊著整個軟體生態系統。其中,事件匯流排那是必須知道的了,於是我便抱著一個學習DDD的心態搭建了一個博客網站,目前該網站正在建設階段,後續會不斷完善,這裡我只是講一下我裡面所用到的事件匯流排。 事件匯流排,我的理解就是發佈訂閱模式,這裡有一篇文章寫 ...
  • 使用請求頭認證來測試需要授權的 API 介面 Intro 有一些需要認證授權的介面在寫測試用例的時候一般會先獲取一個 token,然後再去調用介面,其實這樣做的話很不靈活,一方面是存在著一定的安全性問題,獲取 token 可能會有一些用戶名密碼之類的測試數據,還有就是獲取 token 的話如果全局使 ...
  • 系列文章 基於 abp vNext 和 .NET Core 開發博客項目 - 使用 abp cli 搭建項目 基於 abp vNext 和 .NET Core 開發博客項目 - 給項目瘦身,讓它跑起來 基於 abp vNext 和 .NET Core 開發博客項目 - 完善與美化,Swagger登場 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...