小Printf的編程故事:第二章
《小Printf的編程故事》第二章:故事中的我終于和小Printf相遇了。他們之間,會發(fā)生些什么呢? - 上一章
第二章
就這樣,我開始滿世界地演講,教別人怎么去做一些有時候我自己都沒有做過的事情,不過大家似乎都相信了我是一名真正的程序員,而理由正是我做的那些與編程沒有太大關(guān)系的事。
有一天,我參加完一個會議準備回家,但卻被困在了機場。我憤怒地在終端上打字,突然聽見有一個奇怪、柔和的聲音問我:
“你能不能,為我設(shè)計一個系統(tǒng)?!”
“什么?!”
“為我設(shè)計一個系統(tǒng)!”
這樣的請求讓我吃驚,抬起頭想看看是誰提的。我看了看四周,發(fā)現(xiàn)有一個小孩站在不遠處。他說自己渴望成為一名開發(fā)者,還讓我叫他“Printf”。我覺得這個名字有點愚蠢、花哨。他的樣子大概是這樣的:
“我還不太懂計算機,但是你看上去是個行家。我想編寫程序,通過博客讓大家都知道,用上我寫的程序。求求你,為我設(shè)計一個系統(tǒng)!”
這真的是一個令人驚訝的請求,當時我已經(jīng)有20個小時沒有睡覺了,有點不確定自己聽清楚了他的話。我跟他說,開發(fā)系統(tǒng)很困難。我不清楚他希望系統(tǒng)實現(xiàn)哪些功能,如何處理異常,應(yīng)該支持多少個讀者,在哪里部署,所以在這種情況下,我沒辦法給他設(shè)計一個良好的系統(tǒng)。
“那個沒關(guān)系。只要給我設(shè)計一個系統(tǒng)就行。”
沒辦法,我給他畫了下面這個架構(gòu)圖:
他看了看圖,搖頭說道:“這個系統(tǒng)還不夠好。再設(shè)計一個吧”。我照做了:
并給他逐一介紹了背后的原理。
我這個新朋友禮貌地笑了笑。“這并不是我想要的,它太復(fù)雜了,很多功能都不是我需要的。”
我有點不高興,我可是考慮了冗余、監(jiān)控、備份、緩存、負載、外部支付、故障切換備份、快速部署等諸多因素。光是這份系統(tǒng)設(shè)計,我就能收一筆不小的咨詢費!終于沒了耐心,我就隨便給他畫了張圖:
然后補充道,“這就是你要的設(shè)計,你所要的系統(tǒng)就在那個黑盒子里”,希望這個亂七八糟的答案會讓他離我遠點。但是他的回答再次讓我感到驚訝:
“這就是我想要的設(shè)計!”
就這樣,我認識了小Printf。