寫Code從讀Code開始

2021-09-24 04:55:42 字數 1215 閱讀 2752

如何讀懂別人的程式碼

1.接觸他人的程式碼,大致上可以分為三種程度:一、了解,二、修改、擴充,三、抽取、提煉,從中獲得我們需要的資訊,或者是擴充功能及維護,又或是得到原作者的程式功力,轉化並加以精煉以求增強自己的程式功力。

2.熟悉溝通語言與慣例用語

解程式碼寫成的程式語言。想要讀 懂法文寫成的小說,總不能連法文都不懂,確認程式碼所用的命名慣例(naming convention)。了解命名慣例很重要,不同的程式人或開發團隊,差異可能很大。

3.摸清全貌而非細節由上至下由廣至

深在閱讀程式碼時,卻應該先採由上至下(top-down)的方式。對程式碼的閱讀來說,由上至下意謂著,你得先了解整個系統架構。

系統的架構是整個系統的骨幹、支柱。它表現出系統最突出的特徵。知道系統架構究竟屬於那一種型別,通常大大有益於了解系統的個別組成之間的靜態及動態關係。

4.了解架構,必須要加上層次感

對事件驅動式的架構而言,有3個很 重要的角色。乙個是事件處理的分派器(event dispatcher)、乙個是事件產生者(event generator)、另乙個則是事件處理器(event handler)。

5.找出系統如何初始化

一、系統如何初始化,二、與這個系統相接的其他系統(或使用者)有那些,而相接的介面又是什麼;三、系統如何反應各種事件,四、系統如何處理各種異常及錯誤。

6.好的說明檔案難求,拼湊故事的

能力很重要

並不是每個軟體專案都伴隨著良好的系統檔案,而許多極具價值的開放原始碼專案,也時常不具備此類的檔案。

將系統的運作情境,比擬成系統會上演的故事情節。在閱讀細節性質的程式碼前,先知道系統究竟會發生那些故事,是必備的基本功課。

7.隨著實務經驗,歸納常見的架構

模式當你「涉世越深」之後,所接觸的架構越多,就越能觸類旁通。只需要瞧上幾眼,就能明白系統所用的架構,自然就能夠直接聯想到其中可能存在的角色,以及角色間的關係,這

就是經驗法則,所以也只有透過長期不斷的開發、參與專案及吸收新知才能增加本身的內功。

8.無法預判的函式,先試著預看

下一層當我們試著以樹狀的方式,逐一展開每個動作的子動作時,有時必須多看一層,才能真正了解子動作的意義。

9.根據需要了解的粒度,決定展開

的層數適度地忽略不需要了解的細節,是乙個很重要的態度,因為你不會一次就需要所有的細節,閱讀都是有目的的。每次的閱讀也許都在探索程式中不同的區域;而每次探索時,你都可以增補樹狀結構中的某個子結構。漸漸地,你就會對這個程式更加的了解。

從彙編code看C 的引用

今日在論壇上看到如下關於引用的code。我一直以為我對於引用很了解,直到膝蓋中了一箭。int val int ref int main 函式的彙編 如下 val函式返回變數i,直接把i放入eax。ref函式返回變數i的引用,把i的位址放入eax。區別和問題 int vv val int int 值傳...

Code58 從ArrayList找最大值和最小值

下面兩個靜態方法用來查詢 arraylist 中的最大值和最小值。這個方法使用 arraylist 作為輸入引數並從 arraylist 中返回最大值 最小值。這段 是有 c 編寫。讓我們看看這個方法。使用這個方法之前必須在 cs檔案的最上方,如下這樣新增 system.collections 命名...

程式設計code之資料從多到少從大到小排列

一道程式設計題,描述簡單,但沒弄出來 123 4567 891011 1213 1415 1617 1819 2021 2223 2425 2627 2829 3031 3233 3435 3637 3839 4041 4243 4445 4647 4849 5051 5253 5455 inclu...