成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

五個Node.js開發(fā)的優(yōu)秀實踐

譯文
開發(fā) 前端
Node.js在全球開發(fā)者中非常流行,這種趨勢極大地改變了Web開發(fā)的面貌。可以說,Node.js在實時Web應(yīng)用開發(fā)中無所不能。使用這種技術(shù)并不難,懂得如何更好地構(gòu)建代碼結(jié)構(gòu),在開發(fā)過程中解決遇到的困難和錯誤,是你真正應(yīng)該去做的事情。

???

【51CTO.com快譯】在這篇文章中,我們列出了5個通用的優(yōu)秀實踐,需要你在開發(fā)過程中牢記于心并盡可能的去實踐它們。

在Node.js開發(fā)時,請遵循以下5個最佳實踐。

1.分層組織代碼

例如Express.js這個應(yīng)用廣泛的Node.js框架,它允許開發(fā)人員自定義回調(diào)函數(shù),當(dāng)收到客戶端請求時回調(diào)函數(shù)執(zhí)行。有了這種靈活性,開發(fā)人員就可以非常方便地在回調(diào)函數(shù)中分析各種業(yè)務(wù)邏輯。

但是,如果你以寫回調(diào)函數(shù)作為學(xué)習(xí)Express.js起點的話,在你真正了解回調(diào)函數(shù)等這些原理之前,你會發(fā)現(xiàn)隨著開發(fā)的進行需要寫回調(diào)函數(shù)的情況越來越多,需要寫的回調(diào)函數(shù)的數(shù)量急劇增加,這讓你的路由文件變成了一堆笨重且混亂不堪的代碼。最差的情況就是代碼可讀性差,難以維護和管理,難以編寫單元測試用例。

為了避免這種情況的出現(xiàn),我們最好要踐行“關(guān)注點分離”的編程原則。這意味著應(yīng)用開發(fā)中你要編寫不同的模塊來路由到你的不同的業(yè)務(wù)上。

對于后端程序開發(fā)來說,不同的客戶端請求就是通過不同的模塊或者層來處理的。

因此,我們可以把代碼分為三層來處理這些事情:


  • Controller(路由層):這是定義API路由的代碼模塊。在路由處理函數(shù)中,可以解析請求對象,獲取必要的請求參數(shù),然后交給服務(wù)層進行處理。
  • Serevice layer(服務(wù)層):由很多類和方法組成,并且這些類和方法只承擔(dān)單一職責(zé),同時保證可用性。定義服務(wù)層能有效地將業(yè)務(wù)邏輯處理和路由定義解耦。
  • Data access layer(數(shù)據(jù)訪問層):它主要負(fù)責(zé)數(shù)據(jù)庫的訪問,寫入和更新。所有的SQL語句,數(shù)據(jù)庫連接,模型,ORM等都應(yīng)該在這里定義。

這種三層的代碼設(shè)計為大多數(shù)基于Node.js的應(yīng)用開發(fā)提供了一個可靠的腳手架,讓我們的應(yīng)用程序更易于編碼、維護、調(diào)試和測試。

2.使用代碼壓縮

Gzip作為一種無損的文件壓縮格式,主要用于壓縮文件進行更快地網(wǎng)絡(luò)傳輸。它在壓縮基于Node.js開發(fā)的Web應(yīng)用代碼方面優(yōu)勢明顯。你知道Express.js可以很方便的進行Gzip格式的代碼壓縮嗎?沒錯,就是使用壓縮中間件。

另外,Express.js文檔建議使用如下代碼來提高應(yīng)用的性能。

上面的這些設(shè)置會壓縮后端服務(wù)返回的響應(yīng)體,并減少延遲,提高頁面的響應(yīng)速度。

在優(yōu)化服務(wù)端性能時,前端代碼的優(yōu)化同樣至關(guān)重要。前端代碼上線前你需要了解網(wǎng)頁的大小。上線前不要忘了使用諸如HTMLMinifier, CSSNano和UglifyJS這樣的工具來壓縮前端HTML, CSS, JavaScript代碼。

總之,使用Gzip壓縮和精簡前端代碼是Node.js開發(fā)的優(yōu)秀實踐之一。

3.學(xué)會運用第三方解決方案

毫無疑問,Node.js擁有一個遍布全球的大型開發(fā)社區(qū)。圍繞NPM或Node的包管理器已經(jīng)有了很多功能豐富、維護良好、文檔完善的框架、庫和用于各種用例的工具。因此,開發(fā)人員可以方便地在項目中使用這些現(xiàn)有的解決方案,并充分利用這些API。

強烈建議你去尋找一些現(xiàn)有的解決方案來處理遇到的問題,這會讓你的開發(fā)工作更容易。下面是一些流行的Node.js庫,可以有效的改善你的代碼質(zhì)量:


  • Gulp:一個自動化的任務(wù)構(gòu)建工具。
  • Agenda:一個輕量級任務(wù)調(diào)度庫。
  • Moment:一個解析,校驗,操作,顯示日期時間的工具庫。
  • Winston:一個日志記錄框架。
  • Nodemon:一個可以監(jiān)聽文件變更,自動重啟服務(wù)的工具。

上面的這些庫和工具可以讓開發(fā)者更輕松地應(yīng)對各種問題。不過,非常關(guān)鍵的的一點是你需要對項目中每一個導(dǎo)入的包有足夠的認(rèn)知并為此負(fù)責(zé)。此外,你還應(yīng)該知道導(dǎo)入的每個包的目的是什么,有什么優(yōu)勢,有哪些缺點和問題。最后,作為一個開發(fā)者,你要確保不會過度依賴這些第三方庫包。

4.充分利用程序監(jiān)控工具

APM工具負(fù)責(zé)通過發(fā)現(xiàn)瓶頸和修復(fù)錯誤來監(jiān)視應(yīng)用程序的性能和可用性。Node.js監(jiān)控工具可以通過分析每個Web結(jié)果來修復(fù)Bug,指出問題并跟蹤問題。

使用APM工具的主要目的之一是評估性能指標(biāo)、質(zhì)量問題、性能瓶頸、標(biāo)準(zhǔn)錯誤等,并利用得到的這些信息來進行所需的代碼修改和改進。

ScoutAPM就是一個APM工具,可以幫助開發(fā)者分析和優(yōu)化網(wǎng)頁應(yīng)用的性能。它還提供了實時監(jiān)控,能幫助開發(fā)者快速地定位問題,并在最終確定問題之前進行更改以解決問題。

此APM工具是唯一一個應(yīng)用程序性能監(jiān)視產(chǎn)品,它克服了諸如提高性能和穩(wěn)定性等問題。其中N+1數(shù)據(jù)庫查詢、數(shù)據(jù)庫慢查詢和性能異常是最常見的問題。

5.保持你的代碼整潔且易于復(fù)用

代碼檢查和格式化

你所需要做的就是不斷提高代碼質(zhì)量和代碼的可讀性。為了實現(xiàn)這些,需要壓縮代碼,這有助于減少延遲,提高網(wǎng)頁響應(yīng)速度。大多數(shù)代碼開發(fā)流程通常包含一個代碼檢查和代碼格式化的過程。

不過代碼檢查器只能處理代碼中不完美的地方,并且只有一種方法來修復(fù)它們。另一方面,代碼格式化程序的工作目標(biāo)是確定一組格式和樣式指導(dǎo)原則,這些指導(dǎo)原則必須在整個項目中保持一致。

ESLint,JSLint和HSHint是最常用的JavaScript代碼檢查工具,Prettier是最常用的代碼格式化工具。這些工具并不關(guān)注代碼的具體含義,只關(guān)心代碼的格式,規(guī)范性。幸運的是,大多數(shù)IDE或者代碼編輯器如Visual Studio code(VSCode),Atom等,都認(rèn)可編寫高質(zhì)量代碼的重要性,并提供了代碼檢測和格式化插件,并且這些插件都非常容易設(shè)置。

此外,一些IDE還提供了一些有用的特性,如智能代碼補全、Debug調(diào)試工具、代碼跳轉(zhuǎn)和代碼格式優(yōu)化等。這些工具還是有不少優(yōu)點的,因此強烈建議寫代碼時使用上這樣的IDE設(shè)置。

代碼風(fēng)格指南

你需要遵循的另一個優(yōu)秀實踐是參考谷歌和Airbnb等巨頭使用的JavaScript代碼風(fēng)格指南和標(biāo)準(zhǔn)。這些指導(dǎo)原則涵蓋了從文件、變量和類的命名約定到文件編碼的格式細(xì)節(jié)等等。更重要的是:它可以幫助你編寫高質(zhì)量的代碼,并且這些代碼風(fēng)格符合一些全球頂級開發(fā)人員使用的實踐和標(biāo)準(zhǔn)。

總結(jié)

我們試著描述出在開發(fā)過程中,你應(yīng)該考慮到的最重要的優(yōu)秀實踐,以避免工作進展沒多少就遇到很多困難和挑戰(zhàn)。請記住:雇傭一支專業(yè)的Node.js開發(fā)團隊永遠是一個好主意,這不僅會幫助你寫出整潔高質(zhì)量的代碼,還會在開發(fā)的方方面面幫助到你。

最后我們想對開發(fā)人員們說的是:是時候把你在今天學(xué)到的內(nèi)容應(yīng)用到你項目中去了。堅持去踐行這些優(yōu)秀實踐,你就一定會從中受益,開發(fā)出高可用、可伸縮的Node.js應(yīng)用程序。

譯者介紹

盧鑫旺,51CTO社區(qū)編輯,半路出家的九零后程序員。做過前端頁面,寫過業(yè)務(wù)接口,搞過爬蟲,研究過JS,有幸接觸Golang,參與微服務(wù)架構(gòu)轉(zhuǎn)型。目前主寫Java,負(fù)責(zé)公司可定制化低代碼平臺的數(shù)據(jù)引擎層設(shè)計開發(fā)工作。

原文標(biāo)題:5 Best Practices to Follow for Node.js Development,作者:Hiren Dhaduk

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2021-12-28 20:04:23

Node.js開發(fā)JavaScript

2023-08-09 09:08:02

Node.js開源

2020-05-29 15:33:28

Node.js框架JavaScript

2022-09-12 16:02:32

Docker安全Node.js

2022-12-14 14:40:27

Node.js開發(fā)應(yīng)用程序

2021-04-02 09:00:00

Node.js開發(fā)工具

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2016-08-11 14:02:02

NodeJS前端

2022-02-22 11:39:13

WebSocketsNode.js開發(fā)

2020-07-07 14:07:52

Node.js框架開發(fā)

2017-03-06 13:20:31

2022-10-10 14:53:00

云安全云計算云平臺

2021-06-25 14:50:21

DevSecOps安全 DevOps

2023-07-03 12:09:38

云日志云服務(wù)

2023-05-16 15:27:31

2024-01-04 16:21:37

數(shù)字孿生供應(yīng)鏈IT價值

2022-03-05 23:08:14

開源軟件開發(fā)技術(shù)

2024-07-05 13:59:26

2024-06-12 13:57:00

2012-03-01 15:55:42

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品免费观看 | 成人av免费在线观看 | 亚洲一区二区视频 | 啪一啪在线视频 | av日韩高清| 成人精品视频99在线观看免费 | 日日操视频 | 国产精品国产亚洲精品看不卡15 | 色综合一区二区三区 | 国产在线观看不卡一区二区三区 | 久草福利 | 国产精品美女久久久久久免费 | 欧美中文字幕在线观看 | 日韩成人av在线 | a级毛片国产 | 久久曰视频 | 国内精品久久精品 | 亚洲精品电影网在线观看 | 欧美日韩专区 | 国产成人精品久久二区二区 | 国产精品美女久久久 | 一级久久久久久 | 国产成人免费视频网站高清观看视频 | 欧美色a v | 97精品国产97久久久久久免费 | 中文字幕在线免费观看 | www.久| 久久久激情 | 午夜天堂精品久久久久 | 一区二区播放 | 日本一区二区三区在线观看 | 国产成视频在线观看 | 精精精精xxxx免费视频 | 日韩精品网站 | 青青草中文字幕 | 日韩视频一区 | 亚洲二区在线 | 福利视频大全 | 国产日韩欧美一区 | 久久国产欧美日韩精品 | 久国产精品 |