我對這篇文章有很多想法,但我不知道從哪裡開始。如果您有興趣使程式碼更具可讀性並使用 Tree Shaking,您絕對應該查看這篇文章。
如果您曾經使用 JavaScript 進行開發,您可能遇到過這種類型的程式碼。
const someInstance = new Class(); someInstance.do('jump').some().thing('dance').and().read();
我喜歡這種風格,因為它很容易閱讀,你可以看到其中的聯繫。另外,您不必將資料從一個函數移動到另一個函數,因為它全部保存在實例中。
除了這僅在函數不非同步時才有效這一事實之外,還有另一個問題。如果您不使用內容,那麼對內容進行 Tree shake 並不容易。如果你在客戶端使用它,你必須移動整個函式庫以及所有連接的函數,這是一個巨大的開銷。
那麼,我們如何保持內容的可讀性,使用非同步函數並讓 Vite 和 co.樹搖所有未使用的程式碼?
答案就在標題中:「管道」。
從功能的角度來看,實作管道非常簡單。然而,這些類型確實帶來了挑戰。我已將所有內容整合到一個庫中並將其發佈到 npm 上。管道並組合。
const inc = (by: number) => (x: number) => x + by; const dec = (by: number) => (x: number) => x - by; const multiplyBy = (by: number) => (x: number) => x * by; const divideBy = (by: number) => (x: number) => x / by; const toStr = () => (x: number) => x.toString(); // prepare the pipeline const pipeline = pipe(inc(2), multiplyBy(7), dec(7), divideBy(3), toStr()) // Executing the pipeline pipeline(7)
一個優點是它不會綁定到任何對象,因此只要輸入和輸出與之前和之後的函數匹配即可使用任何函數。
我給的範例非常簡單,但至少您可以透過管道傳輸所有內容。您將擁有與連結和類別相同的選項。泛型函數可能有點棘手,但有一個解決方案。我將在另一篇文章中更詳細地介紹這一點。
以上是管管屎的詳細內容。更多資訊請關注PHP中文網其他相關文章!