iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
Kotlin

讓 Kotlin 程式碼更道地 - 談 Effective Kotlin 與相關的 Design Pattern系列 第 10

D10: 好的程式碼應該跟文章一樣,談程式碼的可讀性

  • 分享至 

  • xImage
  •  
  • Any fool can write code that a computer can understand. Good programmers write code that humans can understand - Martin Fowler
    • 任何傻瓜都可以寫出電腦能夠理解的程式碼。好的開發者寫出人能夠理解的程式碼 by Martin Fowler

Kotlin 的程式碼不是簡潔

記的我大學一開始學的語言是 Perl, 那時是一個數學系的老師教的,利用 RegExp 與神奇的 $_ 變數。能夠寫出更簡潔的處理。Perl 以其 "There's more than one way to do it"(有不只一種方法可以做到)的哲學著稱。這意味著開發者有許多方法可以解決同一個問題。這既是其優點,也是缺點。每次都讚嘆老師怎麼想到這麼精妙的解法,但有時老師自已看上一堂的還要想一下自已是怎麼想出來的,這個在寫什麼,這個可讀性就很微妙。

Kotlin 的設計不是為了簡潔,而是為了高度可讀。與其他流行語言相比,Kotlin 確實簡潔,但這是因為 Kotlin 消除了很多模板和重複結構。這樣做是為了幫助開發者集中精力於重要事物,從而使 Kotlin 更易讀。

Kotlin 允許開發者設計乾淨和有意義的程式碼和 API。其特點讓我們可以隱藏或突出任何我們想要的東西

程式碼是寫給人看的

記得一個前輩曾經說過,程式碼應該跟文章一樣有起承轉合。有很多大師也有講過相關的名言

  • Code is read much more often than it is written. - Guido van Rossum
    • 程式碼被閱讀的次數遠多於被寫的次數 - Python 之父 Guido van Rossum
  • Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. ...[Therefore,] making it easy to read makes it easier to write. - Robert C. Martin
    • 事實上,讀和寫程式碼所花費的時間比率遠超過 10:1。我們不斷地閱讀舊程式碼以寫新程式碼。...[因此,]使其易於閱讀也使其更易於寫 - Uncle Bob (不是 Uncle Roger)

這些名言都強調了一個核心觀念:當你寫程式時,不僅是為了機器,更重要的是為了其他開發者(包括未來的你自己)。確保程式碼的可讀性是至關重要的,因為它會影響到後續的維護和擴展工作。

https://ithelp.ithome.com.tw/upload/images/20230924/20135701rORIB34SgQ.jpg

可讀性的反例

Kotlin 的 extension function 是好用的東西。但意義不明的 extension function 就會影響閱讀。

fun String.foo() = this.length > 5
fun Int.bar() = this * 2
//...

val result = "Kotlin".foo() + 3.bar()

每一推 (G)I-DLE

Yes


上一篇
D09: 當回傳值可能有副作用時,回傳 null 或封裝後的 Result Type
下一篇
D11: 程式可讀性 : 減少認知負荷 - DevX
系列文
讓 Kotlin 程式碼更道地 - 談 Effective Kotlin 與相關的 Design Pattern30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言