我很喜歡拿寫文章來跟寫程式互相比擬,因為真的還滿類似的!
一本書除了序之外,章節、大綱、目錄就是最重要的部分了。
如果名字取的不好,那就很容易被人所搞混~
我很喜歡拿寫文章來跟寫程式互相比擬,因為真的還滿類似的!
寫一個小程式就像寫一篇短文一樣,可能有副標題,也可能沒有!寫程式也是如此,可能有幾個 method 可以呼叫,也可能沒有!那如果是寫書呢?
一般我們拿到一本書,它定一會有書名、各章節標題、每個章節裡可能還會有副標題、子標題等等,最後才是內文。而我們就可以透過書名、章節標題…等等,一層又一層的去瞭解這本書是在說什麼。
寫程式當然也是這樣。
小程式可以比擬做短文,大一點的呢?可以比擬做文章。那如果在更大呢?那就可以比擬做一本書,直到礦世巨作等等,就像一個很大的系統。
我們先來說說變數的命名好了!如果變數的模稜兩可,或者念不出來會怎樣呢?
那就像文章裡的文字模稜兩可、或念不出來,有沒有覺得這樣的文章要怎麼看阿!
舉例來說(跟變數意義不一樣的命名):
int t3 = 0;
t3 = t2 – t1;
上面那行程式碼知道我在幹嘛嗎?如果改成這樣:
int elapsedTime = 0;
elapsedTime = endTime – startTime;
有沒有突然清醒了!!其實我就是要算總共花了多少時間阿!
再來看個例子(傳統的 ijk 和abc):
void copyChar(char a[], char b[]) {
for (int i=0; i<a.length; i++) {
b[i] = a[i];
}
}
這個例子是最常見的,因為我們真的很愛 i, j, k (IT人的習慣吧!)
這個例子我們可以從 method 的名稱很容易看出是要把 a陣列複製到b陣列去,可是如果我換成這樣呢?
void copyChar(char src[], char dest[]){
for (int index=0; index<a.length; index++){
dest[index] = src[index];
}
}
有沒有覺得更清楚了!我們甚至不用去看 method 的名稱就可以知道是要把來源陣列複製到目的地陣列去。
再來就是method的命名:通常一個method是要讓我們去呼叫的,所以應該是用「動詞+名詞」來命名,因為這樣會讓我們更清楚,如果我呼叫這個method,我就可以做什麼。
那類別呢?當然就是名詞啦。可是,這個我有點想不出來例子。應該是說,類別是用來產生物件的合約,那物件是個東西,東西就該有名字,而名字當然是名詞囉!(如果有說錯還請前輩們指點一下^_^)
看完了書目,接著就是大綱囉~我們明天繼續~
(待續…)
void copyChar(char src[], char dest[]){
for (int index=0; index<a.length; index++){
dest[index] = src[index];
}
}
“index<a.length” ??
index<a.length 怎麼了嗎?
其實這個例子如果要再加強會更好,比如說判斷 src 及 dest 的長度能不能做複製!
或者說用 memcpy 效能應該會更好!!一時間想不到其他的例子~所以就用這個了
(蕭敬騰的歌)原諒我~是我不夠...