l
顯示具有 課程實錄 標籤的文章。 顯示所有文章
顯示具有 課程實錄 標籤的文章。 顯示所有文章

2016年3月21日 星期一

【軟體重構入門實作班】第一梯次課程實錄:Day2

March 18 13:36~14:53

螢幕截圖 2016-03-18 14.47.36

▲第二天上課前很敏捷的調整課程進行方式XD

 

軟體重構入門實作班】第二天上課前聽取學員意見,原本每一個重構方法都安排幾分鐘的練習,為了把全部內容(22個怪味道,36個重構)全部講完,經過討論後改成由Teddy講解練習內容,學員下課後再自行練習。

▼Day1下課前請學員花三分鐘給點回饋。

螢幕截圖 2016-03-18 13.39.02

 

▼原本排定的內容與練習太多,時間不夠用。

螢幕截圖 2016-03-18 13.39.21

***

▼第二天從Bloater分類的這五個怪味道開始講起,這個分類的五個怪味道會造成程式膨脹,故稱為Bloater。

螢幕截圖 2016-03-18 13.53.26

 

▼Large Class怪味道內容。

螢幕截圖 2016-03-18 13.58.29

 

▼有些怪味道練習結束後會包含進階探索內容,延伸討論與消除此怪味道有關的設計原則。

螢幕截圖 2016-03-18 13.59.19

 

▼講完Bloater分類剛好介紹完10個怪味道,安排動腦時間,請學員們討論這10個怪味道之間有何關係?

螢幕截圖 2016-03-18 14.01.42

 

▼在「看板」前討論怪味道之間的關係。

螢幕截圖 2016-03-18 14.08.43

 

▼下午4:30把22個怪味道與36個重構方法講完,請學員們再一次到「看板」前面複習每一個怪味道以及重構方法之間的關係。

螢幕截圖 2016-03-18 14.19.17

***

▼課程最後談重構與軟體設計方法,從傳統物件導向分析設計(OOAD)與TDD的角度來看重構所扮演的角色

螢幕截圖 2016-03-18 14.29.22

螢幕截圖 2016-03-18 14.30.44

 

▼泰迪軟體特別將Uncle Bob的Bowling Game Kata(一個TDD與重構的練習教材)錄製成中文影片,給學員做為練習的參考。

螢幕截圖 2016-03-18 14.36.22

***

藉由首發團的經驗與學員的回饋意見,下次開課預計把課程時間調整成三天,預留充裕的課堂實作時間。

***

友藏內心獨白:謝謝首發團學員的熱情參與。

2016年3月18日 星期五

【軟體重構入門實作班】第一梯次課程實錄:Day1

March 18 11:10~12:29

螢幕截圖 2016-03-18 12.26.29

 

3月15、16舉辦的「軟體重構入門實作班」已順利結束。準備了兩年終於開課,為了感謝參加「首發團」學員的支持,在開始正式上課前Teddy宣布首發團的學員在兩年之內可以免費再上一次本課程。

▼入門班課程首先從介紹重構基本觀念開始,接著進入到主題,涵蓋Martin Fowler經典重構名著《Refactoring》書中的22個怪味道(Bad Smells),以及36個移除這些怪味道的重構手法。最後討論重構在軟體設計方法中所扮演的角色,並說明TDD與重構的關係。

螢幕截圖 2016-03-18 11.30.44螢幕截圖 2016-03-18 11.30.54

***

▼課程開始先用透過樂高遊戲來體驗什麼是重構,以及軟體開發沒有進行重構和有進行重構的差別。

螢幕截圖 2016-03-18 12.02.11IMG_9370_with_logo

 

▼接著進入重構基本觀念介紹,持續重構可以改善軟體設計,讓軟體變軟。

螢幕截圖 2016-03-18 11.43.11

 

▼瞭解重構的目的之後,怎麼知道自己的軟體何時需要重構?透過尋找怪味道做為重構的觸發點。

螢幕截圖 2016-03-18 11.44.55

 

▼尋找怪味道練習,正式介紹22個怪味道之前,先「檢查」看看學員們的「程式碼嗅覺」靈敏度如何。

IMG_9507_with_logo

 

▼慢慢切入主題,從重構的定義來思考以下這六個議題。

螢幕截圖 2016-03-18 11.49.56

 

▼重構藉由改變不同粒度大小的程式結構,達到提升設計品質的目的。

螢幕截圖 2016-03-18 11.53.14

 

▼思考一下哪些活動屬於重構?

螢幕截圖 2016-03-18 11.52.08

***

▼重要觀念介紹完畢之後接下來就是一連串的怪味道與重構練習。

螢幕截圖 2016-03-18 11.54.57

 

▼每一個怪味道包含了:

  • 怪味道定義
  • 怪味道對系統造成的傷害
  • 常見移除怪味道的重構方法
  • 重構方法實作練習

螢幕截圖 2016-03-18 11.56.27螢幕截圖 2016-03-18 11.56.36螢幕截圖 2016-03-18 11.56.43

 

▼重構課程需要練習的範例很多,課程提供了完整的程式碼,包含參考解答。實際練習前先解釋如何使用這個Eclipse練習專案。

螢幕截圖 2016-03-18 12.07.58

 

▼練習中…

IMG_9612_with_logo

image

 

練習範例包含測試案例,學習重構可同時學習如何撰寫單元測試。

螢幕截圖 2016-03-18 17.33.47

 

▼更新進度看板。

螢幕截圖 2016-03-18 12.15.53

***

友藏內心獨白:第一天結束進度講到Part 3,還有四大分類怪味道沒講(驚!)。

2014年7月8日 星期二

新辦公室試營運

July 07 09:24~10:07

螢幕截圖 2014-07-07 09.24.10

 

上禮拜六、日(7/5、7/6)是「設計模式這樣學就會了:進階實作班」Day1、Day2上課的日子,也是泰迪軟體搬家之後,第一次在新辦公室上課。從今年5月中旬決定搬家以來,Erica和Teddy花了很多時間在找合適的辦公室。好不容易找到之後,又花了一個月的時間整理。大至冷氣、桌椅、書櫃、窗簾,小至電燈、開關、延長線、垃圾桶、衛生紙架、鏡子,辦公室裡面的每項東西都親自挑選(因為公司只有兩個人挑眉質疑),終於趕上7月初的設計模式進階班開課時間,到了「試營運」的日子。

 

螢幕截圖 2014-07-07 10.08.47

上課前先玩個搶答小遊戲

 

Teddy內心特別高興,雖然上課場地的設備比不上五星級大飯店豪華,但和以前借用學校場地相比,已有不小的改善,也符合Teddy預想的那種讓學員有種來到家裡上課的fu」挑眉質疑。還有一點很重要,因為有冰箱,終於可以在喝熱咖啡的時候提供鮮奶而非只有奶精,兩者的感覺差很多。

 

螢幕截圖 2014-07-07 09.40.19螢幕截圖 2014-07-07 09.40.37

辦公室沒有隔間,上課場地和辦公位置合一

***

這次上進階班的學員,有好幾位來自同一間公司,其中有人很熱心地向公司推薦,找Teddy去他們公司上內訓課程,讓Teddy覺得很窩心也很感謝他們的推薦。

第二天課程結束後,學員們跟Teddy討論講義中的Decorator範例。學員們真的看得好仔細,有些細節Teddy在設計Decorator範例的時候沒有特別留意。感謝他們的發問,讓Teddy有機會可以改善教材很棒

螢幕截圖 2014-07-07 09.51.16

在白板上討論Decorator範例

***

友藏內心獨白:試營運成功。

2014年4月2日 星期三

[課程實錄] 深入探索需求-敏捷體驗設計工作坊

Mar. 28 09:10~10:25

螢幕截圖 2014-03-28 09.15.35

 

第二梯次的「深入探索需求-敏捷體驗設計工作坊」在3月25日開課,授課講師是Teddy的同事Erica。這個工作坊的名稱有四個重點,分別是:「Agile(敏捷)」、「Experience(體驗)」、「Design(設計)」以及「Workshop(工作坊)」。聽起來好像是廢話,其實不然。這四個重點從後往前解釋。首先,「Workshop」的意思就是要參加課程的學員動手做,所以這個課程有很多練習活動。

image

 

了解課程的進行方式,接下來討論「Design」。請各組學員思考一下,什麼是設計,以及怎樣的設計才能稱為「好設計」?

螢幕截圖 2014-03-28 09.40.44螢幕截圖 2014-03-28 09.40.53螢幕截圖 2014-03-28 09.41.07

 

接下來討論「Experience」,什麼是體驗?

螢幕截圖 2014-03-28 09.44.39

 

知道了「設計」與「體驗」的定義,把這兩個合起來,對於「體驗設計」就有了初步的認識。

螢幕截圖 2014-03-28 09.45.29

 

最後,什麼是「敏捷體驗設計」?就是把「體驗設計」放到敏捷開發的框架裡面來看看它是如何運作。

***

「說文解字」的任務達成之後,接下來就是動手做的階段。步驟很簡單,如下所示:

螢幕截圖 2014-03-28 09.53.21

 

活動過程一言難盡,就直接看照片吧不要告訴別人

image

 

image

 

image

***

這次活動參與的學員背景各異,有程式設計師、前端工程師、分析師、系統工程師、演算法工程師(疑?)、部門主管、遊戲企劃、介面設計師等。經由不同背景的團隊成員一起參與體驗設計的過程,更可以激發出新的想法。

***

友藏內心獨白:跨界活動真的很有趣。