為改變而優化
2018 M12 12 • ☕️ 1 min read
Originally written in: English • Русский (авторский перевод)
Translated by readers into: Bahasa Indonesia • Deutsch • Español • Français • Polski • Português do Brasil • Türkçe • Български • Українська • العربية • فارسی • 简体中文 • 繁體中文
Read the original • Improve this translation • View all translated posts
什麼造就了一個優秀的 API ?
好的 API 設計是容易記憶且不模糊的。他促進易讀、正確且高效能的程式碼,且幫助開發者掉進「the pit of success」。
我稱這些設計為「第一層級」,因為他們是一個函式庫開發者第一個傾向於專注的事。你也許必須對他們其中一些妥協且權衡利弊,但至少他們永遠在你的心中。
然而,除非你要送一個探測器到火星,你的程式碼將可能會隨著時間而改變。同樣地,你的 API 使用者的程式碼也是。
我所認識的最好的 API 設計師們不停止於「第一層級」,例如可讀性。他們盡可能花力氣致力於那些我們稱之為「第二層級」API 設計上面:使用這個 API 的程式碼將如何隨時間演化。
一個些微的需求改變可以讓最優雅簡潔的程式碼支離破碎。
優秀的 API 預期他會發生。他們預期你會想要移動一些程式碼、將一部分複製與貼上 、重新命名他、統整特殊案例進一個通用且可重複使用的 helper 、解構抽象回一些實際案例、加一個 hack 、優化一個瓶頸、拋棄一部分程式碼並重寫、犯了一個錯、在原因和效果之間徘徊、修正了一個 bug 、審查這個修正。
優秀的 API 不只讓你掉進 pit of success,他幫助你停留在那裡。
他們為改變而優化。