ETH官方钱包

創作內容

5 GP

【閱讀】Clean Code [Chapter 3 函式]

作者:Snoweve│2024-07-03 19:41:57│巴幣:18│人氣:54
這一篇比我想像中的還難理解蠻多的,包括裡面還有時代變化所減少或增加的地方,所以只做一點簡單的重點整理。

但也只是簡單的重點整理,更深入的概念需要寫的程式量是很龐大的,要有足夠的內容才能完整整理一篇出來,我也不確定之後會不會再重新整理一次,總之先為這篇淺薄的內容到一聲歉。

甚麼是一個好的函式?
如何讓一個函式看起來混亂不堪: 一個不夠(明瞭目的)的命名、冗長無包裝的邏輯並且重複,過多不同層級的函式包裝於一籃。

『函式應該做一件事情。它們應該把這件事做好,而且它們應該只做這件事。』
事情是指什麼?
你給他命名的東西,像是 MouseLighting ,就只負責讓鼠標發亮,不會有其他額外的運作。

什麼叫做抽象概念?
這邊做一個舉例,參考書中所說的Ruby使用函式會用 TO,TO (函式名),這代表了你為了做這件事情,而做了哪些動作,這些動作就是抽象概念。
TO MouseLighting ,檢查鼠標是否存在,存在的話就對她進行渲染,渲染完後呈現出來。

什麼是降層準則?
為了讓鼠標發亮,所以要先看鼠標是否存在,再對她進行渲染,最後再把渲染好的鼠標呈現出來。
為了要檢查鼠標存不存在,所以要去做全畫面的檢查。
為了對鼠標進行渲染,要根據所設定好的數值,所以先去查詢目前的數值是甚麼,再進行渲染。
為了要查詢現在的數值是甚麼,所以檢查後回傳。
為了最後的呈現出來…..

為甚麼不要寫巢狀結構?
巢狀結構最直覺的一件事情就是程式很大坨,又長又寬的檢修不好檢,再來是可能間接導致的重複程式碼問題,並且多數時候都會違反上述所說到的抽象概念。
可推薦影片:

使用具描述能力的名稱
『當每個你看到的程式,執行結果都與自己想的差不多,會察覺自己政工作再Clean Code之上。』名稱長具可理解性,比起短並且還要查看來的更好,所以取一個好名字非常的重要。

函式的參數
最理想當然是沒有,盡量不超過2個,如果要使用超過一定要有特殊的原因。
比起毫無參數的函式來說,添加參數的函式會間接的強迫人去了解程式中的細節,並且參數和函式處於不同的抽象層次。

指令和查詢的分離
函式應該要能做某件事,或能回答某個問題,但兩者不該同時發生。你的函式應該修改某物件的狀態,或回傳某些與物件有關的資訊,如果想同時完成兩件事,會讓人感到困惑。
引用網址:http://www.jamesdambrosio.com/TrackBack.php?sn=5961524
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

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

前一篇:【遊戲心得】東方幻靈錄... 後一篇:【生活】樸實無華的一天...


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

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