网易首页 > 网易号 > 正文 申请入驻

五个Node.js开发的优秀实践

0
分享至

作者:卢鑫旺来源:51CTO

【51CTO.com快译】在这篇文章中,我们列出了5个通用的优秀实践,需要你在开发过程中牢记于心并尽可能的去实践它们。

在Node.js开发时,请遵循以下5个最佳实践。

1.分层组织代码

例如Express.js这个应用广泛的Node.js框架,它允许开发人员自定义回调函数,当收到客户端请求时回调函数执行。有了这种灵活性,开发人员就可以非常方便地在回调函数中分析各种业务逻辑。

但是,如果你以写回调函数作为学习Express.js起点的话,在你真正了解回调函数等这些原理之前,你会发现随着开发的进行需要写回调函数的情况越来越多,需要写的回调函数的数量急剧增加,这让你的路由文件变成了一堆笨重且混乱不堪的代码。最差的情况就是代码可读性差,难以维护和管理,难以编写单元测试用例。

为了避免这种情况的出现,我们最好要践行“关注点分离”的编程原则。这意味着应用开发中你要编写不同的模块来路由到你的不同的业务上。

对于后端程序开发来说,不同的客户端请求就是通过不同的模块或者层来处理的。

因此,我们可以把代码分为三层来处理这些事情:

  • Controller(路由层):这是定义API路由的代码模块。在路由处理函数中,可以解析请求对象,获取必要的请求参数,然后交给服务层进行处理。
  • Serevice layer(服务层):由很多类和方法组成,并且这些类和方法只承担单一职责,同时保证可用性。定义服务层能有效地将业务逻辑处理和路由定义解耦。
  • Data access layer(数据访问层):它主要负责数据库的访问,写入和更新。所有的SQL语句,数据库连接,模型,ORM等都应该在这里定义。

这种三层的代码设计为大多数基于Node.js的应用开发提供了一个可靠的脚手架,让我们的应用程序更易于编码、维护、调试和测试。

2.使用代码压缩

Gzip作为一种无损的文件压缩格式,主要用于压缩文件进行更快地网络传输。它在压缩基于Node.js开发的Web应用代码方面优势明显。你知道Express.js可以很方便的进行Gzip格式的代码压缩吗?没错,就是使用压缩中间件。

另外,Express.js文档建议使用如下代码来提高应用的性能。

上面的这些设置会压缩后端服务返回的响应体,并减少延迟,提高页面的响应速度。

在优化服务端性能时,前端代码的优化同样至关重要。前端代码上线前你需要了解网页的大小。上线前不要忘了使用诸如HTMLMinifier, CSSNano和UglifyJS这样的工具来压缩前端HTML, CSS, JavaScript代码。

总之,使用Gzip压缩和精简前端代码是Node.js开发的优秀实践之一。

3.学会运用第三方解决方案

毫无疑问,Node.js拥有一个遍布全球的大型开发社区。围绕NPM或Node的包管理器已经有了很多功能丰富、维护良好、文档完善的框架、库和用于各种用例的工具。因此,开发人员可以方便地在项目中使用这些现有的解决方案,并充分利用这些API。

强烈建议你去寻找一些现有的解决方案来处理遇到的问题,这会让你的开发工作更容易。下面是一些流行的Node.js库,可以有效的改善你的代码质量:

  • Gulp:一个自动化的任务构建工具。
  • Agenda:一个轻量级任务调度库。
  • Moment:一个解析,校验,操作,显示日期时间的工具库。
  • Winston:一个日志记录框架。
  • Nodemon:一个可以监听文件变更,自动重启服务的工具。

上面的这些库和工具可以让开发者更轻松地应对各种问题。不过,非常关键的的一点是你需要对项目中每一个导入的包有足够的认知并为此负责。此外,你还应该知道导入的每个包的目的是什么,有什么优势,有哪些缺点和问题。最后,作为一个开发者,你要确保不会过度依赖这些第三方库包。

4.充分利用程序监控工具

APM工具负责通过发现瓶颈和修复错误来监视应用程序的性能和可用性。Node.js监控工具可以通过分析每个Web结果来修复Bug,指出问题并跟踪问题。

使用APM工具的主要目的之一是评估性能指标、质量问题、性能瓶颈、标准错误等,并利用得到的这些信息来进行所需的代码修改和改进。

ScoutAPM就是一个APM工具,可以帮助开发者分析和优化网页应用的性能。它还提供了实时监控,能帮助开发者快速地定位问题,并在最终确定问题之前进行更改以解决问题。

此APM工具是唯一一个应用程序性能监视产品,它克服了诸如提高性能和稳定性等问题。其中N+1数据库查询、数据库慢查询和性能异常是最常见的问题。

5.保持你的代码整洁且易于复用
代码检查和格式化

你所需要做的就是不断提高代码质量和代码的可读性。为了实现这些,需要压缩代码,这有助于减少延迟,提高网页响应速度。大多数代码开发流程通常包含一个代码检查和代码格式化的过程。

不过代码检查器只能处理代码中不完美的地方,并且只有一种方法来修复它们。另一方面,代码格式化程序的工作目标是确定一组格式和样式指导原则,这些指导原则必须在整个项目中保持一致。

ESLint,JSLint和HSHint是最常用的JavaScript代码检查工具,Prettier是最常用的代码格式化工具。这些工具并不关注代码的具体含义,只关心代码的格式,规范性。幸运的是,大多数IDE或者代码编辑器如Visual Studio code(VSCode),Atom等,都认可编写高质量代码的重要性,并提供了代码检测和格式化插件,并且这些插件都非常容易设置。

此外,一些IDE还提供了一些有用的特性,如智能代码补全、Debug调试工具、代码跳转和代码格式优化等。这些工具还是有不少优点的,因此强烈建议写代码时使用上这样的IDE设置。

代码风格指南

你需要遵循的另一个优秀实践是参考谷歌和Airbnb等巨头使用的JavaScript代码风格指南和标准。这些指导原则涵盖了从文件、变量和类的命名约定到文件编码的格式细节等等。更重要的是:它可以帮助你编写高质量的代码,并且这些代码风格符合一些全球顶级开发人员使用的实践和标准。

总结

我们试着描述出在开发过程中,你应该考虑到的最重要的优秀实践,以避免工作进展没多少就遇到很多困难和挑战。请记住:雇佣一支专业的Node.js开发团队永远是一个好主意,这不仅会帮助你写出整洁高质量的代码,还会在开发的方方面面帮助到你。

最后我们想对开发人员们说的是:是时候把你在今天学到的内容应用到你项目中去了。坚持去践行这些优秀实践,你就一定会从中受益,开发出高可用、可伸缩的Node.js应用程序。

译者介绍

卢鑫旺,51CTO社区编辑,半路出家的九零后程序员。做过前端页面,写过业务接口,搞过爬虫,研究过JS,有幸接触Golang,参与微服务架构转型。目前主写Java,负责公司可定制化低代码平台的数据引擎层设计开发工作。

原文标题:5 Best Practices to Follow for Node.js Development,作者:Hiren Dhaduk

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
刘涛演妈祖掷圣杯3次获允,男孩8次未过引福建老板集体放话

刘涛演妈祖掷圣杯3次获允,男孩8次未过引福建老板集体放话

懒散的雅儿
2026-02-21 20:19:58
精彩!某顶级商场电影院丈夫抓妻子带孩子出轨男小三视频疯传!

精彩!某顶级商场电影院丈夫抓妻子带孩子出轨男小三视频疯传!

魔都囡
2026-02-24 01:43:22
贵州省独山县委原书记李景宽被开除党籍和公职

贵州省独山县委原书记李景宽被开除党籍和公职

环球网资讯
2026-02-24 09:54:07
打脸来得太快!小S刚吐槽外甥女没礼貌 保姆一句话让她下不来台!

打脸来得太快!小S刚吐槽外甥女没礼貌 保姆一句话让她下不来台!

可乐谈情感
2026-02-24 08:39:48
上海高速,司机突然四肢瘫软,120因拥堵无法抵达

上海高速,司机突然四肢瘫软,120因拥堵无法抵达

看看新闻Knews
2026-02-23 19:44:06
黄金交易提醒:特朗普关税核弹与中东战云密布,金价四连阳逼近5250美元,多头目标直指6200?

黄金交易提醒:特朗普关税核弹与中东战云密布,金价四连阳逼近5250美元,多头目标直指6200?

汇通网
2026-02-24 08:07:12
马筱梅晒定制红包,把婆婆张兰放感谢第一位,汪大爷也来陪产

马筱梅晒定制红包,把婆婆张兰放感谢第一位,汪大爷也来陪产

离离言几许
2026-02-23 11:49:37
“抓捕行动中,美军共享了情报,至关重要”

“抓捕行动中,美军共享了情报,至关重要”

都市快报橙柿互动
2026-02-24 00:25:00
Claude Code创始人:程序员,2026年开始消失

Claude Code创始人:程序员,2026年开始消失

傅盛
2026-02-22 19:05:11
春节假期余额已严重不足!但还有一个好消息:再过40天又有3天小长假!

春节假期余额已严重不足!但还有一个好消息:再过40天又有3天小长假!

闪电新闻
2026-02-23 20:04:50
天崩开局的《镖人》,帮吴京扳回一城

天崩开局的《镖人》,帮吴京扳回一城

金错刀
2026-02-22 16:21:55
外交部:日方如果真心想发展中日战略互惠关系,就应该撤回高市涉台错误言论

外交部:日方如果真心想发展中日战略互惠关系,就应该撤回高市涉台错误言论

界面新闻
2026-02-23 19:56:21
中美俄意见一致,宁可让日本从地球上消失,也坚决不允许它拥核!

中美俄意见一致,宁可让日本从地球上消失,也坚决不允许它拥核!

老范谈史
2026-02-23 20:33:48
儿子跟大S女儿是同学…品冠曝小玥儿近况! 过年砸50万宠岳父母

儿子跟大S女儿是同学…品冠曝小玥儿近况! 过年砸50万宠岳父母

ETtoday星光云
2026-02-23 17:50:19
南通又火了!特警、保安接连出手,全网都羡慕了!

南通又火了!特警、保安接连出手,全网都羡慕了!

好通网
2026-02-24 08:42:16
泽连斯基通告全球,乌克兰还没有输

泽连斯基通告全球,乌克兰还没有输

天气观察站
2026-02-24 09:10:55
网友三亚偶遇董璇母女,董璇带娃一脸生无可恋,张维伊专心玩手机

网友三亚偶遇董璇母女,董璇带娃一脸生无可恋,张维伊专心玩手机

东方不败然多多
2026-02-24 07:45:38
“正月剃头死舅舅”到底怎么来的?终于知道真相了!

“正月剃头死舅舅”到底怎么来的?终于知道真相了!

科普中国
2026-02-23 15:50:37
NBA裁判报告确认:快船魔术尼德豪泽盖帽无误

NBA裁判报告确认:快船魔术尼德豪泽盖帽无误

三秋体育
2026-02-24 09:41:48
凌晨4点,基辅遭“锆石”洗地!俄军掏空家底疯狂报复

凌晨4点,基辅遭“锆石”洗地!俄军掏空家底疯狂报复

浯江孤舟
2026-02-23 21:29:06
2026-02-24 11:04:49
Nodejs开发
Nodejs开发
分享只有程序员懂的干货
648文章数 823关注度
往期回顾 全部

科技要闻

AI颠覆发展最新牺牲品!IBM跳水重挫超13%

头条要闻

牛弹琴:白宫突然发了张图 伤害性不大侮辱性极强

头条要闻

牛弹琴:白宫突然发了张图 伤害性不大侮辱性极强

体育要闻

苏翊鸣总结米兰征程:我仍是那个热爱单板滑雪的少年

娱乐要闻

杨洋传遇上缅北剧组 开机就离开剧组?

财经要闻

美拟以国家安全为由推出新关税

汽车要闻

一汽奥迪2026新品前瞻 全新旗舰亮相

态度原创

游戏
教育
时尚
旅游
艺术

晨报|未来暗黑将加速推新 棒鸡警告《马拉松》作弊者

教育要闻

这样筹划开学准备,班主任稳稳启动新学期

今年春天一定要拥有的针织,这样穿减龄又好看!

旅游要闻

第32届自贡国际恐龙灯会迎来第100万名游客!获赠“锦鲤大礼包”

艺术要闻

这幅草书作品引发热议,10人中8人可能看不懂。

无障碍浏览 进入关怀版