名家專欄

寫程式的參考準測 (coding guideline) - C# 篇

  • 61

曾有一些朋友問我,在微軟公司裡是否有寫程式的準則 (coding guideline).這件事因不同的團隊而異,大部份的團隊都會依循 MSDN 文件裡的建議,但並非每一個團隊都有文件記錄這些準則.以前我在 Windows 部門裡的某個團隊就正好有文件說明 C# coding guideline.除了 C# coding guideline 以外,還有其他的文件,例如 code review 文件, database 開發文件等等.在這篇文章中,我將從 C# coding guideline 開始寫起.這些 coding guideline 不是什麼秘密,很多都是來自 MSDN 的文件.若你的團隊也需要一份 C# coding guideline, 希望能派的上用場.

...繼續閱讀 »
on ASPNETShare

ReSharper 2018.2 issue: if 的 intellisense 只列出 Boolean 的清單

ReSharper 在 2018.2 的版本之後,if 的 template 有個 bug,當輸入 if 時,intellisense 只會出現屬於 bool 型別的清單,而這跟一般寫代碼的習慣差很多。例如,可能是要判斷某個集合IsAny(),或是日期與數字是否大於某個值。

這篇文章帶著大家怎麼透過 ReSharper Template Explorer 暫時解掉這問題。

...繼續閱讀 »
on hatelove

Clean Coder:DI 與 AOP 進階實戰,201905 第一梯次

這門培訓會從物件導向的基本,以解決實務問題與需求為出發點,深入淺出帶著大家了解,為何我們的系統設計需要使用 interface,為何需要依賴注入。

在沒有依賴注入框架的協助下,你該怎麼用基本原則來解決耦合過高的問題。怎麼應用設計模式來幾解決複雜度過高的設計問題。接著說明,我們可以透過依賴注入框架來幫助我們更方便地處理哪些繁瑣的處理。

帶著大家手把手,把 legacy code 重構成乾淨的設計,如何較無痛地引入依賴注入與 AOP 設計,讓你具備基本的軟體架構設計能力,從此不再為擴充性跟可測試性煩惱。

報名這裡去➟【201905 Clean Coder-DI與AOP進階實戰 報名表單

...繼續閱讀 »
on hatelove

[廚餘回收] Jenkins 的 Git Plugin 設定 Polling ignores commits in certain paths 套用在中文檔名上失效?

幾天前同事回報,他 merge 完 push 之後 Jenkins 為何沒有建置? 我目前所在的公司所有原始碼是湊在一起的,但是每一個建置作業又只需要建置某一個專案及其相依的專案,所以除了使用 Sparse Checkout paths 之外還搭配 Polling ignores commits in certain paths 來讓建置作業能夠控制在需要建置時建置,所以這問題肯定出在這兩個地方。

...繼續閱讀 »
on supershowwei

【單元測試】如何測試 AOP 中的 interceptor

當在設計中引入 AOP 的設計時,就會出現幾個用來處理橫切面的攔截器(Interceptor),然而這些攔截器就如同 ASP.NET Web API 中的 message handler 或是 ASP.NET MVC 中的 Action Filter 一般,實際使用的 context 是成為寄托於某個類別或 interface 上的 wrapper。

因為極度地抽象化之後,要獨立測試攔截器變得沒那麼單純,這篇文章將帶著大家避開複雜的 DI container 註冊,也能簡單地對攔截器撰寫單元測試。

這一點非常重要,如果你連攔截器的設計,也想要 TDD 開發的話,你就得先擬出怎麼簡單使用你所設計攔截器物件的情境。

...繼續閱讀 »
on hatelove

C#進階設計 201903 第一梯次

想要具備設計底層、共用元件、框架、服務 API 能力,你需要對基本的東西了解地更透徹,讓這些基礎能幫助你設計出高易用性、彈性的 API。

這門培訓將帶著你認識 C# 的基礎,並運用這些基礎組合出實務上進階設計的能力。

報名這裡去➟【201903 C#進階設計-從重構學會高易用性與高彈性API設計 報名表單

 

...繼續閱讀 »
on hatelove