【思考的藝術】 贏者詛咒

人生有很多事,不管最後你是贏了還是輸了,你只要開始了,都是輸了。

因為你想贏,就輸了。因為已經投入了時間、心力、資源在上面,捨不得放棄沉沒成本,不想輸,卻忘了贏的代價,卻忽略了贏所帶來的價值。

而這,最常見的模樣,叫做「面子」。

...繼續閱讀 »

講師重複講一樣的內容,不會無聊嗎

身為一個職業的講師與培訓師,很有可能在不同的場合與時機點,面對不同的群眾,同樣的主題與內容得重新再講一次。

一直重複一樣的東西,很容易就會膩、失去熱情、停止成長。

這樣分享一下,我自己的經驗,是如何透過每一次的活動,來幫助自己持續改善。

...繼續閱讀 »

【工具推薦】Drops app - 以生存為導向,學習多國語言的好幫手

不知道有沒很多朋友跟我一樣是學習外文的苦手,上回我們在杭州的 Odd-e gathering,Odd-e 泰國同事因為不吃豬肉,所以在餐廳他能自己叫「服務員,這裡面有豬肉嗎?」講得非常標準,而且也聽得懂服務員的回答,讓我覺得非常驚豔。(還有炒飯、炒麵)

我跟他提到,我覺得他學講中文學得真好、真快、真有天份,他告訴我其實他已經自己用 app 練習了半年了,然後介紹了 Drops 這款 app 給我看,他是怎麼學的。

Drops 的 app 設計地非常友善,是以你到外國要能生存下來為導向,讓你習慣聽得懂、講得出、看得懂一些詞彙,因為 app 的設計非常好,練習起來也很有趣,每天免費的時間只有五分鐘,這也是讓人黏著度很高的限制,如果你是 mobile app 的開發人員,也強烈推薦您下載試用看看。

...繼續閱讀 »

Clean Coder:DI 與 AOP 進階實戰,201909 第二梯次

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

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

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

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

...繼續閱讀 »

【C#進階設計-從重構學會高易用性與高彈性API設計】 201908 第二梯次

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

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

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

...繼續閱讀 »

【針對遺留代碼加入單元測試的藝術】201910 第七梯次﹣台北

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

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

報名這裡去➟【201910 針對遺留代碼加入單元測試的藝術 報名表單

...繼續閱讀 »

【極速開發】 201910 第八梯次 台北

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

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

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

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

...繼續閱讀 »

菜鳥養成策略-Pair Programming

看過很多團隊,在補進新人時給了魚之後就放生菜鳥。好像拿了些素材給他,他就能上手,但其實這是很不負責任的行為。

如果你在乎的是盡快讓菜鳥成為即戰力,熟悉產品、熟悉系統架構、熟悉開發規範、熟悉產品開發中得接觸到的各個角色、熟悉整個開發流程,你就不該在一開始的三個月把他排除在團隊之外。

而是在一開始就讓他加入團隊,當個觀察者、學徒、活水,甚至讓他貢獻出一些價值,例如發現過去團隊看不見的盲點,針對團隊習以為常卻不合理的部份提出疑問。

而 Pair Programming 是一種已知很有效果的方式,來讓菜鳥能扎實地融入團隊。

...繼續閱讀 »

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

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

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

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

...繼續閱讀 »

【工具推薦】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 演化式設計:測試驅動開發與持續重構 報名表單

...繼續閱讀 »