iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
2
自我挑戰組

為這美好世界獻上clean code!!系列 第 1

clean code?

前言

原先是想要把這個章節砍掉直接進重點,並想辦法在30天內全部講完。
但思考多次後覺得與其講的不清不白,不如抱持著可能超過30天但講的仔細比較好XDD
好啦!講完為甚麼會多這章節後我們就開始吧!!!

本系列文章使用說明書

很感謝你這是選擇了我,請在使用之前認真閱讀本說明書

我認為clean code是一個剛開始學語言的初學者也可以一起學習的東西。
因此我會進可能的避免使用專有名詞。
如果真的必須用到的話,會在下方說明,假如時間或篇幅不夠的話會直接放上說明資料。
最後,這些文章除了放在IT邦以外會另外放在我的部落格:(貼網址)
同時這些文章會放在github,讓大家一起做出一個主題為clean code的維基百科吧!!!

本系列文章的門檻

clean code本身並不是一個技術或lib,而是一個思維,所以理論上來說只要大概懂寫程式邏輯的話就可以讀了。
但是為了更好去描述概念我會使用java來寫範例,因此還是比較推薦會java的人閱讀喔。

甚麼是clean code?

相信點進來看的人不太想看到一大串的超認真的講解吧!
因此這邊直接進到我的經驗分享吧。

當我第一次知道clean code的時候我腦理出現的第一個想法是:
clean code乾淨又簡潔的程式碼?用簡短的程式碼就直接完成一個功能感覺好酷!
買了!!!
但是當我翻開書直接閱讀第二章後我發現我的想法太膚淺了。
這不是一本耍酷的書。而是讓剛熟悉java並開始自大走路的我,約束自己並大步奔跑的書。

這樣說可能有點太過於抽象了,讓我快速的舉幾個我在實際應用後感受到的優點吧!!!

優點

更好的code review

以前的我會將所有的code全部擠在一個function中,這導致我與別人在審視程式碼的時候會需要一口氣考慮所有的code,但依照clean code的作法後可以完全專注在精簡的副程式中,與最後串街起來的邏輯。
如此一來審視程式碼這件事情變得是去審視一個個不相互干涉區塊,所需要的腦容量快速下降,輕鬆超多的。

更好看的錯誤堆疊與debug

由於java在列出錯誤堆疊的時候會將發出錯誤的function名稱一起列出。
因此如果搭配好的function名稱設計會有機會直接從log知道整個流程中的哪個功能出問題。

更好的維護

由於所有的程式碼都有好的命名與利用方法將行為做隔離,因此當遇到功能修改的時候可以更加快速找到需要修改的地方在哪裡因此會比較好維護。

更好的邏輯拆解

這個優點應該對剛開始學程式的讀者會是最有效的。
透過clean code可以在寫程式之前先把要做的事情拆解開來處理。
這樣一來邏輯會更加明確,有效降低看不懂自己前面寫了甚麼的問題。

總結

當然clean code的優點不只有這些。
但剛剛提的三個應該是最快獲得的成果。
最後的最後我想引用參考資料中的一句話:

在javadoc裡的@author告訴我們是誰?我們是作者。有作者就有讀者,與讀者溝通就是作者的責任。

我們可以一起在心中抱持著這句話學習clean code吧。


下一篇
clean code - 命名(前篇)
系列文
為這美好世界獻上clean code!!5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言