C#進階設計 201903 第一梯次

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

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

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

 

...繼續閱讀 »

演化式設計:測試驅動開發與持續重構,第五梯次 201902 (額滿)

※ 課程正名,英文:【Evolutionary Development - TDD and Continuous Refactoring】,中文:【演化式設計:測試驅動開發與持續重構】

【課程主題涵蓋範圍】

依據實務需求完成代碼、加入單元測試、code review 、code smells 辨識且示範與練習重構、測試案例探索/分群/排序、邏輯樹拆分、TDD 循環與 baby step、迭代堆砌產品代碼增量

報名這裡去➟【201902 演化式設計:測試驅動開發與持續重構 報名表單】,已額滿,加入等待清單可以享有下次課程提前收到開課通知的權利

 

...繼續閱讀 »

極速開發-第六梯次 201901 台北 (額滿)

生產力 = 你的設計功力(能力) + 最佳化開發環境與設定(神兵) + 對的開發方式(招式)

這門【極速開發】的培訓,就是用來解決實務上大家總說「時間不夠」的問題,因為時間不夠,所以我沒法子寫單元測試,沒法子重構,沒法子 TDD,沒法子 code review,沒法子逋拉逋拉…

我認同「時間不夠」是個問題,然而卻很少人去改善或解決這個問題。這門課,將讓各位學到,如何建立自我刻意練習的模型,將所有工具的整合起來發揮最大綜效,透過正確的開發方式與順序,讓你寫代碼時能行雲流水,並且兼顧設計、品質與生產力。

報名這裡去➟【201901 極速開發 報名表單】,已額滿,加入等待清單可以享有下次課程提前收到開課通知的權利

 

...繼續閱讀 »

單元測試實戰操練營 201901 第五梯次﹣台北 (額滿)

【課程涵蓋範圍包含下列主題】

辨識依賴、隔絕依賴、依賴注入、擷取與覆寫、stub/mock 差異與使用場景、單元測試三種驗證方式、相依靜態方法的單元測試、父類依賴的測試、委派與事件的測試、測試程式重構與設計

報名這裡去➟【201901 單元測試實戰營 報名表單

...繼續閱讀 »

[30天快速上手TDD]目錄與附錄

30天快速上手TDD的系列文將帶著各位 step by step 從 ATDD/BDD, TDD 所需要的基礎打起,包含了 isolated unit test, web test, test framework 的介紹, refactoring, simple design, TDD 與透過 specflow (cucumber) 來做到 requirement, testing, design, liveing documentation 的結合,畢其功於一役。

這篇也為各位讀者整理了學習 TDD 的推薦書籍當作補充參考資源。

...繼續閱讀 »

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

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

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

...繼續閱讀 »

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

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

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

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

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

...繼續閱讀 »

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

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

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

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

...繼續閱讀 »

把目標放在加薪跟升遷,其實是條不歸路

不要為了績效考評而努力。

別誤會了,你仍要創造價值,仍要發揮影響力,但你應該是在自己喜歡與熱愛的事情,去創造價值跟建立影響力。你應該選擇「你想做的事」,「你想學習的東西」,「你想挑戰的領域」,並從中找到「對公司、產品、組織、團隊、客戶以及你的老闆有幫助」的交集,然後忘掉那些 goal、KPI 跟績效考評。

因為你想要,因為你喜歡,所以在完成這些任務的過程,你是沈浸在快樂中、滿足中,你從中學習、成長、累積經驗、累積經歷,這才是你該要的。如果你做得很好,公司跟老闆卻沒給你對等的回報,或是你已經學不到東西了,在這裡你也找不到快樂跟喜歡的事情做了,fire 掉你的公司吧,因為你持續在累積有價值的能力和影響力,這個世界還會有更多地方需要你這樣的人去貢獻跟發揮。

...繼續閱讀 »

【經典好書推薦】軟件開發本質論—追求簡約、體現價值、逐步構建

這次要推薦的書是 Ron Jeffries 撰寫的《The Nature of Software Development: Keep It Simple, Make It Valuable, Build It Piece by Piece》,有簡體的翻譯本,翻譯書名為《軟件開發本質論—追求簡約、體現價值、逐步構建》。

這是本輕薄精要的經典書籍,簡體書篇幅只有 141 頁,卻是我認為了解【敏捷開發】本質最重要的一本書,本文將針對這本書的幾個重點進行簡介。

...繼續閱讀 »

[隨筆] 工作 => 事業

2017 年 8 月 24 日,是我人生一個重要的里程碑。從工作拿薪水的角色,變成得自力更生,自己發自己薪水的階段。

我還記得直到 2016 年,我總是把一句話掛在嘴邊:「我這輩子都不會選擇開公司,因為我當員工時就已經這麼拼命了,萬一我當老闆,我應該會整個生命燃燒殆盡。」

然而,變化總是來得特別快,包括自己人生的規劃,「擁抱變化」不正是我們一直強調的信仰嗎?

...繼續閱讀 »

[遛書]低谷-輸家與贏家之間的距離

這篇文章紀錄了賽斯高汀的《低谷》的遛書心得。每個成功人士總是告訴我們,堅持不放棄才有可能成功,這句話是對的,但還不夠完整。

懂得在還沒開始之前,沒有投入資源時間心力之前,就決定放棄,也是成功的要素之一。

低谷,其實就類似「進入門檻」的概念,低谷能創造稀缺性,而稀缺性能創造不凡的價值。

文中也提到有哪幾類低谷值得我們思考與前進,通過這些低谷,就能建立起稀缺性的價值。

...繼續閱讀 »

[遛書]《單元測試的藝術》測試可行性表

面對 legacy 產品,在時間資源有限的情況下,該挑哪些功能來進行測試才適合,是實務上最重要的一件事。

在《單元測試的藝術》第十章的 [表 10-1] 依據組件類型來舉例,針對邏輯複雜度、依賴數量、在專案中的優先級幾個維度來分析,本文則針對這幾個維度進行補充說明。

...繼續閱讀 »

養成技術提案的能力

最近挺多工程師詢問到,要成為一位 tech leader 該具備哪些技能,該怎麼樣培養自己的能力呢?

這問題當然是個大哉問,也沒有所謂的正確解答。但我總會建議他們:「要讓自己往 tech leader 前進,你應該要養成提供技術提案的能力。並透過這個方式,不斷鍛鍊自己。」

...繼續閱讀 »

[推坑] 推薦敏捷開發、專案管理、程序員養成、軟體設計 經典書籍 30 本

在各個研討會、培訓課程、顧問諮詢、社群活動教授時,最常被問到的問題就是:「你推薦哪幾本書?」

其實,這個問題沒有標準答案的,因為學習是循序漸進的,每個人的 context 不同,眼下最適合的書也就不同。這篇文章先把上次推薦的 30 本經典書籍列上來,實際學員眼下讀哪幾本書最有幫助,就得 case by case 瞭解了。

...繼續閱讀 »