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