ETH官方钱包

創作內容

9 GP

維持程式碼的整齊-1

作者:藍貓│2013-10-12 00:44:59│巴幣:18│人氣:570
前言
不知道大家平常有沒有整理抽屜的習慣相信大家都應該有被亂糟糟的抽屜給惹惱的經驗,那就是,東西怎麼翻都翻不到,不然就是看了都眼花,不然就是東西擺太久了,灰塵滿處都是,蚊蟲細菌滋生,蟑螂螞蟻到處爬,我已經不想再次形容那種狀況了,因為戰況實在是非常慘烈。

我們的程式也是一樣,程式若是沒保持整潔,就會像亂七八糟的抽屜那樣,而且會在你注意不到的角落慢慢滋生壞東西,雖然我知道理組的學生大部份都不愛整理抽屜跟維持書桌整齊,但你最好維持你的程式整齊。

在這一章我們將內容著眼在程式開發跟維護的過程,我們應該以怎樣的態度去看待我們所細心呵護的程式。

原則
好的原則值得我們去探究,值得我們去遵循,那什麼是維持程式整潔好的原則呢

請永遠記得,在你完成每一次的程式功能新增,離開工作桌之前,你的程式必需比上一個階段的程式還來得更整齊,如果我們每次都維持這種工作原則,慢慢的會發現,我們的工作效率會跟著越來越快。

而我們以上所作的只為了達成一個目的,就是為了讓我的程式碼易讀性持續不斷的提升,就像是整理過的抽屜一樣,我們可以輕易的找到我們要的函數,輕易的讀懂我們的程式邏輯安排跟佈署,輕易的安排新進的函數跟類別,輕易的引進各種資料結構跟參數,這種種好處都建立在一個大前提:那就是程式碼的持續整齊化。

我們希望建立的是彼此分類明確,佈置整齊的抽屜或書桌,而不是亂七八糟的櫃子,因為翻箱倒櫃的過程,只會讓這個混亂持續惡化。

永遠記得,下一個讀你的程式碼的人可能不是別人,而是你自己,若是到最後連你自己都看不懂你自己寫的程式內容,那這樣的程式某種程度上已經宣告不治。

不要太相信自己
特別是不要相信自己第一時間就能寫出整齊的程式,就算是大師,第一時間飆出來的程式,肯定是凌亂的,我們著重的是即時改善程式的能力,通常我們寫程式實際花的時間只有佔不到10%,剩下大部份的時間都是在整理我們程式碼、做測試、讀懂上一次的程式碼,而我們通常花了大半天的時間在理解我們上一次的程式碼

你可能會說,要做測試、要整理架構,非常花時間,但這一切都是值得的,因為我們省下理解程式碼的功夫

當你預期程式碼將在你加上新功能之後讓你嗅聞到腐敗的臭味,你就必需開始停下腳步,檢察並整理你的程式,讓你的程式比上一個階段來得更加整齊,因為不這麼做,龐雜的功能邏輯或模組之間的複雜糾結會壓垮我們的程式。

而這同時也是一種惡性循環,在雜亂的程式架構中,我們為了新增功能,往往會把功能擺在不適切的地方,慢慢的,這些晦澀難懂的程式架構,就變成蟲蟲俱樂部(Bug Club),壞東西滋生的好去處。

醜陋的程架構跟程式內容會限制你的程式碼修改彈性,最終,我們將因為害怕失敗,而動彈不得,牽一髮而動全身,解不完的Bug會立刻拖垮專案團隊裡的每一位成員。

所以實際上我們寫程式,並不是一個單一工作,正確來說,寫程式的同時也必需不斷導入程式結構重組的過程,它是一個週期性的循環過程,而且越早重組代價越低,畢竟結構還沒開始散發惡臭的時後,整理起來也比較不費功夫

撰寫測試程式 > 整理測試程式 > 撰寫程式功能  > 通過測試 >  整理程式 >......

上述這樣的過程在我們開發程式的週期裡是不斷循環的小週期,記得一個大原則,每一次跑完小週期,程式的整齊性都要比上一個小週期要來得更好。
引用網址:http://www.jamesdambrosio.com/TrackBack.php?sn=2204366
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 5 篇留言

都可以
寫程式碼真的要整齊...不然最後很容易亂~就像東西一多找不到的感覺似的...

10-12 00:50

藍貓
是啊,程式設計師為自己的程式把關非常重要,不要說萬行,千行的程式就會嚇死人10-12 01:04
捲捲精
寫的不錯,雖然我不懂程式設計
不過整理出邏輯,可以套用在每個人的日常生活

10-12 05:34

藍貓
嗯,寫程式的態度就是從生活實例學習演化而得來的。10-12 22:10
チョコラネコ
除了整理以外
我都會在重要的地方(以前編譯時常常出錯的地方)
加些註解
這樣以後回來在看時
比較容易懂

10-12 08:18

藍貓
註解本身是好的,但註解不像程式碼可以隨著每次修改都更新演化,常期下來形成一種誤導跟干擾資訊,如果只是學校寫作業,那麼註解多一點無所謂,如果是實際在開發程式,為了維持程式的可讀性,註解通常只會對一些特定案例產生益處。10-12 22:05
藍貓
所以通常若不是用來警告粗心的程式設計師,或著不是待辦事項,通常是不建議加太多註解,尤其當程式碼一旦龐雜的時後,待修的註解有時會被忽略,最後它會變成錯誤資訊10-12 22:08
Lewis
恩恩……(想當初參考同學的作業……一個一個我都懂,湊在一起就不懂了)

10-12 12:33

藍貓
XD10-12 22:11
爪孟爪
這篇比較看的懂

10-12 22:10

藍貓
這篇講的其實是開發程式的一種態度,不過小型程式應該是用不太到啦,這是真正在跑大一點的專案才有切身感覺XD10-12 22:15
我要留言提醒:您尚未登入,請先登入再留言

9喜歡★ertyk122 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:高階程式語言理論-導論... 後一篇:命名的迷人魔力-2...

追蹤私訊切換新版閱覽

作品資料夾

小說連載 (0)
英雄聯盟小說(英雄聯盟系列) (19)
[外傳]昏黃歲月(英雄聯盟系列) (1)
阿宅與美女代打(英雄聯盟系列) (0)
[寫實小說]_糾心恥笑園 (0)
[寫實小說]_倒數末日 (0)
[寫實小說]_憂鬱天堂 (2)
[寫實小說]_網路殺人魔 (0)
[寫實小說]_錢魔 (0)
[神幻小說]_犬族的命運 (61)
[神幻小說]_捨不得你。妄想 (0)
國中生小說 (3)

漫畫連載 (0)
[搞笑四格]_場外舉人 (0)
[少年漫畫]_臺北大地震 (0)
[少年漫畫]_就是愛運動 (0)
[少年漫畫]_餵愛一口香 (0)
[寫實漫畫]_白狼 (0)
[寫實漫畫]_天刑三二三 (0)
[寫實漫畫]_橫血英雄 (0)
[寫實漫畫]_恐龍妹 (0)
[神幻漫畫]_剩水童子 (0)
[神幻漫畫]_永遠的父女 (0)
[神幻漫畫]_勇者我家人 (0)
[其它]_音魂 (1)

劇本創作 (0)
[寫實劇本]_白狼 (1)
[寫實劇本]_天刑三二三 (0)
[神幻劇本]_繪魔 (0)
[神幻劇本]_魔曲 (0)

電腦理論 (6)
程式設計相關理論 (14)
高階程式語言理論 (6)
實作程式 (15)
程序之相關問題 (0)
硬體管理與計算機結構 (3)

創作理論 (3)
文學理論 (3)
文學實作要領 (0)
繪畫理論 (1)

生活日記 (241)
自我提醒 (5)

文創作品 (2)
散文與詩 (25)
故事大綱 (1)
繪圖 (57)
processing文創應用 (0)
勇造創作 (3)

數學領域相關證明 (0)

英雄聯盟豪洨文 (3)

辯論大會 (0)

未分類 (22)

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情? 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】