閱讀程式碼也是一種技能 - Trisha Gee
不只是鼓勵程式設計師編寫可讀程式碼,還要承認程式設計師閱讀程式碼也是另外一種技能。
1. 假設有人寫了不可讀的程式碼
沒有人故意編寫不可讀的程式碼。如果你有一個只有你貢獻程式碼的專案,你可以親眼看到這一點——每次你在幾個月、幾周甚至幾天缺席後再次檢查時,你都會想知道你當時在寫這段程式碼時到底在想什麼,因為現在你知道多少做同樣的事情的更好的辦法,或者你有一個名字這是該方法更清晰。
2.這是一個責備的敘述,它沒有解決任何問題
“不可讀的程式碼是程式碼作者的錯,你應該編寫可讀的程式碼”的敘述側重於指責而不是看如何處理問題。
是的,我們應該編寫可讀的程式碼來考慮讀者(他們可能是未來的我們)。我們也應該善待和關心程式碼的作者,學會接受程式碼的本來面目。真正的專業人士會學習他們程式碼庫的方言。真正的專業人士會同情程式碼的貢獻者。這將幫助他們更好地理解為什麼事情會變成現在這樣,只有這樣他們才能找出前進的最佳方式。
3.可讀程式碼是主觀的
我對可讀性的想法,就像程式碼庫的不可讀性一樣,是我經驗的積累。當切換到新語言環境時,,我掌握常見模式或大局的能力要有限得多。當然有用的方法和變數名、簡短的方法、有意的設計等等應該使其更容易理解。但它並沒有神奇地克服我對特定語言、框架、模式或業務領域的不熟悉。
無論如何,讓讀者的工作儘可能簡單,但你不能僅僅因為你編寫了你認為乾淨易讀的程式碼就假設所有開發人員都能理解它。
閱讀程式碼是一種技能
閱讀程式碼是一種技能。閱讀程式碼是一種可以學習、可以提高的技能。時間、經驗、實踐,使用不同的語言、框架和庫;不同的程式碼庫;不同的程式設計風格;不同的模式,將提高你閱讀程式碼的能力。
我們一直在閱讀程式碼,無論是在我們的程式碼庫或 StackOverflow,還是部落格或書籍或其他任何東西中,這是一個很好的開始——我們將透過做我們的工作來更好地閱讀程式碼。但這還不夠。Kathy Sierra 談“刻意練習”. 透過刻意練習,我們會比透過簡單的接觸要好得多。
閱讀程式碼是一項可以透過實踐提高的技能。下次我們看到我們不理解的程式碼時,我們不應該因為“不會編寫可讀程式碼”而毆打作者。我們不應該因為不理解而自責,因為我們都有自己獨特的經歷。相反,我們可以將其視為練習閱讀此特定程式碼並提升我們的“閱讀程式碼”技能的機會。
總之
- 閱讀程式碼是一種技能。
- 鼓勵開發人員“編寫可讀程式碼”並不能消除開發人員提升“閱讀程式碼”技能的需要。
- 而當然,你應該寫可讀的程式碼。
相關文章
- 五個程式碼審查反模式 - Trisha Gee模式
- 做一個程式碼閱讀器
- 閱讀程式碼就像閱讀猶太法典
- C++程式碼閱讀筆記(一)筆記
- 網盤也是一種儲存 搜尋也是一種計算
- 【原始碼閱讀】Glide原始碼閱讀之with方法(一)原始碼IDE
- 轉_如何閱讀程式碼
- leveldb 程式碼閱讀三
- dreambooth程式碼閱讀boot
- 個人閱讀 程式碼大全的閱讀與提問
- 【原始碼閱讀】AndPermission原始碼閱讀原始碼
- 命名&可閱讀的程式碼
- 如何閱讀大型程式碼庫?
- TaxoRec部署與程式碼閱讀
- 閱讀優秀程式碼是提高開發人員修為的一種捷徑
- 如何閱讀他人的程式程式碼[轉]
- Kingfisher原始碼閱讀(一)原始碼
- YYModel原始碼閱讀(一)原始碼
- 一段柯里化函式程式碼閱讀函式
- 程式碼大全 閱讀與提問
- 也談如何閱讀程式原始碼原始碼
- 程式碼大全2閱讀筆記筆記
- 如何閱讀一份原始碼?原始碼
- 逐行閱讀redux原始碼(一) createStoreRedux原始碼
- 如何閱讀JAVA 位元組碼(一)Java
- 閱讀《程式碼整潔之道》總結
- 用emacs 閱讀 c/c++ 程式碼MacC++
- FPGA學習中的程式碼閱讀FPGA
- mac下c++程式碼閱讀工具MacC++
- FFMpeg框架程式碼閱讀 - [3DTV]框架3D
- 《程式碼大全2》閱讀筆記01筆記
- 03夢斷程式碼閱讀筆記筆記
- 04夢斷程式碼閱讀筆記筆記
- 05夢斷程式碼閱讀筆記筆記
- 【原始碼閱讀】Glide原始碼閱讀之into方法(三)原始碼IDE
- 【詳解】ThreadPoolExecutor原始碼閱讀(一)thread原始碼
- 原始碼閱讀:Masonry(一)——從使用入手原始碼
- 原始碼閱讀:SDWebImage(一)——從使用入手原始碼Web