【戳盒子宣言】當蟑螂,還是當恐龍?

這個世界唯一不變的,就是「不斷在變」。

「生存能力」考驗的是「適應變化的能力」,如何以小博大?靠的就是適應變化、掌握變化、創造變化,讓大企業跟不上變化的速度,讓「變化」成為「大衛王」手裡用來擊敗「巨人歌利亞」的石子。

而這,也是敏捷的本質,也是《反脆弱》一書中所強調:適應變化,並且從變化中獲得競爭優勢,進而進化自己的能力與體質。

...繼續閱讀 »

【工具推薦】Chrome Extensions: Smart TOC

資訊爆炸的時代,有許多資訊來源來自網路上的文章。然而如何一目了然網頁上的內容有哪些重點跟大綱呢?能不能讓一般的網頁文章,也有類似 wiki 網頁上的目錄,供我們快速了解與移動至某個段落呢?

本文要介紹的工具是 Chrome 的擴充套件:Smart TOC。TOC 就是 Table of Contents,顧名思義,就是按照 H1, H2, H3 這類標題一、標題二、標題三的樣式,幫你產生網頁內容的「目錄」,讓你可以更方便的了解全貌與快速在章節中巡覽。

哪怕每次只是節省了你幾秒鐘的時間,累積下來也是很可觀的。生命應該浪費在美好的事物上,而不是重複跟沒意義的動作。

...繼續閱讀 »

【Code Complete 2nd Edition:軟體開發實務指南】怎麼讀這本 1.7 kg 重的經典磚塊書

《Code Complete 2nd Edition》,簡稱 cc2e,是一本很經典,也挺有年紀的書。2004 年就出版,幾乎是每一位頂尖的開發人員都閱讀過很多次的好書。

然而篇幅很長,這就是本軟體開發的四庫全書,是屬於「大全」類型的書。很多人買了之後,就只在案頭上供著,看沒幾個段落就提不起興趣往下看。

本文希望藉由自己的一些經驗,整理幾個閱讀的重點與注意事項,希望能幫助大家更輕鬆、有感、持續地體會這本書能為你帶來的實際價值。

...繼續閱讀 »

Write a Unit Test for ExceptionFilterAttribute

在 ASP.NET MVC 與 ASP.NET Web API 中,會使用有彈性且關注點分離的 ActionFilter 來進行進出 Action 的控制。

然而 ActionFilter 大部分都是在處理 HttpRequest 與 HttpResponse 的內容,該怎麼為 ActionFilter 撰寫獨立的單元測試呢?這篇文章將以一個簡單的自訂 ExceptionFilter 來當範例,說明怎麼模擬 HttpRequest HttpResponse,尤其是使用了 HttpRequestMessage CreateResponse() 系列方法。

...繼續閱讀 »

學著讓學習的「速度」變慢,你會學得更透徹。

現在坊間很流行著一堆「快速學習」的方法、筆記術。但,這並不一定有效。你可能只是產出不少 output,但不一定有 outcome。

學習,要戒掉吃速食的習慣。這會讓你虛胖,而且會讓你逐漸失去靜下心專注、深入學習的耐心。

透過一些方式,讓自己放慢學習的步調,讓自己不由自主進行思考、聯想、創作,就會把新的資訊轉化成知識點(knowledge base),進而再與過去的既有知識體系建立連結。

「fast food」的圖片搜尋結果

...繼續閱讀 »

演化式設計:測試驅動開發與持續重構,第六梯次 201907

【課程主題涵蓋範圍】

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

報名這裡去➟【201907 演化式設計:測試驅動開發與持續重構 報名表單

...繼續閱讀 »

極速開發 201905 第七梯次 台北

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

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

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

報名這裡去➟【201905 極速開發 報名表單

...繼續閱讀 »

工程實踐與流程規範導入實務 201906 第一梯次

  • 1889
  • 0
  • 2019-05-27

想要轉型或導入,常見的失敗原因有很多,我希望能在短短兩天裡面協助各位,從四個面向:基礎建設與環境、工程實踐與技能、心態與理論、協作流程與框架,進行本質/實踐/規範/導入手法的剖析。

※ 請注意,此課程將贈送課後 1 小時的線上諮詢(價值 NT$ 7,000),只要跟 91 橋好線上諮詢時間,即可使用。

報名這裡去 ➟【201906 工程實踐與流程規範導入實務 報名表單

...繼續閱讀 »

【Fragile-Agile】脆弱的 Agile

  • 437
  • 0
  • 2019-01-09

敏捷很好,但敏捷如果沒有技術實踐跟工程基礎建設,敏捷用在軟體產品開發上,就只是耍流氓而已。

想要當個稱職的內部教練、引導者、工程實踐與開發方法論的導入先驅者,你的確必須具備相當多 soft-skill 與 hard-skill,在 【工程實踐與流程規範導入實務】這門培訓中,我將結合我過去在組織轉型、協作流程優化、建立文化、訂定規範與標準,以及工程實踐導入與落地的經驗,讓你充實充飽你的軍火庫,讓你能因應你團隊的特殊限制與需求,挑選合適的方式開始動手協助改善團隊的產品開發。

準備好從「殺豬公」到「飛上外太空」了嗎?

...繼續閱讀 »

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 開發的話,你就得先擬出怎麼簡單使用你所設計攔截器物件的情境。

...繼續閱讀 »

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 極速開發 報名表單】,已額滿,加入等待清單可以享有下次課程提前收到開課通知的權利

 

...繼續閱讀 »