iT邦幫忙

DAY 22
3

軟體路上不孤單,給我SSD,學習之路狂飆系列 第 22

軟體路上不孤單Day22-寫程式就像寫文章-1

我很喜歡拿寫文章來跟寫程式互相比擬,因為真的還滿類似的!
一本書除了序之外,章節、大綱、目錄就是最重要的部分了。
如果名字取的不好,那就很容易被人所搞混~
我很喜歡拿寫文章來跟寫程式互相比擬,因為真的還滿類似的!

寫一個小程式就像寫一篇短文一樣,可能有副標題,也可能沒有!寫程式也是如此,可能有幾個 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,我就可以做什麼。

那類別呢?當然就是名詞啦。可是,這個我有點想不出來例子。應該是說,類別是用來產生物件的合約,那物件是個東西,東西就該有名字,而名字當然是名詞囉!(如果有說錯還請前輩們指點一下^_^)

看完了書目,接著就是大綱囉~我們明天繼續~

(待續…)

文章導覽
全系列連結
上一篇
下一篇


上一篇
軟體路上不孤單Day21-UML介紹6-循序圖介紹
下一篇
軟體路上不孤單Day23-寫程式就像寫文章-副標題
系列文
軟體路上不孤單,給我SSD,學習之路狂飆31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ted99tw
iT邦高手 1 級 ‧ 2012-10-16 00:04:10

void copyChar(char src[], char dest[]){
for (int index=0; index<a.length; index++){
dest[index] = src[index];
}
}

沙發

“index<a.length” ??疑惑

pajace2001 iT邦研究生 1 級 ‧ 2012-10-16 11:25:51 檢舉

index<a.length 怎麼了嗎?

其實這個例子如果要再加強會更好,比如說判斷 src 及 dest 的長度能不能做複製!
或者說用 memcpy 效能應該會更好!!一時間想不到其他的例子~所以就用這個了XD

(蕭敬騰的歌)原諒我~是我不夠...唱歌

我要留言

立即登入留言