Jan. 08 20:29~22:15
開演之前再次重聲,本系列文章純屬虛構之文創作品。
都是月亮惹的禍
龍蝦生病了
雞腿生病了
廚師也生病了
食物才沒有好吃到讓我飛起來
小白生病了
喇叭生病了
教主也生病了
演講才沒有好聽到讓我嗨起來
一定是這樣!一定是這樣!一定是這樣!
要相信教主
東西都放在這裡,真的覺得很可笑
怎可因大易輸入法大大的容易就說它是幼幼輸入法
不能啊,不能
先知總是孤獨的
五年後我們才會懂
***
友藏內心獨白:誰說沒有現世報。
Jan. 08 20:29~22:15
開演之前再次重聲,本系列文章純屬虛構之文創作品。
都是月亮惹的禍
龍蝦生病了
雞腿生病了
廚師也生病了
食物才沒有好吃到讓我飛起來
小白生病了
喇叭生病了
教主也生病了
演講才沒有好聽到讓我嗨起來
一定是這樣!一定是這樣!一定是這樣!
要相信教主
東西都放在這裡,真的覺得很可笑
怎可因大易輸入法大大的容易就說它是幼幼輸入法
不能啊,不能
先知總是孤獨的
五年後我們才會懂
***
友藏內心獨白:誰說沒有現世報。
March 21 17:54~18:24
▲照片節錄自Google搜尋「頂新 黑心油」結果
請別人安心服用
小明:大嬸、大嬸,為什麼你自己都不吃你店裡的招牌「鱷魚麵」?是因為吃膩了嗎?
大嬸:傻孩子,我們店裡的「鱷魚麵」那麼搶手,我怎麼可以跟客人搶,當然是優先供應給客人服用啊。
大嬸內心獨白:你看過我準備食材的過程嗎…嘿嘿嘿…
***
員工:老闆、老闆,我們公司開了那麼多課,教出了那麼多具備「即戰力」的好人才,為什麼還要徵人找工程師?從這些具備即戰力的學生中找不就好了?
老闆:傻孩子,我們教出來的即戰力學生那麼搶手,我怎麼可以跟企業界搶呢,當然是優先讓其他公司服用啊。
老闆內心獨白:課程所謂的即戰力是指我的銀行帳號在學生報名之後立刻具備即戰力,不是指學生的能力,你搞錯主詞了。
***
友藏內心獨白:頂新魏家會用自己公司生產的豬油嗎 ?
March 20 00:40~13:32
▲Teddy當年修OOAD的指定參考書
上禮拜四在北科上「軟體生命週期管理」的時候,學生問了一個問題:「跑Scrum可以採用Unified Process(UP)嗎?」。
因為這學期有些學生修了物件導向分析與設計(OOAD)課程,學到UP,所以問了這個問題。Teddy沒有直接回答,反問學生另一個問題:「UP的兩個核心是什麼?(註:應該是三個,但當下Teddy只記得兩個)」
現場有修OOAD的學生也答不出來,後來「疑似」有人「違規」偷偷Google,好不容易擠出一個答案:「Use-Case Driven」。
UP的三大支柱為:
如果可以從UP的基本核心下手,比較能夠思考與推理「跑Scrum可以採用Unified Process(UP)嗎」這個問題。
後來Teddy告訴學生,自己覺得在Scrum裡面當然可以跑UP,至少UP的很多「精神」可以借用。而且Teddy自己的第一個Scrum專案就是參考UP的做法,請參考〈敏捷開發與OOAD(上)〉和〈敏捷開發與OOAD(下)〉。但Teddy並沒有告訴學生要怎麼在Scrum裡面怎麼用UP,請他們自己回去想一下,想過了之後再來討論。
***
2014年讀了幾本有關限制理論的小說(請參考〈[還少一本書] 目標:簡單有效的常識管理〉),剛開始閱讀的時候Teddy覺得很奇怪,為什麼小說裡面的物理學教授「鐘納」,在最關鍵的時候總是不把問題的答案直接告訴小說主角「羅哥」,而是要對方「自己思考答案」?
許多台灣人,當然也包含Teddy,從小到大受到的教育,都在尋找與背誦「標準答案」,而較少訓練自己對於問題的思辨能力。可以找到人立刻問到「標準答案」,乍看之下很棒,因為立即解決了自己的問題,好像獲得了「即戰力」,有一種「立馬變強大的感覺」。但是,如果有一天你的問題沒有人可以告訴你「標準答案」怎麼辦?到處尋找名師結果找到詐神?盲目參加各種活動尋找解答?還是隨便把「任何可能的答案」當成「答案」?
***
怎麼培養自己思辯的能力?還是那句老話,看書,深入、有層次的看書,左右互搏式的看書(請參考〈左右互搏之術〉)。
《讀書力》這本書說:「讀書也是為了讓一群優秀的人常駐自己心中。讀書的主要目的,不光是取得資訊。」看書如果只是為了在書中找到幾句看起來很棒棒的話,然後貼在Facebook上意圖使人產生你真的很棒棒的錯覺,那就太可惜了。
當你遇到問題的時候,可以從心中呼叫誰出來幫忙哩?Kent Beck、Uncle Bob、Christopher Alexander,還是皮卡丘XD?
***
友藏內心獨白:迭代與增量,才能累積層次。
March 18 16:24~17:40
Primitive Obsession怪味道的說明請參考〈談談壞味道(5):Data Clumps & Primitive Obsession〉,今天介紹Replace Array With Object重構來移除這個怪味道。
▼HostChecker類別被設計用來檢查電腦的健康狀況,它包含一個Command物件_cmd,透過這個Command物件執行真正的檢查工作。HostChecker的execute()函數會呼叫_cmd.run()並回傳一個字串陣列代表檢查結果。
▼以下測試案例展示客戶端使用HostChecker類別的方式,客戶端必須要自己知道呼叫execute()函數回傳的字串陣列的格式。例如,陣列0表示檢查狀態字串,陣列1表示檢查狀態代號,陣列2表示檢查狀態說明,陣列3是空字串,在這裡看不出代表什麼意義。
***
▼套用Replace Array With Object重構,把execute()函數回傳的字串陣列改成回傳物件。首先新增CheckResult類別用來代表execute()函數的回傳值。
▼把HostChecker的execute函數回傳值改成CheckResult。
▼重構之後由測試案例便可看出使用物件的語意比回傳字串陣列要清楚很多。
***
友藏內心獨白:看到這個重構發出會心的一笑。
March 18 13:36~14:53
▲第二天上課前很敏捷的調整課程進行方式XD
【軟體重構入門實作班】第二天上課前聽取學員意見,原本每一個重構方法都安排幾分鐘的練習,為了把全部內容(22個怪味道,36個重構)全部講完,經過討論後改成由Teddy講解練習內容,學員下課後再自行練習。
▼Day1下課前請學員花三分鐘給點回饋。
▼原本排定的內容與練習太多,時間不夠用。
***
▼第二天從Bloater分類的這五個怪味道開始講起,這個分類的五個怪味道會造成程式膨脹,故稱為Bloater。
▼Large Class怪味道內容。
▼有些怪味道練習結束後會包含進階探索內容,延伸討論與消除此怪味道有關的設計原則。
▼講完Bloater分類剛好介紹完10個怪味道,安排動腦時間,請學員們討論這10個怪味道之間有何關係?
▼在「看板」前討論怪味道之間的關係。
▼下午4:30把22個怪味道與36個重構方法講完,請學員們再一次到「看板」前面複習每一個怪味道以及重構方法之間的關係。
***
▼課程最後談重構與軟體設計方法,從傳統物件導向分析設計(OOAD)與TDD的角度來看重構所扮演的角色。
▼泰迪軟體特別將Uncle Bob的Bowling Game Kata(一個TDD與重構的練習教材)錄製成中文影片,給學員做為練習的參考。
***
藉由首發團的經驗與學員的回饋意見,下次開課預計把課程時間調整成三天,預留充裕的課堂實作時間。
***
友藏內心獨白:謝謝首發團學員的熱情參與。
March 11 09:09~09:49
離開九十九島水族館後搭巴士回到佐世保車站,時間接近下午四點半。待會就要離開佐世保回到博多(福岡),肚子也有點餓了提早吃個晚餐再離開。佐世保除了漢堡有名,另外「牛柳」也很有名。剛好在車站前看到一家有賣牛柳的餐館,就在這裡用餐吧。
▼進門前看到這個告示覺得很新奇,大部分的店家都是張貼「歡迎使用銀聯卡」,但這個店家卻是「銀聯卡不能使用」。
▼可能時間還早店內用餐客人不多。
▼點了牛柳和炸豬排,味道還可以但應該沒有好吃到讓我想飛起來的感覺XD。
▼2354日幣,約685台幣,不算貴。
▼再見,佐世保驛。
***
▼下午約五點半搭車回博多。
▼約下午七點四十到達博多。
▼到SuperHotel放好行李,還有點時間出來逛逛。
***
友藏內心獨白:和台灣川菜館的牛柳不一樣喔。
Jan. 19 22:28~23:02
▼西海國立公園除了搭船遊九十九島以外,還有一個九十九島水族館。都已經來了一趟而且還有時間,買了門票進去參觀,沒想到還很好玩,看到很多水族動物。
▼魚字旁的漢字,好多都不認識…Orz。
▼很搶戲的河豚。
***
▼這裡有一個水母研究室,展示很多水母,很有趣。
▼不老不死的水母,好強,比教主還強XD。
▼鱟,據說幾十年前台灣的西部還有鱟,現在只剩金門有。
▼海豚表演。
***
▼看完海豚表演時間差不多,買了點紀念品準備搭巴士回佐世保驛。
▼本日足跡。
***
友藏內心獨白:下午行程意料之外的有趣。