l

2016年3月25日 星期五

改行寫網路小說算了(22)

Jan. 08 20:29~22:15

擷取1

 

開演之前再次重聲,本系列文章純屬虛構之文創作品。

都是月亮惹的禍

龍蝦生病了

雞腿生病了

廚師也生病了

食物才沒有好吃到讓我飛起來

 

小白生病了

喇叭生病了

教主也生病了

演講才沒有好聽到讓我嗨起來

 

一定是這樣!一定是這樣!一定是這樣!

要相信教主

 

東西都放在這裡,真的覺得很可笑

怎可因大易輸入法大大的容易就說它是幼幼輸入法

 

不能啊,不能

先知總是孤獨的

五年後我們才會懂

***

友藏內心獨白:誰說沒有現世報。

2016年3月24日 星期四

改行寫網路小說算了(21)

March 21 17:54~18:24

螢幕截圖 2016-03-21 18.18.40

▲照片節錄自Google搜尋「頂新 黑心油」結果

 

請別人安心服用

小明:大嬸、大嬸,為什麼你自己都不吃你店裡的招牌「鱷魚麵」?是因為吃膩了嗎?

大嬸:傻孩子,我們店裡的「鱷魚麵」那麼搶手,我怎麼可以跟客人搶,當然是優先供應給客人服用啊。

大嬸內心獨白:你看過我準備食材的過程嗎…嘿嘿嘿…

***

員工:老闆、老闆,我們公司開了那麼多課,教出了那麼多具備「即戰力」的好人才,為什麼還要徵人找工程師?從這些具備即戰力的學生中找不就好了?

老闆:傻孩子,我們教出來的即戰力學生那麼搶手,我怎麼可以跟企業界搶呢,當然是優先讓其他公司服用啊。

老闆內心獨白:課程所謂的即戰力是指我的銀行帳號在學生報名之後立刻具備即戰力,不是指學生的能力,你搞錯主詞了。

***

友藏內心獨白:頂新魏家會用自己公司生產的豬油嗎 ?

2016年3月23日 星期三

跑Scrum可以採用Unified Process嗎?

March 20 00:40~13:32

image

▲Teddy當年修OOAD的指定參考書

 

上禮拜四在北科上「軟體生命週期管理」的時候,學生問了一個問題:「跑Scrum可以採用Unified Process(UP)嗎?」。

因為這學期有些學生修了物件導向分析與設計(OOAD)課程,學到UP,所以問了這個問題。Teddy沒有直接回答,反問學生另一個問題:「UP的兩個核心是什麼?(註:應該是三個,但當下Teddy只記得兩個)」

現場有修OOAD的學生也答不出來,後來「疑似」有人「違規」偷偷Google,好不容易擠出一個答案:「Use-Case Driven」。

UP的三大支柱為:

  • Use-Case Driven維基百科上的資料,此點為Risk Focused)
  • Architecture-Centric
  • Iterative and Incremental

如果可以從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?

***

友藏內心獨白:迭代與增量,才能累積層次。

2016年3月22日 星期二

用Replace Array With Object移除Primitive Obsession怪味道

March 18 16:24~17:40

螢幕截圖 2016-03-18 17.48.55

 

Primitive Obsession怪味道的說明請參考〈談談壞味道(5):Data Clumps & Primitive Obsession〉,今天介紹Replace Array With Object重構來移除這個怪味道。

▼HostChecker類別被設計用來檢查電腦的健康狀況,它包含一個Command物件_cmd,透過這個Command物件執行真正的檢查工作。HostChecker的execute()函數會呼叫_cmd.run()並回傳一個字串陣列代表檢查結果。

螢幕截圖 2016-03-18 17.21.24

 

▼以下測試案例展示客戶端使用HostChecker類別的方式,客戶端必須要自己知道呼叫execute()函數回傳的字串陣列的格式。例如,陣列0表示檢查狀態字串,陣列1表示檢查狀態代號,陣列2表示檢查狀態說明,陣列3是空字串,在這裡看不出代表什麼意義。

螢幕截圖 2016-03-18 17.27.11

***

▼套用Replace Array With Object重構,把execute()函數回傳的字串陣列改成回傳物件。首先新增CheckResult類別用來代表execute()函數的回傳值。

螢幕截圖 2016-03-18 17.38.30

 

▼把HostChecker的execute函數回傳值改成CheckResult。

螢幕截圖 2016-03-18 17.40.43

 

▼重構之後由測試案例便可看出使用物件的語意比回傳字串陣列要清楚很多。

螢幕截圖 2016-03-18 17.42.30

***

友藏內心獨白:看到這個重構發出會心的一笑。

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月20日 星期日

2015北九州考察之旅Day5-E佐世保到博多

March 11 09:09~09:49

離開九十九島水族館後搭巴士回到佐世保車站,時間接近下午四點半。待會就要離開佐世保回到博多(福岡),肚子也有點餓了提早吃個晚餐再離開。佐世保除了漢堡有名,另外「牛柳」也很有名。剛好在車站前看到一家有賣牛柳的餐館,就在這裡用餐吧。

▼進門前看到這個告示覺得很新奇,大部分的店家都是張貼「歡迎使用銀聯卡」,但這個店家卻是「銀聯卡不能使用」。

螢幕截圖 2016-03-11 09.10.57

 

▼可能時間還早店內用餐客人不多。

螢幕截圖 2016-03-11 09.11.15螢幕截圖 2016-03-11 09.11.27螢幕截圖 2016-03-11 09.12.43

 

▼點了牛柳和炸豬排,味道還可以但應該沒有好吃到讓我想飛起來的感覺XD。

螢幕截圖 2016-03-11 09.13.00螢幕截圖 2016-03-11 09.12.50

 

▼2354日幣,約685台幣,不算貴。

螢幕截圖 2016-03-11 09.13.11

 

▼再見,佐世保驛。

螢幕截圖 2016-03-11 09.13.32

***

▼下午約五點半搭車回博多。

螢幕截圖 2016-03-11 09.40.19螢幕截圖 2016-03-11 09.40.27螢幕截圖 2016-03-11 09.41.03

 

▼約下午七點四十到達博多。

螢幕截圖 2016-03-11 09.41.26

 

▼到SuperHotel放好行李,還有點時間出來逛逛。

螢幕截圖 2016-03-11 09.43.45螢幕截圖 2016-03-11 09.45.09螢幕截圖 2016-03-11 09.45.16螢幕截圖 2016-03-11 09.45.24螢幕截圖 2016-03-11 09.45.32螢幕截圖 2016-03-11 09.45.43

***

友藏內心獨白:和台灣川菜館的牛柳不一樣喔。

2016年3月19日 星期六

2015北九州考察之旅Day5-D九十九島水族館

Jan. 19 22:28~23:02

▼西海國立公園除了搭船遊九十九島以外,還有一個九十九島水族館。都已經來了一趟而且還有時間,買了門票進去參觀,沒想到還很好玩,看到很多水族動物。

螢幕截圖 2016-01-19 22.31.50

螢幕截圖 2016-01-19 22.31.11螢幕截圖 2016-01-19 22.32.10螢幕截圖 2016-01-19 22.34.47螢幕截圖 2016-01-19 22.32.32螢幕截圖 2016-01-19 22.33.01螢幕截圖 2016-01-19 22.33.28

 

▼魚字旁的漢字,好多都不認識…Orz。

螢幕截圖 2016-01-19 22.33.37

螢幕截圖 2016-01-19 22.34.00螢幕截圖 2016-01-19 22.34.14螢幕截圖 2016-01-19 22.34.41螢幕截圖 2016-01-19 22.35.13螢幕截圖 2016-01-19 22.35.25螢幕截圖 2016-01-19 22.48.42

 

▼很搶戲的河豚。

螢幕截圖 2016-01-19 22.34.59

***

▼這裡有一個水母研究室,展示很多水母,很有趣。

螢幕截圖 2016-01-19 22.38.40螢幕截圖 2016-01-19 22.36.53螢幕截圖 2016-01-19 22.37.12螢幕截圖 2016-01-19 22.37.20螢幕截圖 2016-01-19 22.37.56螢幕截圖 2016-01-19 22.38.08

 

▼不老不死的水母,好強,比教主還強XD。

螢幕截圖 2016-01-19 22.38.54

 

,據說幾十年前台灣的西部還有鱟,現在只剩金門有。

螢幕截圖 2016-01-19 22.39.23螢幕截圖 2016-01-19 22.40.35

螢幕截圖 2016-01-19 22.40.21螢幕截圖 2016-01-19 22.40.26

 

▼海豚表演。

螢幕截圖 2016-01-19 22.56.52

螢幕截圖 2016-01-19 22.55.43螢幕截圖 2016-01-19 22.55.52螢幕截圖 2016-01-19 22.55.58螢幕截圖 2016-01-19 22.56.09螢幕截圖 2016-01-19 22.56.18螢幕截圖 2016-01-19 22.56.32

***

▼看完海豚表演時間差不多,買了點紀念品準備搭巴士回佐世保驛。

螢幕截圖 2016-01-19 22.59.18

 

▼本日足跡。

螢幕截圖 2016-01-19 22.59.57


***

友藏內心獨白:下午行程意料之外的有趣。