开放源代码开发中的依赖关系及其正确的版本
发表时间:2023-11-17 15:02:58
文章来源:炫佑科技
浏览次数:185
菏泽炫佑科技
开放源代码开发中的依赖关系及其正确的版本
翻译”:[{“text”:”\n
应声明所有依赖项。应用程序可能依赖于外部系统工具或库,但不应对系统工具或库具有任何隐式依赖关系。应用程序必须始终显式声明所有依赖项及其正确版本。\n
\\n\n在代码库
中包含依赖项可能会有问题,尤其是在开源项目中,对外部库的更改可能会将错误引入代码库。例如,代码库可能使用外部库,而不显式声明该依赖项或版本。如果将外部库更新到未经测试的更新版本,则可能会产生代码兼容性问题。如果显式声明了依赖项及其正确版本,则代码库不会出现此问题。\n
\\n\n
根据技术堆栈的不同,*好使用包管理器通过读取表示依赖项库的名称和版本的依赖项声明清单,在其各自的系统上下载依赖项库。\n
\\n\n
3:将配置存储在环境中\n
\\n\n
当需要支持多个环境或客户端时,配置成为应用程序的重要组成部分。不同部署之间的配置应存储在环境变量中。这样可以轻松地在部署之间更改配置,而无需更改代码。\n
\\n\n
对于闭源应用程序,此原则是有益的,因为您不希望公开敏感信息(如数据库连接信息或其他机密数据)。但是,在开源开发中,这些细节是公开的。在这种情况下,好消息是您不需要一遍又一遍地更改代码。你所要做的就是像这样设置变量,你只需要改变环境开放源代码开发中的依赖关系及其正确的版本,代码就会完美地运行。\n
\\n\n
4:将后端服务视为附加资源\n
\\n\n
所有后备服务(如数据库、外部存储器或消息队列)都被视为附加资源,并由执行环境附加或分离。根据这个原则,如果这些服务的位置或连接细节发生变化,仍然不需要更改代码。这些详细信息可以在配置中找到。\n
\\n\n
备份服务可以快速附加或分离到部署中。例如,如果基于云的电子表格数据库无法正常工作,开发人员应该能够创建一个新的数据库服务器,该服务器可以从*近的备份中恢复,而无需对代码库进行任何更改。\n
\\n\n
5:严格分离构建和运行\n
\\n\n
12- 应用程序方法要求在构建、发布和运行阶段之间严格分离。\n
\\n\n
通过严格分离这些阶段,我们可以避免代码中断并使系统维护更易于管理。\n
\\n\n
6:将应用作为一个或多个无状态进程运行\n
\\n\n
应用程序在执行环境中作为一个或多个进程的集合执行。这些进程是无状态的,其持久性数据存储在后台服务(如数据库)中。\n
\\n\n
这对于开源非常有用,因为使用应用程序版本的开发人员可以在其云平台上创建多节点部署以实现可扩展性。数据不会保留在其中,因为如果这些节点中的任何一个崩溃,数据将丢失。\n
\\n\n
7:通过端口绑定提供服务\n
\\n\n
应用程序应为独立于其他应用程序的独立服务。它应该可以通过 URL 作为服务被其他服务访问。这样,您的应用程序可以在需要时用作其他应用程序的资源。使用此概念,您可以构建 REST API。\n
\\n\n
8:通过流程模型进行扩展\n
\\n这个原则,\n
也称为并发原则,指出应用程序中的每个进程都应该能够自我缩放、重新启动或克隆。\n
\\n\n
开发人员可以创建多个进程并将应用程序的负载分配给这些进程,而不是使一个进程变大。使用此方法,可以将每个工作负载分配给一个进程类型,从而构建可以处理不同工作负载的应用程序。\n
\\n\n
9:快速启动和优雅端接,增强了稳健性\n
\\n\n
您的应用应该建立在简单流程之上,以便开发人员可以在出现问题时重新启动流程时放大流程。这使得应用程序的过程很容易被丢弃。\n
\\n\n
根据这一原则构建应用程序意味着代码的快速部署、快速的弹性扩展、更灵活的发布过程和强大的生产部署。所有这些在开源开发环境中都非常有用。\n
\\n\n
10:尽可能保持开发、预发布和生产环境相同\n
\\n\n
同一项目的团队应使用相同的操作系统、支持服务和依赖项。这减少了出错的可能性,并减少了开发所需的时间。\n
\\n\n
对于开源项目来说,将这一原则付诸实践可能是一个挑战,因为开发人员在地理上分散,可能无法就他们使用的系统、服务和依赖项进行沟通。减少这些差异的一种可能性是制定开发指南,建议使用哪些操作系统、服务和依赖项。\n
\\n\n
11:将日志视为事件流\n
\\n\n
日志对于解决生产问题或了解用户行为至关重要。但是软件开发,12-应用程序方法不适用于处理日志的管理。\n
\\n\n
相反,日志条目应作为事件流写入,写入标准输出,并发送到单独的服务进行分析和存档。机器人流程自动化 (RPA) 技术可用作第三方服务来处理和分析日志。执行环境将决定如何处理该数据流。这提供了更大的灵活性和反映应用程序行为的能力。\n
\\n\n
12:后台管理任务作为一次性进程运行\n
\\n\n
这个原则实际上与开发无关,而是与应用程序管理有关。管理进程应在与应用程序的常规长时间运行进程相同的环境中运行。在本地部署中,开发人员可以使用应用程序签出目录中的 shell 命令直接执行一次性管理过程。\n
\\n\n
结论\n
\\n\n
使用 12 个应用方法开发应用程序可以提高效率并加快发布速度。在开源开发中,偏离某些准则可能是有意义的,但*好尽可能地遵守它们。\n
\\n\n
开源 12- 应用程序是可能的。一个很好的例子是 Jitsi,这是一个开源视频会议平台,采用 12 个应用程序的方法构建,已扩展 100 倍,并在大流行期间取得了巨大成功。\n
\\n\n
(标题照片:MJ/-49d0-4702-8ad3-)。\n
\\n\n
通过:\n
\\n\n
作者:Conn主题:译者:校对:wxy\n
\\n\n
本文由LCTT编译,Linux China发布\n“,”to“:”en“,”“:{”“:[13,40,27,5,50,33,37,33,5,59,5,18,35,19,25,5,53,23,21,27,5,21,45,34,13,5,21,66,5,19,29,5,37,5,25,28,29,5,52,33,5,20,28,26,28,22,5,20,42,5,44,46,5,25,46,13,5,5,5,18,5,30,31,25,5,74,39,5,19,25,24,5,44,32,16,24,5,26,28,28,47,5,10,36,42,5,18,75,5,32,12,28,31
],”“:[41,157,92,5,170,111,117,107,5,248,5,53,123,88,95,5,185,63,92,125,5,58,174,136,49,5,73,203,5,42,108,5,110,5,57,98,111,5,157,90,5,55,87,67,89,44,5,44,153,5,145,140,5,71,142,46,5,175,70,5,103,103,85,5,223,156,5,47,92,98,5,152,110,69,97,5,65,85,111,150,5,18,103,137,5,46,202,5,43,12,51,80]}}]}]\n","to":"zh-Hans","":{"":[31,40,157,92,6,170,111,117,107,6,248,6,49,6,123,88,95,6,185,63,92,125,6,54,6,174,136,49,6,73,203,6,38,6,108,6,110,6,53,6,98,111,6,157,90,6,51,6,87,67,89,44,6,40,21,137,6,145,140,6,67,6,142,46,6,175,70,6,99,6,103,85,6,223,156,6,43,6,92,98,6,152,110,69,97,6,61,6,85,111,150,6,14,6,103,137,6,46,202,6,39,6,8,6,48,6,77,310,291],"":[21,12,40,25,5,49,28,34,30,6,62,6,15,5,34,20,26,5,50,19,27,35,6,17,5,47,37,16,5,22,75,6,15,6,34,6,37,6,23,5,29,32,5,52,34,6,16,5,24,24,28,22,6,16,11,42,5,44,46,6,22,5,46,18,5,52,19,6,25,5,31,24,5,67,39,6,15,5,26,25,5,43,34,17,24,6,22,5,28,31,47,6,6,5,35,34,5,20,71,6,31,6,7,6,23,6,26,312,290]}}]}]