翻譯自:8 Tips to Build Better Node.js Apps in 2018
在過(guò)去的兩年中惜论,我們探索了編寫(xiě)和運(yùn)用node.js的最佳實(shí)踐(請(qǐng)閱讀2016版 和 2017版)。又一年過(guò)去了止喷,是時(shí)候讓我們?cè)倩氐竭@個(gè)話題馆类,來(lái)看如何成為一個(gè)更好的開(kāi)發(fā)者。
在這篇文章中弹谁,我們收集了一些我們認(rèn)為在2018年Node.js開(kāi)發(fā)者應(yīng)該遵循的經(jīng)驗(yàn)乾巧。畢竟獲取一些和新年計(jì)劃相關(guān)的提升是很暢快的。
1预愤、使用 async - await
async - await 作為Node.js 8 重大特性出現(xiàn)沟于。它改變了我們處理異步事件的方式,并且簡(jiǎn)化了之前難以駕馭的編碼方式鳖粟。如果你還沒(méi)有使用async
-await
請(qǐng)閱讀我們的文章 introductory blog post社裆。
復(fù)習(xí)一遍我們之前講過(guò)的 async programming and Promises 也會(huì)是有幫助的。
2向图、了解 import和import()
ES modules 已經(jīng)通過(guò)編譯包@std/esm 被廣泛使用了泳秀。從Node.js 8.5開(kāi)始标沪,開(kāi)啟--experimental-modules
就可以支持這個(gè)功能了,不過(guò)要很久之后才會(huì)變成正式的功能嗜傅。
我們建議你從現(xiàn)在開(kāi)始學(xué)習(xí)這個(gè)功能并且在2018年持續(xù)關(guān)注它金句。 你可以在這里找到一個(gè)簡(jiǎn)單的Node.js ES modules 教程。
3吕嘀、熟悉HTTP/2
從Node.js 8.8開(kāi)始不用任何選項(xiàng)就可以使用HTTP/2了违寞。HTTP/2 的后端push和多路傳輸功能為瀏覽器高效的加載本地包鋪平了道路。很多框架例如Koa 和 Hapi 都部分的支持HTTP/2, 而Express 和Meteor 也都開(kāi)始著手支持偶房。
HTTP/2 在Node.js中仍然處于試驗(yàn)階段趁曼,但是我們預(yù)計(jì)在2018年會(huì)有更多的新包支持它。你可以在我們的文章HTTP/2 blog post中了解更多的關(guān)于HTTP/2的話題棕洋。
4挡闰、不再為代碼風(fēng)格爭(zhēng)論
Prettier在2017年產(chǎn)生了重大影響。它是一個(gè)嚴(yán)格的代碼格式化包掰盘,能夠在格式化代碼的同時(shí)消除掉簡(jiǎn)單的代碼風(fēng)格上的警告(warnings)摄悯。 但是,它沒(méi)辦法自動(dòng)改正代碼質(zhì)量上的錯(cuò)誤——如no-unused-vars和 no-implicit-globals愧捕。
實(shí)質(zhì)上奢驯,在接下來(lái)的項(xiàng)目中你應(yīng)該將Prettier和老牌的linter一起使用。這回非常有用次绘,尤其是你的團(tuán)隊(duì)中有讀寫(xiě)困難者的時(shí)候瘪阁。
5、構(gòu)建安全的Noje.js應(yīng)用
每年都會(huì)有重大的安全漏洞和新的缺陷断盛,2017年也不例外罗洗。安全是一個(gè)變化很快的話題,我們不能忽視它钢猛。怎樣構(gòu)建安全的Node.js伙菜,閱讀我們的文章Node.js Security Checklist。
如果你認(rèn)為你的程序已經(jīng)是安全的命迈,可以用Snyk 和 Node Security Platform 來(lái)找到軟件中隱藏的缺陷贩绕。
6、擁抱微服務(wù)
如果你在開(kāi)發(fā)中總是遇到問(wèn)題壶愤,或者即將開(kāi)發(fā)大型項(xiàng)目淑倾,可能是時(shí)候擁抱微服務(wù)架構(gòu)了。學(xué)習(xí)下面兩種技術(shù)在2018年的微服務(wù)場(chǎng)景中能夠齊頭并進(jìn)征椒。
Docker 是一個(gè)提供容器服務(wù)的軟件技術(shù)娇哆,它將一個(gè)軟件和其運(yùn)行所需要的所有環(huán)境都打包在一個(gè)完整的文件系統(tǒng)里,例如:代碼,運(yùn)行時(shí)碍讨,系統(tǒng)工具和系統(tǒng)包治力。
Kubernetes 是一個(gè)開(kāi)源的系統(tǒng),用來(lái)自動(dòng)部署勃黍,彈性伸縮宵统,管理容器應(yīng)用。
在深入研究容器和服務(wù)編排之前覆获,你可以先提升已有的代碼來(lái)熱身马澈。遵循方法12-factor app ,在你使用容器打包和發(fā)布你服務(wù)的時(shí)候會(huì)容易的多弄息。
7痊班、給服務(wù)添加監(jiān)控
要在你的用戶(hù)反饋bug之前修復(fù)問(wèn)題。監(jiān)控和報(bào)警是軟件開(kāi)發(fā)中非常重要一部分摹量,但是梳理一個(gè)復(fù)雜的微服務(wù)系統(tǒng)不是一件容易的事辩块。幸運(yùn)的是,在這方面伴隨著幾個(gè)工具的不斷改善發(fā)展非常迅速荆永。請(qǐng)看一下future of monitoring holds 或者學(xué)習(xí)一下現(xiàn)在的 OpenTracing 標(biāo)準(zhǔn)
如果你是個(gè)動(dòng)手能力較強(qiáng)的人,我們的 Prometheus 教程 會(huì)給你一個(gè)關(guān)于監(jiān)控的全面介紹国章。
8具钥、開(kāi)發(fā)或參與開(kāi)源項(xiàng)目
你有喜歡的Node.js開(kāi)源項(xiàng)目嗎?他們很可能需要你的幫助才能變得更好液兽。只要找到一個(gè)你感興趣的issue就可以開(kāi)始編碼了骂删。
如果你不知道怎么開(kāi)始,瀏覽一遍這幾個(gè)建議或者看一下這篇關(guān)于如何在GitHub上參與開(kāi)源項(xiàng)目課程四啰。做是最好的學(xué)習(xí)方法宁玫,尤其對(duì)于程序員來(lái)說(shuō)。
你有哪些Node.js開(kāi)發(fā)的建議柑晒?
在2018年欧瘪,你有什么好的建議推薦給你的Node.js開(kāi)發(fā)同事?請(qǐng)?jiān)谠u(píng)論區(qū)留言匙赞!
希望你擁有一個(gè)美好的2018佛掖。快樂(lè)編程涌庭!