【北京】 IT技術人員面對面試、跳槽、升職等問題,如何快速成長,得到大廠入門資格和升職加薪的籌碼?與大廠技術大牛面對面交流,解答你的疑惑。《從職場小白到技術總監成長之路:個人職場焦慮與救贖》活動連接: 碼客恭喜fpx,新王登基,lpl*b 咱們是冠軍程序員
強烈安利一本書《編寫可讀代碼的藝術》,一個程序猿寫好的代碼很重要。這篇文章是這本書的讀後總結,從此我也會根據本身實際開發中的領域添加、修改這篇文章。面試
單詞 | 更多選擇 |
---|---|
send | deliver、dispatch、announce、distribute、route |
find | search、extract、locate、recover |
make | create、set up、build、generate、compose、add、new |
函數 | 參數名更好的選擇 |
---|---|
start(int delay) | delay_secs |
createCache(int size) | size_mb |
throttleDownload(float limit) | limit_kbps |
rotate(float angle) | degrees_cw |
注意:並不該該給程序中的沒一個變量都加上一堆的屬性,僅在須要的地方加上,注意咱們的主旨:代碼應該易於理解。編程
注意:須要注意的是,命名的主旨:把信息塞入名字中。所作的一切都是爲了讓代碼更好的理解。性能優化
總結:1.使用專業的名字;2.避免空泛的名字;3.使用具體的名字進行描述;4.爲變量增長細節;5.做用域大的變量使用更詳細的名字函數
命名應該三思:這個名字會被別人解讀成其餘含義麼?oop
例如,購物車最大容量,cart_too_big_limit 建議改成 max_items_in_cart,一樣的命名還有 begin_index、end_index 之類佈局
總結:變量命名應儘可能準確無誤解。性能
風格的一致性。大括號放在命名後面仍是單獨換行都行,可是必定要保持一致。須要注意的是:一致的風格比「正確」的風格更重要。學習
註釋應該儘可能幫助讀者理解代碼的用意優化
不要寫不須要的註釋(不要給很差的命名添加註釋,能迅速推斷的事實也不須要註釋)
用代碼記錄思想:
爲代碼添加評論,記錄「坑點」和「陷阱」;
2.爲代碼中的瑕疵添加註釋(例如:「// TODO:處理 JPEG 之外的圖像格式」) 標記 | 一般的意義 -------- | --- TODO: | 我尚未處理的事情 FIXME: | 已知沒法運行的代碼 HACK: | 對一個問題不得不採用的比較粗糙的解決方案 XXX: | 危險!這裏有重要問題
爲常量添加註釋,代表取這個常量具體數值的意義
3.站在讀者的角度去思考他們須要知道些什麼。
爲讀者答疑解惑,解釋意料以外的行爲。
全局觀註釋和總結性註釋,給整個類、模塊、函數塊添加註釋解釋模塊運做,加強讀者理解,不至於迷失在細節中。
如下的寫註釋的技巧
// TODO
關鍵思想:把條件、循環和其餘對控制流的改變作的越「天然」越好,運用一種方式使讀者不用停下來重讀你的代碼。
有的時候應爲擔憂漏寫一個"="而寫出 if (obj = NULL) 的 bug,程序員會把順序調換一下爲 if (NULL = obj),這是沒有必要的,現代的編譯器對於這種問題基本都有警告。
上面三個規則並無優先級,有時可能會衝突,具體採用哪一種就要程序員本身判斷了
追求最小代碼行數,更好的度量方法是最小化人們理解它所需的時間。
關鍵思想:把超長的表達式拆分紅更容易理解的小塊。
關於變量有三個問題:
3變量改動的越頻繁越難追蹤它的當前值
做 爲程序員很煩看到一段程序定義了一堆大做用域的變量,而後處處賦值。 全部關於變量有以下規則:
有些編程規範喜歡將變量定義在函數和語句塊的頂端,這會強迫讀者立刻思考這些變量,但這些變量要好久後纔會用到,這是不對的。
一句話:一個函數一個類應該只幹一件事,不相干的問題應該抽取到獨立函數獨立類中。但要注意的是,凡事過猶不及,過分拆分可能致使程序中過多的小函數,這個度由程序員把握。
和上面同樣:應該把代碼組織得一次只作一件事。
這一章難以總結,建議直接看書領悟。
// TODO
嘿嘿,最好讀的代碼就是沒有代碼。
這本書寫的不錯,建議花個一兩天時間看一遍。 最近在讀《iOS 和 macOS 性能優化》這本書,有時間的話寫篇技術總結。
(想自學習編程的小夥伴請搜索圈T社區,更多行業相關資訊更有行業相關免費視頻教程。徹底免費哦!)