View
1.111
Download
0
Category
Tags:
Preview:
DESCRIPTION
Citation preview
SameBut Different
2011年3月27日星期日
$speaker.meta
• 劉康民 Kang-min Liu id:gugod
• gugod.org• handlino.com 和多股份有限公司
2011年3月27日星期日
2011年3月27日星期日
芥納須彌禪宗公案
2011年3月27日星期日
唐朝時代有一個很愛看書的人叫李勃,,認識他的人都叫他「李萬卷」。
有一天去拜訪智尚和尚,他問智尚和尚:「我在佛書中曾經讀到『須彌山沒入芥子』這一句話。老實說,我有點搞不清楚,這麼一座大山如何裝進一顆小芥子中?請智尚師父開示。」
「你書讀的多,懂的事也很多,大家都叫你『李萬卷』,請問你那一萬本書是如何裝進你的腦袋裡?請你告訴我。」
李渤聽後,腦中轟然一聲,當下恍然大悟。2011年3月27日星期日
• 芥子的象中,有須彌的象
• 很大的東西能被放到很小的東西裡面
• 一小抹口腔黏膜,有能代表全身的 DNA
• Call by Reference
• 單一事實能代表無限多事實
2011年3月27日星期日
這是一匹馬 ⇔
這不是一頂草帽 + 這不定一朵花 + 這不是一張車票 + ... (窮舉)
2011年3月27日星期日
這是一匹馬 ⇔ 這不是{非一匹馬}
2011年3月27日星期日
狗兒的問題
2011年3月27日星期日
2011年3月27日星期日
2011年3月27日星期日
2011年3月27日星期日
1. 衝到柵欄邊
2. 「汪!」
3. 重覆上一步
2011年3月27日星期日
程式設計師的問題
2011年3月27日星期日
有一個專案團隊在正在開發如 Web Mail
的應用服務,專案負責人提出了「電子郵件轉傳真」的具體想法
2011年3月27日星期日
1. 「總之先改看看吧!」
2. (兩天後)「老闆我寫好了試看看吧!」
3. 老闆:「我寄過去的 .doc 檔案變成亂碼耶?」
4. 回到第一步
2011年3月27日星期日
問題的轉變
2011年3月27日星期日
1. 走到門邊
2. 走到肉旁邊
3. 吃
如何吃到肉?
2011年3月27日星期日
?2011年3月27日星期日
?? ?
2011年3月27日星期日
✓? ✓
2011年3月27日星期日
2011年3月27日星期日
1. 爆肝
2. 爆炸
2011年3月27日星期日
1. 爆肝
2. 爆炸
2011年3月27日星期日
好像沒下班
報價報太少
時程估不對
規格一直改
2011年3月27日星期日
程式設計師的修練
2011年3月27日星期日
• 如何達成想要的效果
• 使團隊合作更容易
• 使效率更佳
• 使安全性更強
如何寫出好程式
2011年3月27日星期日
• 慣例 (Convention)
• Coding Style
如何寫出好程式
2011年3月27日星期日
2011年3月27日星期日
Write clearly - don't be too clever.
2011年3月27日星期日
Make sure every module hides something.
2011年3月27日星期日
Make it right before you make it faster.
2011年3月27日星期日
Keep it right when you make it faster.
2011年3月27日星期日
Make it clear before you make it faster.
2011年3月27日星期日
Keep it simple to make it faster.
2011年3月27日星期日
Don't diddle code to make it faster - find a better algorithm.
2011年3月27日星期日
Use the "telephone test" for readability.
2011年3月27日星期日
OSS Team
2011年3月27日星期日
OSS Team
2011年3月27日星期日
OSS Team
2011年3月27日星期日
遊樂場
2011年3月27日星期日
遊樂場
2010 重大事件
2011年3月27日星期日
遊樂場
2010 重大事件
2011年3月27日星期日
day9.tv2011年3月27日星期日
遊樂場
2011年3月27日星期日
遊樂場
• TextMate + GitX + DTerm• Emacs• vim• linux + apache + mysql + php• Firebug + Console Log
2011年3月27日星期日
遊樂場
• OO + Polymorphism + Factory Pattern• String-based DSL + Fast Parser• Lazy Evaluation + Iterator + Callback• Event + Async• Functional(-ish) programming
2011年3月27日星期日
遊樂場
• Group-ware• IRC + Skype + Wiki• RT / Hiveminder / Redmine ...• Kanban• Pomodoro• GTD
2011年3月27日星期日
遊樂場
• 我很擅長 X, Y, Z 這三招,因此我都用採用這些方式來寫程式
• 個人招數
2011年3月27日星期日
妳用什麼物件系統?
2011年3月27日星期日
妳用什麼物件系統?
物件系統?perltoot 說用 bless 過的雜湊
2011年3月27日星期日
妳用什麼物件系統?
物件系統?perltoot 說用 bless 過的雜湊
2011年3月27日星期日
2011年3月27日星期日
勿使時程誤
日日勤食蟲
待辨如坑儒
專案似無涯
2011年3月27日星期日
脫離情境的思考
2011年3月27日星期日
2011年3月27日星期日
2011年3月27日星期日
?2011年3月27日星期日
?
?
?
?
?
?
?
2011年3月27日星期日
???
??✓?
?✓??????
???????✓??✓✓✓????
2011年3月27日星期日
簡化問題
2011年3月27日星期日
大事化小
2011年3月27日星期日
大事化尛
2011年3月27日星期日
大事化尛
• ? → ???
• 一個大問題應被重新定義成多個小問題,分開解決。
• 最後合併所有答案,得出解答
2011年3月27日星期日
大事化尛
•Divide & Conquer
2011年3月27日星期日
大事化尛
• Email 轉傳真
1. 如果 Email 附件是 {pdf, doc, txt,
xls, ... } 格式時,將其傳真出去
2. 如果 Email 沒有附件時,將本文傳真出去
2011年3月27日星期日
大事化尛
• Email 轉傳真
1. 先檢查 Email 附檔是否為 pdf
2. 將 pdf 轉成傳真機所能接受的格式
3. 輸出至傳真機
2011年3月27日星期日
大事化尛
• Email 轉傳真
1. 先檢查 Email 附檔是否為 X
2. 將 X 轉成傳真機所能接受的格式
3. 輸出至傳真機
2011年3月27日星期日
小事化無
• 小問題應能對應到已知的解題法,甚至答案
2011年3月27日星期日
• 描述問題時,一併寫下一些否定的敘述,能讓事實敘述更為準確
• Email 轉傳真
• Email 中不可以包含附件
• Email 中不可以包含 .doc 檔
2011年3月27日星期日
• 專案:線上留言版
• 使用者可以留言
• 留言內容最多可以 140 字
2011年3月27日星期日
• 專案:線上留言版
• 使用者可以留言
• 留言內容最多可以 140 字
• 留言中不可以包含超連結
• 留言中不可以包含圖片
2011年3月27日星期日
簡化解題過程
2011年3月27日星期日
• 要解決已知有解法的小問題,就是套用那些解法,也許加上適當的變形
• 合併答案
• 專案執行
2011年3月27日星期日
敏捷方法Agile Methodology
2011年3月27日星期日
• 專案執行一定需要充分溝通
• Agile: 邊做邊溝通
• 每天必有短會議確認進度
• 每周 / 月有長會議修正大方向
• 執行中討論規格
2011年3月27日星期日
對於個人而言:
• 「遊樂場」是否切合經常需要解決的問題領域
• 面對問題時,能不能對應到較容易解決的工具
2011年3月27日星期日
• Test-Driven Developing
• Cucumber BBD Testing tool
• Selenium Integration tool
• RSpec / TAP / qunit General testing tools.
2011年3月27日星期日
簡化答案奧義
2011年3月27日星期日
• PM / 發包者應定義好答案
• 至少確定答案的領域範圍
• 答案(專案成果),往往是固定的一類東西
2011年3月27日星期日
• 例:x+y=5, xy=6 求 x,y 整數解
• 例:設計 method 時,傳回值的型別(內建、自定、self)
2011年3月27日星期日
完成工作事項後,應達成的效果
2011年3月27日星期日
Acceptance Testing
2011年3月27日星期日
• 例:使用者點了「送出」鈕後,網頁中間應開出一朵花,表示表單正在送出中
• 例:使用者問「42?」時,機器人應回應「生命、宇宙以及任何事情的終極答案」
• 例:使用者在文字輸入中按下 Enter 鍵時,應立刻自動送出表單,不必另外點送出鈕
2011年3月27日星期日
以輸入法為例:
問題描述:使用者無法輸入『尛』這個字
應有效果:使用者在組字時按下「SSS」,應有『尛』出現在選字窗中。
2011年3月27日星期日
• 協同開發工具
• Wiki
• Story board
• Scrum
• Burn-down Chart
2011年3月27日星期日
程式設計師的頓悟
2011年3月27日星期日
報酬何處來
工程無實務
時程亦未艾
規格本無樹
2011年3月27日星期日
Recommended