- 原文地址:Node.js Best Practices – How to become a better Node.js developer in 2018
- 原文作者:GERGELY NEMETH
- 譯文出自:掘金翻譯計劃
- 本文永久連結:github.com/xitu/gold-m…
- 譯者:Yong Li
- 校對者:guoyang moods445
Node.js 最佳實踐 —— 如何在 2018 年成為更好的 Node.js 開發者
在過去兩年中,每年寫一篇關於來年如何成為更好的 Node.js 開發者的建議已經成了我自己的傳統。今年也不例外!?
如果你對我之前的新年建議感興趣,你可以在 RisingStack 部落格上閱讀:
話不多說,一起來看 2018 年的建議!
採用 async-await
隨著 Node.js 8 的釋出,async
函式已經普遍可用了。有了 async
函式的存在,你可以替換掉回撥,寫出讀起來和同步程式碼一樣的非同步程式碼。
但什麼是 async
函式?讓我們回顧一下 Node.js Async 函式最佳實踐 一文:
async
函式可以讓你寫出讀起來像是同步程式碼的,但實際基於 Promise
的程式碼。一旦你使用了 async
關鍵字來定義函式,你就可以在函式體內使用 await
關鍵字。async
函式被呼叫時,它會返回一個 Promise
。當 async
函式體中返回一個值時,該 Promise
完成(fulfilled)。當 async
函式丟擲錯誤時,該 Promise
失敗(rejected)。
await
關鍵字可以用來等待一個 Promise
完成並且返回結果值。如果傳給 await
關鍵字的值不是一個 Promise
,它會將其轉換成一個已完成的 Promise
。
如果你想掌握 async
函式,我推薦你瀏覽這些資源:
讓你的應用優雅地中止
當你部署應用的新版本時,必須更換舊版本。你使用的,不管是 Heroku, Kubernetes, supervisor 還是任何其它的程式管理器,會首先給應用傳送一個 SIGTERM
訊號,來通知它即將被中止。一旦應用得到了該訊號,它應該停止接受新的請求,完成所有正在處理中的請求,並且清理它使用的資源。資源通常包含了資料庫連線和檔案鎖。
為了讓這一過程更簡單,我們在 GoDaddy 上釋出了名為 terminus 的開源模組,來幫助你的應用實現優雅中止。現在就來看看 ☺️
在公司內採用相同的風格指南
在一個有上百人開發團隊的公司中採用風格指南是很有挑戰性的 —— 讓每個人都認可同一套規則簡直難如登天。
恕我直言:你永遠無法讓上百個開發者認可同一組準則,即使這能帶來顯而易見的收益,譬如讓團隊更快地在專案間切換,而無需費時費力來習慣一套新的(即使只有一點兒不同)程式碼編寫風格。
如果你正是工作在這種團隊氛圍中,我發現最好的辦法是信任某位經驗豐富的程式設計師,和其他人共同努力來決定風格指南包含哪些準則,但他要有最終決定權。在所有人都能遵循同一套準則之前,該準則的具體內容並不重要(我不想引發關於分號的爭吵)。重要的是必須在某一刻有所決定。
把安全當做必備條件
我們看到越來越多的公司被列在 haveibeenpwned 上 —— 我打賭你不想成為下一個。當你向你的使用者釋出一段新程式碼的時候,程式碼稽核應該包含安全領域的專家。如果你公司內沒有這樣的人才,或者他們非常非常忙,一個很好的解決辦法是和類似 Lift Security 這樣的公司合作。
而你作為一名開發者,同樣應該努力更新你的安全知識。為此,我推薦你閱讀這些材料:
在見面會或會議上演講
另一個成為更好的開發者,甚至更好地學會表達自己的方法,就是在見面會或者會議上演講。如果你從未試過,我推薦先從一個本地的見面會開始,再去嘗試申請全國的或者國際的會議。
我明白當眾演講會很難。當我準備我的第一次演說時,Speaking.io 幫了我不少忙,我也推薦你去看看。如果你正在準備你的第一次演說,並且想要一些反饋的話,你可以在 Twitter 上找我談談,我很樂意幫忙!
一旦你有了一個想要在會議上分享的主題,你可以在 Github 上檢視到 2018 Web 會議 徵文集合,這太棒了!
直接使用新的瀏覽器 API 編寫模組
九月時 Mikeal 在 Modern Modules 上釋出了一篇很好的文章。其中我最喜歡的一件事,就是使用瀏覽器 API 來編寫模組,當必要時填補(polyfill)Node.js。由此而來的顯著優勢就是你可以將更小的 JavaScript 程式碼釋出進瀏覽器中(並且讓頁面載入得更快)。另一方面,沒人會在意你的後端依賴是不是太過繁重。
採納應用開發的 12-Factors 法則
應用開發的 12-Factors 原則,描述了網路應用應當如何編寫的最佳實踐,因此它也出現在今年我的建議列表中了。
隨著 Kubernetes 和其它編排引擎的使用率不斷提升,遵循 12-Factors 法則變得越來越重要。它們涵蓋了以下領域:
- 一份基準程式碼,多份部署
- 顯示宣告和分離依賴關係
- 在環境中儲存配置
- 把後端服務當做附加資源
- 嚴格分離構建和執行
- 以一個或多個無狀態程式執行應用
- 通過埠繫結提供服務
- 通過程式模型進行擴充套件
- 快速啟動和優雅中止可最大化健壯性
- 儘可能地保持開發、預釋出、線上環境相同
- 把日誌當做事件流
- 後臺管理任務當做一次性程式執行
學習新的 ECMASCript 特性
一些新的 ECMAScript 特性可以顯著提升你的效率。它們可以幫你寫出不言自明的清晰程式碼。其中我最愛的特性有(老實說它們不是非常新了):
如果你想知道新的 ECMAScript 特性的完整內容,我推薦閱讀這本書 ES6 & Beyond。
你想在這份列表中加入別的建議嗎?請在留言中告訴我。
掘金翻譯計劃 是一個翻譯優質網際網路技術文章的社群,文章來源為 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智慧等領域,想要檢視更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。