- 編程原則:來自代碼大師Max Kanat-Alexander的建議
- (美)馬克斯·卡納特-亞歷山大
- 952字
- 2021-07-09 20:27:43
第8章 復(fù)雜是牢籠
有時(shí)候我認(rèn)為人們會(huì)擔(dān)心他們的代碼過于簡單了,因?yàn)檫@樣會(huì)導(dǎo)致:
a.他們沒法通過某種方式向他們的經(jīng)理展示出他們有多么地聰明,或多么地有價(jià)值。
b.項(xiàng)目會(huì)看上去變得簡單許多,似乎任何人都可以替換他們并偷走他們的工作!
這聽上去就好像恰恰是因?yàn)樗麄冋_地完成了工作,才失去了工作。從這個(gè)角度看來上面的觀點(diǎn)顯然是荒謬的。但是如果你曾經(jīng)有過這些顧慮,還有些事你同時(shí)需要考慮:
如果因?yàn)槟愕拇a太復(fù)雜了,導(dǎo)致你無法辭去當(dāng)前的工作怎么辦?
如果你編寫的代碼如此復(fù)雜以至于沒有人能理解它怎么辦?好吧,結(jié)果就是你個(gè)人會(huì)被永遠(yuǎn)地束縛在這個(gè)項(xiàng)目上面。如果你有換到公司內(nèi)部其他項(xiàng)目上工作的打算,首先你的經(jīng)理們就會(huì)表示反對:“但是之后誰能來維護(hù)這份代碼呢?”即使在你成功離開之后,接替你工作在你代碼上的人還是會(huì)時(shí)常走進(jìn)你的辦公室然后問道:“你好,請問這部分代碼是如何工作的?”
你可以在把代碼交接給一些絕望著接替你的人之后義無反顧地離開公司,也許你良心上并不會(huì)對此過意不去。不管怎么說,我猜當(dāng)絕大多數(shù)人斷定沒有其他人能成功接替他手頭的工作之后,自然會(huì)感受到一種被項(xiàng)目束縛的感覺。真實(shí)的情況差不多也是如此,即使你真的一走了之,還是會(huì)有人打電話給你:“呃,你好,你知道有一部分代碼……”你還會(huì)收到來自“新同事”的郵件:“你好,我聽說是你編寫的這段代碼,現(xiàn)在遇到一個(gè)問題……”如果你不能確保每個(gè)人都能讀懂你的代碼并且真正地接手他們,你就會(huì)和這份工作永遠(yuǎn)糾纏下去。
在Bugzilla項(xiàng)目中,我會(huì)盡我所能地把自己從工作中解脫出來。我熱愛Bugzilla這份工作,但是我不希望我生活中的每時(shí)每刻都和它綁定在一起。有時(shí)我想要度假。我甚至還打算寫歌呢!
我希望能夠做到即使我一個(gè)月的時(shí)間都不碰電腦,全世界也能照常運(yùn)轉(zhuǎn)。所以我致力于將Bugzilla編寫的足夠簡單并設(shè)計(jì)得足夠精巧,寄希望于有一天其他人能接手我工作的部分。我內(nèi)心希望到時(shí)候我就能在Bugzilla的其他方向找些活干,或者專心工作在我手頭上的其他一些編程項(xiàng)目上,又或者我要制作一張專輯!誰知道呢!
我知道我不想被自己的代碼束縛。
如果工作帶來的安全感對你來說如此重要,以至于為了獲得一份工作你愿意將自己永遠(yuǎn)和它束縛在一起,那么或許你應(yīng)該重新考慮生活的重心究竟在哪里!除此之外,當(dāng)你在為你的項(xiàng)目做決定時(shí),請牢記一件事:
復(fù)雜是牢籠,簡單是自由。
——Max
- MySQL數(shù)據(jù)庫應(yīng)用與管理 第2版
- Python測試開發(fā)入門與實(shí)踐
- 面向?qū)ο蟪绦蛟O(shè)計(jì)(Java版)
- iOS應(yīng)用逆向工程(第2版)
- The Complete Coding Interview Guide in Java
- 青少年信息學(xué)競賽
- Haskell Data Analysis Cookbook
- Visual Basic 6.0程序設(shè)計(jì)實(shí)驗(yàn)教程
- Visual Basic程序設(shè)計(jì)(第三版)
- Everyday Data Structures
- 深入實(shí)踐DDD:以DSL驅(qū)動(dòng)復(fù)雜軟件開發(fā)
- Visual Basic程序設(shè)計(jì)基礎(chǔ)
- MySQL數(shù)據(jù)庫教程(視頻指導(dǎo)版)
- 趣學(xué)數(shù)據(jù)結(jié)構(gòu)
- Python網(wǎng)絡(luò)爬蟲從入門到實(shí)踐