为什么发布自己的 npm 包可以让你成为更好的开发人员
关于如何发布自己的软件包有很多很棒的资源npm
,但我想分享一些想法,关于为什么你应该发布自己的npm
软件包以及为什么它会让你成为更好的开发人员。
如果你正在寻找构建npm
软件包的技术概述,Dan Vega 写了一篇关于发布你的第一个软件包的详尽文章npm
。我强烈建议所有初学者阅读 Dan 的指南。
首先,什么是npm
包?
npm
是一种为 Node.js 和 JavaScript 开发人员提供快速简便的安装、共享和管理npm
包的工具。npm
包是由社区创建的模块,可帮助开发人员极大地扩展其 JavaScript 应用程序的功能。
例如,流行的请求http
包通过将处理所有调用复杂性所需的功能简化http
为易于使用的方法,使开发人员能够进行调用。
npm
软件包通常由npm 公司通过其 npm 注册表托管。npm 注册表是一个公共的开源代码包集合,用于 Node.js、前端 Web 应用、移动应用、机器人以及 JavaScript 社区的许多其他需求。
有趣的是,使用 npm 软件包是构建 Visual Studio Code 扩展的关键部分。作为 VS Code 扩展Code Time的创建者,我们从充满活力的 JavaScript 生态系统中受益匪浅。最近,我们也开始构建一些自己的软件包——我们最新的作品cody-music是一个可以控制用户 Spotify 和 iTunes 应用的音乐模块。
在构建我们自己的 npm 包和 Visual Studio Code 扩展的过程中,我们学到了很多关于如何将 npm 包集成到开发流程中,以及为什么发布自己的包能让我们成为更优秀的开发者的知识。以下是我们学到的一些经验教训。
轻松展示您的开发技能
开发者是建设者,他们不断启动新项目,尝试新技术,并为社区活动做出贡献。对于许多开发者来说,建立作品集是展示他们长期磨练的技能和能力的重要方式。
在他们的职业生涯中,开发人员可能会从事与其他项目交织在一起的项目。然而,npm 包可以是您工作的独立片段,您可以快速轻松地与同事、雇主和朋友分享。
构建并向社区分享你自己的 npm 包是展示你的 JavaScript 和编程技能的绝佳方式。npm 包的复杂程度可由你决定,因此你可以充分利用自己作为开发者的全部知识。
您不仅可以展示您的编程技能,还将有机会展示您编写易于阅读和理解的文档的能力。npm 软件包对开发者社区公开开放,因此您将负责打包您的模块以供其他开发者使用。
对于所有背景的开发人员来说,沟通都是一项宝贵的技能。
学习如何构建其他人可以使用的东西
我的许多个人业余项目都是令人毛骨悚然的意大利面条式代码。自己写代码的时候,很容易偷工减料,养成坏习惯。即使是我自己的代码,如果一段时间没看,再回头看,也会觉得难以辨认。
打造一个全世界所有开发者都能使用的产品,是一个难得的机会,但意义非凡。能力越大,责任也越大。
当其他开发者发现你的项目时,你需要学习如何编写清晰简洁的文档。你还需要在 GitHub 或其他代码库托管服务上整理你的项目,以便任何潜在的贡献者或好奇的开发者都能仔细阅读你的代码。你还需要思考如何为你的函数命名,以便其他人能够理解它们的工作原理。
通过构建 npm,你将能够站在其他开发者的角度思考问题。你将开始了解其他人如何看待你的项目。在这个过程中,你将成为一个更聪明的开发者,更好地适应周围社区的需求。
了解如何将软件项目从构思到发布
想要掌控项目的个人开发者可以从设计自己的 npm 包中获益良多。构建 npm 包需要你监督整个产品开发周期,从构思到公开发布,甚至更远。
在这个周期的每个阶段,你都会面临新的挑战和独特的学习机会。你将处理从架构规划到拉取请求评审的所有事务。你将成为自己迷你产品的管理者。
npm 软件包完美地融合了规模和功能。构建 npm 的过程并非复杂到难以完成,而最终产品却有可能惠及整个开发者社区。
回馈开源社区
开源软件是软件开发领域的命脉。即便如此,为开源项目做贡献往往令人望而生畏,尤其是对于初学者而言。
找到您想要贡献的项目,仔细阅读贡献指南,提交拉取请求以供维护者审核 - 整个过程有时会让人感到有点不知所措。
如果您正在寻找一种更便捷的方式来回馈开源社区,那么发布 npm 包对于初学者和经验丰富的开发者来说都是一个绝佳的机会。npm 包可以根据您的需要,简单或复杂。无论项目规模大小,都能产生积极的影响。
JavaScript 是最流行的编程语言,因此你会发现许多优秀的资源来帮助你学习。在不断发展的 JavaScript 工具生态系统的支持下,你应该有信心在社区中做出贡献。
成为社区的一部分并获得宝贵的反馈
一旦你的 npm 包公开发布,其他开发者很可能会收到反馈或建议。理想情况下,一些开发者甚至会在 GitHub 上向你的项目提交拉取请求 (PR)。
与开发社区互动并学习如何吸收反馈将有助于您磨练领导能力和项目管理技能。
其他开发者的建议也能帮助你成为更优秀的开发者,让你接触到新的、更好的开发实践或工具,并将它们运用到你正在从事的其他项目中。拉取请求评审和问题讨论是向社区学习的绝佳机会。
模块化代码以获得更清晰的代码库和更好的测试
应用程序架构很快就会变得混乱。为复杂的代码编写测试,不出所料,也很复杂。代码通常包含许多动态部分,毫无戒心的开发人员可能会以意想不到的方式将这些部分纠缠在一起。
将部分代码抽象出来并组织到模块化的 npm 包中,可以简化代码库,并帮助您更好地在应用程序的不同部分利用可复用代码。这样,团队成员之间就可以快速共享代码,并消除函数的冗余实例。最终,代码库将更加简洁、更易于管理。
模块化代码也支持模块化测试。通过将代码拆分成多个包,您可以编写并执行可复现的测试,以确保每个包都能按预期运行。大多数 npm 包的构建方式是任何人都可以安装和运行包中包含的测试。作为开发者,您可以通过保持测试与原始代码的紧密联系(正如 npm 包所要求的那样)来编写更好的测试。
使用 npm 包来抽象应用程序的可重用功能,您将为代码添加结构和组织,从而简化开发过程。
了解 npm 包的强大功能
对于任何技能水平的开发者来说,创建和发布自己的 npm 都可能是一种有益的体验。通过学习如何构建自己的开源产品并管理其在开发者社区的发布,你将能够提升你的开发技能。
对于开发团队来说,将代码模块化为单独的包可以通过标准化管理代码所需的一些流程来加速开发。npm 包简化了整个构建、测试和部署工作流程 - 这对于您的团队在整个代码库中使用和重用以及整个开源社区来说都是一个很大的好处。
不要错过我们的代码编辑器插件Code Time和开发者简报SRC。感谢阅读!
文章来源:https://dev.to/thegeoffstevens/why-publishing-your-own-npm-packages-can-make-you-a-better-developer-2lc6