[活動記實] 讀書會~Clean Code (無瑕的程式碼)@加爾第咖啡

** 所有相關活動的完整照片,可至-「2013.05.18_Clean Code 讀書會」Flickr 相片集瀏覽。 **

上上星期六 (5/18) HSDc. 所舉辦的「Clean Code (無瑕的程式碼) 讀書會」,在相當熱絡的研討與歡樂的氣氛下,圓滿落幕了。

「Clean Code」中譯本的技術編輯(Simon, 博碩文化)也特別蒞臨此次的活動,與會過程中不只用心地回應讀者許多問題外,還分享了在翻譯該書時的用字遣詞,以盡能表達出原文的意境,實在相當感謝他能為業界翻譯如此高品質的譯本。還有,他也為讀友們帶來一項福利,在博碩的粉絲團內按個「讚」,就有機會抽中「Clean Code」原版書籍,定價可是 NT$2,200,不便宜呢。

這次讀書會的導讀與主持不得已就由我個人來擔任。我把時間安排大致分為讀書內容的心得分享、問題提問、自由討論。

一開始先作個腦力激盪 (brain storm),這裡我用心智圖 (mindmap)先整理出關於「Clean Code」的 5W-What, Why, When, Which, Who。雖然看來僅是簡單的整理,但讀友們大都發言踴躍,在分享一些對「乾淨的程式碼」的看法與心得,以及一些問題討論,這樣也討論到中午 12:40 才休息,大家各自用完中餐後,下午 1:30 繼續研討。

Clean Code 心智圖

下午整個主題就完全以書本大綱內的「How-to」為重心了,一章一章地討論大綱內容。畢竟作者就已開宗明義內提及:「小事情上誠實,可不是一件小事。」;同時又提到:「神 (我以為是魔鬼?)就在細節內。」。所以,程式碼當然就要回歸到「How-to」細節內,這可是不能眼高手低的。

事實上,這本書大概到第 10 章就足夠了,後續的內容,有其他作者撰寫的、有作者早期的論文,也有從「Refactoring」一書節錄的重構型錄,許多內容其實翻過就可以了。(不過看來我最認真!? 關於第14章-「持續地精煉」,我可是逐行閱讀其程式碼,整整花了三個晚上還不容易了解內容,直至與 Ringle 討論過後,他認為該範例還是不夠「Clean」,仍需要繼續「精煉」。 >_<) 即使只研讀到第10章左右,但也不容易,直到下午約5:00結束時才勉強「翻完」,其實仍是有諸多細節尚未討論的。不過也算是盡心了,讀友們的發言夠是踴躍了,也相信有許多研討的內容對未來他們的工作,在長期上會有相當體會與助益的。 讀書會@吳興街加爾第咖啡

閱讀全文 »

寫一本書所構思的大綱-利用心智圖

上上個月底,與「悅知出版社」編輯約談喝咖啡,洽談寫書的相關事宜。個人想寫一本比較從架構思維的觀點來規劃與設計 雲端/Android 平台內容的書籍,並藉由一個案例研討 (case study),採用 目標導向/步驟實作 的方式,把整個開發過程,利用 UML/Java 呈現出相關的設計產出與程式碼。

待上個月底從「深圳」教課回來後,花了兩天的時間構思大綱,並先利用心智圖 (mindmap)快速整理成草稿,然後再轉成條列式的大綱 (outline),並寫成 Word 提案 (proposal),電郵給該編輯請之出版社審核,待核可後即開始整理動筆。

對了,同時 Ringle 也有他第二本書的大綱提案,他的主題是以中階軟體開發人員所想要的-設計樣式 (design pattern),他準備以 ERP 為主要案例,書內有三五個主題,每一個主題所涵蓋會使用到的設計樣式結成一串,來說明是如何應用這些設計樣式並實作的。

我不像 Ringle 如此的有條理,他只花一天的時間就完成了大綱的構思。反之我是藉由心智圖,先沒有條理、採取直覺放射的方式,把想法諸多枝葉細節先一股腦塞到心智圖內,再來慢慢地整理,長出主要的枝幹 (也就是寫一本書的主軸大綱等)來。心智圖草稿 (draft)不講究顏色美觀與否,快速地勾勒出心中的那張圖比較重要,以後相關細節再來慢慢調整即可。

底下為該心智圖草稿的縮圖,點擊鏈結後可以下載原尺寸的圖檔供參考。

雲端/Android/JML 寫書大綱心智圖

別出極具創意的新年賀卡-UML 13張關連心智筆記圖

過年前,我們團隊 (HSDc Inc.)所舉辦的 [UML 2.0 觀念引導與實務操作入門] 課程,約有近 20位學員參加。其中,有一位相當高恌的女孩子就坐在最前座,上課的時候總是相當專心聽講作筆記。

我在講課時總是喜歡採用反問的方式,藉以引導學員可以思考我所提問問題背後的涵意。大部分學員總是會有些怕怕,也比較不敢表達出自己的想法,但這位女孩子卻是可以回答出令人相當滿意的答案,讓我相當的佩服;更為訝異的是,在下課時與她閒聊,才知道她還只是撰寫大型系統的程序性古典語言,也沒有寫過 Java or .NET 等 OOP 語言。但是,我可是真的覺得,她對物件導向的設計哲理,相當具有領悟力,也很肯去反思,俱足軟性思考的頭腦。

對於這樣聰慧、具 Smart 特質、又肯主動學習的學員,除了讓我印象深刻外,我更是願意就我所能,引導與分享對於軟體設計領域上的觀念與學習技巧。

就在想說,年後我們團隊若有一些研討活動 (如讀書會、研討會)等,準備邀請該位學員來參與。沒想到,就在除夕春節前,這位學員還主動寄了一封新年賀卡給我們。除了新年賀節問候外,也說出了她對這次上 UML 課程的收獲與心得,真的很感心~

更特別的是,附檔的新年賀卡是她利用 PowerPoint 設計的。內容竟然是把兩天課程所介紹 UML 13張設計圖,它們之間的關聯、特質與應用時機等,給全串在同一張圖內;還畫了虎年到來、新年迎春饒富過年氣氛的插圖。
Sharon 的 UML 新年賀卡

哇!! 這麼別出心裁、這麼有創意的新年賀卡,又是如此的用心製作 (必然要耗費很多時間),我收到這樣的賀卡真的是相當開心,也相當感動。更是覺得,這麼棒的作品,要不分享出來給眾讀者們欣賞,那真是太可惜了。所以,我還特別寫了信徵求該位學員的同意後才特別公開。

對啦,她的名字叫 Sharon,這樣直接稱呼也比較方便勒。另外這裡同時也公開她的網誌應該沒有問題吧? 看看她寫的文章,文句優雅頗具知性,會讓人以為她是一位柔弱感性的少女呢;但是,再瀏覽她整理的網誌相簿,呼,Sharon 可還是一位熱愛潛水的陽光健康女孩呢。 🙂

 o http://blog.yam.com/sharontaiwan
 o http://sharonwang.myweb.hinet.net/

採購了 XMind Pro (2年三組授權) 心智圖軟件

幾年來心智圖規劃一直都是使用 Minjet 公司所開發的 Mindmanager。 但是軟體版本越提升、就越如同 Office 一樣肥。 我總覺得 心智圖 的規劃工具應該要簡單而輕巧,故不再使用 Mindmager(更重要一點,好貴),轉而尋求其它(最好是免費) 的心智圖工具。

爬網作了功課,發現到大部分網友極力推薦 XMind 這套係由對岸大陸所開發的心智圖工具。 下載回來安裝試用,哇,為了支援多平台(包括 Mac),竟然是用 Java 寫的啦。 更沒想到的是,UI 使用者介面還能設計得質感如此之好,真的不禁佩服大陸對岸軟件開發人員實作的功力。

XMind 有分兩種版本,一種是免費的一般版本、另一則是付費的專業(Pro)版本。 兩種版本的比較,可參考國內代理商的比較說明

XMind 引起我感興趣的其中之一功能是可以匯入(import) 以前我所創建的心智圖 Mindmanager 格式檔案。 試著把我其中一個作品:【心智圖應用】從孔明的「隆中對」看 Backward Planning 給匯入進來瞧瞧。
【心智圖應用】從孔明的「隆中對」看 Backward Planning

效果還可以,最起碼匯入進來都沒有問題。

*** 2010/01/14 ***
由於避免造成代理商在售價上的困擾,故移除原來我所購買的價格。 關於售價,請直接洽詢原廠商。

最主要我是打算買來給團隊其他成員一同來使用的。 我最看重的就是 XMind Pro 版本具有 "Brainstorming" 的功能,可以讓團隊成員一同作 腦力激盪,協同把想法快速表達出來。 另外,還可以把作品上傳至 XMind Share 作線上分享和協同工作,這樣也能達成集中控管的便利性。

閱讀全文 »

{家居生活/心智圖食譜} 蓁妮與采潔的「兒童西點烘焙」快樂研習

{心智圖食譜} 咖啡小餅
(點擊圖片鏈接可看原圖){心智圖食譜} 咖啡小餅

上個月,媽媽本來要到救國團報名兒童的跆拳道課程,不過後來蓁妮一同過去後,發現到還有個「兒童西點烘焙」課程,她可是樂得很,堅持要上烹飪課程,當然,采潔是個小跟屁蟲,也要與姊姊一同上課。 🙂

三月初開始上課,均排在星期六早上 10:00~12:00。第一次的課程是烘焙「巧克力小西餅」,那天是媽媽帶她們去永和中正路的救國團上課的。回來後,蓁妮與采潔搶著要送她們親手製作的餅乾給我吃,哇!! 88| 餅乾酥、脆,好甜,一點都不亞於外面一般咖啡廳的下午茶餅乾(甚至還更好吃)!
巧克力小西餅@永和救國團兒童烘焙班

閱讀全文 »

小朋友的目標設定範例—「暑假的生活計畫」

我家蓁妮今年暑假過後就要升小五囉,好快呢。

蓁妮一直要求我們給她上暑期輔導班。說真的,我們本來是不太希望她去上的,希望她能利用暑假的兩個月好好地玩,但蓁妮很堅持,就是想要去上一個月的暑期輔導,希望能與她的好同學們相聚,也同時利用這一個月,把暑假功課給全部寫完。

七月初時,蓁妮興高采烈的拿了她的作文簿給我看,因為她第一篇作文就得了全班最高分,題目是:「暑假的生活計畫」。

我非常非常地訝異,作文的內容就是說及蓁妮是如何擬定計畫,並依照計畫擬出策略來執行。我完全沒有教導過蓁妮如何做目標的設定與執行,沒想到蓁妮小小的年紀就能懂得目標設定的根本道理,我個人可是研讀了 10 來本目標設定與成功學的書籍後,才逐漸了解倒推式的規劃(Backward Planning)與正向執行的原理。蓁妮的這一篇作文,根本就是小朋友「目標設定」的絕佳範例!

我期待已久的暑假到了,我和朋友們都興高采烈的回家休息去,但是,光整天無所事事的在家裡玩,就太浪費這段寶貴的時間了! 所以,我決定要好好安排一個理想的暑假生活。

首先,我要讀完三到五本的「偉人傳記」,因為我可以充實自己的知識,還可以認識更多的偉人。接著,我要在每個星期天爬一次山,因為我的氣管不好,醫生說要多運動,增加身體的抵抗力,一方面也可以促進我和家人之間的感情。最後,我決定要在七月以前完成功課,因為我在八月內就會很輕鬆啦!

計畫好了之後就該想如何執行這些計畫。我將在每天剩餘的時間讀書,一天看一點,久而久之我一定可以看完五本好書。幸好,我家附近就有一座山—烘爐地,所以我不用煩惱距離的問題,而且我的目標是從一半的地方爬到頂端唷! 至於功課嘛… 沒問題! 因為我有上暑期輔導呀,我相信我一定可以在八月前趕完的。

我想,等我完成了這些計畫,我一定會變得更聰明,身體會變得更健康,我也可以在八月做我自己想做的事,多虧了我有先計畫今年的「暑假生活」。

蓁妮的班導師給予這篇作文全班最高分。 😀
她給的評語是:
本篇文章井然有序的敘述著計畫及執行過程,讓人一目了然。得知妳的暑期生活,真是一篇好文章!

※ 延伸閱讀:
【心智圖應用】從孔明的「隆中對」看 Backward Planning
李恕權的 “Backward Planning”

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal