paint-brush
的提升的开发运行速度和建设项目安全性能的 7 个行之更有效的实训 经历@dsitdikov
1,622 讀數
1,622 讀數

提高开发速度和项目质量的 7 个行之有效的实践

历经 Daniil Sitdikov8m2023/03/28
Read on Terminal Reader

太長; 讀書

通过采用后端响应模拟、功能标志、错误监控、性能优化、代码风格标准、回归测试和跟踪等技术,您可以创建更高效、更可靠的软件。
featured image - 提高开发速度和项目质量的 7 个行之有效的实践
Daniil Sitdikov HackerNoon profile picture
0-item
整个这么多原则需要以应该用于转移联合开拓、Web 网页前端和后端开拓。我就差异的组织各类往日 6 年终会遇到的相关问题中采集了这么多实行。当您重新就开始引入创业项目时,这么多实行特别是有效的。这之中许多有机会是适用您,而另许多则有机会不用。这样您有自个儿的家常做法和差异的相关经验,这样您在里分亨它们的,我将很喜悦。快过年了说上句,这样您是合作的英文进级的中级职称或中高级联合开拓员,那在您的组织中开展这么多家常做法却是出现所帮到。他们逃吧!

1.模拟后端响应直到准备就绪

在标准化的小软件规划设计方法中,当销售谈到新功用提起时,它会匀称在好几个团队合作中:前沿、后端开放和转移技术应用系统规划设计。


而后,4个人员协作来进行规划和主线任务转换。不过,假如web后台人员协作要较多精力来规划设计用户的部件怎摸办?假如用户一周会交房1次端点怎摸办?


后台变成了薄弱环节。


移动手机和最前端规划设计组织到最后是那么业务的:“哦,前后端分离都变现了这点,给我来接这点的任务。”接下来,顾客休假一会儿,将升降文切换桌面到其它个模块,接下来无限循环坚持。这会造成 疲劳过度、速度快减少和的品质减少。


解决方案:与后端团队达成合同并模拟所有请求。

在经典方法中,我们在任务之间存在差距。在“模拟方法”中,所有工作都作为流程执行


1. 与后台队伍就端点和实物进行匹配。


2A.采用存根加载进行web后台 API。 Faker 库也可以作用生产范例数据库。


2B。也应该在前面实现了目标存根。这应该是会在二维码中涵盖统计数据的對象。举个例子,在 Node.js 中,您应该动用日常动态使用很好地实现了目标这一点儿并避开添加包强弱:
 getUser() { return import('../../assets/mocks/users') .then(data => data.userById) .then(deserializeUser); };
这也可不可以是一个个养成 HTTP 服务于,它从股权中收集 JSON 文件名称而不只是发送实打实的ajax请求。


  1. 隐藏桌面实用功能键符号里边的实用功能键。


  2. 当后台预备就绪时,一旦您操作前边存根的办法,请调成到真正 API,并手机验证所有的 是否需要按预期想象上班。并关掉这一个职能。

2.特征标志

当今,您早已经早已经留意到,在上个节中,我提及了用途象征。简一般说来之,用途象征全称又被称为用途锁定不可以发掘工人在实时时间环保中点击或停用用途。在有的状况下其也很好使:计划经济体制停售新用途、执行命令 A/B 测试英文、任用 Beta 用途及推进裂缝修补系统程序。


让公司大家选用 Gitlab 来数据库模块标准。它是前后端分离和前沿工程都选用的通用型数据库库。喜讯报是它一 个大家友谊的大家网页,那么新企业产品形式者也可以属于自己形式模块。前,让公司大家以前各用为4个工程数据库库选用模块标准。虽然,此类形式并找不到供应做次性关闭正个新企业产品模块的学习能力。那么,让公司大家将每个玩法移至某一数据库库。


在代码中,它看起来很简单:

  1. 在项目中,我们获取所有活动的功能标志。在幕后,Gitlab 基于 (功能切换服务),我们使用它的官方客户端。
  2. 然后,只需将if features.YOUR_FEATURE放在需要隐藏的代码中。
  3. 您可以通过在功能标志中添加不同的值来扩展用例。例如,通过添加颜色值或折扣值。


3.监控生产环境中跟踪问题的错误

如果他们的的产品从 MVP 的阶段衔接到生育适用程序流程图时,他们担心你使用者会遇上他们难以复现将会将会无主观能动性到的不对。在设计了不对关注方法在此之后,他们进行了 Sentry。经验值是主动的。现今,让他们你看下许多为重要的细节不一样。

无用的错误

在引擎盖下,将跟踪任何未捕获的异常。随着应用程序和用户数量的增长,错误的数量会越来越多,以至于几乎不可能注意到任何真正重要的事情。如果你不过滤掉不需要的东西,Sentry 会变成垃圾箱。例如,取消请求、连接错误和连接脚本错误等事件是完全无用的,只会向您的工作电子邮件发送垃圾邮件通知。作为解决方案,您可以将过滤器添加到配置中。为此,只需定义一个beforeSend回调并将其放入您的sentryPackage.init中。在此回调中,您可以分析每个捕获的错误,如果它无用则将其丢弃(通过返回 null)。下面是一个排除不必要错误的过滤器示例:

 function beforeSend(event, hint) { const error = hint.originalException; const externalScripts = [ 'gtm.js', // Google Tag Manager 'watch.js', // X Analytics ].join('|'); const errorsToIgnore = [ AxiosError.ERR_NETWORK, AxiosError.ECONNABORTED, AxiosError.ETIMEDOUT ]; if (axios.isCancel(error) || errorsToIgnore.includes(error.code) || error.stack?.match(externalScripts)) { return null; } return event; }


包含更多数据以更好地调试

默认情况下,哨兵可能不会在错误报告中包含请求和响应的内容。没有这些信息,就不可能进行正确的调试。幸运的是,在beforeSend处理程序中,我们可以包含此信息。

 function beforeSend(event, hint) { const error = hint.originalException; if (error.isAxiosError) { const url = error.request?.responseURL; const response = error.response?.data; const request = error.config?.data; event.extra = { ...(event.extra || {}), url, response, request }; } return event; }

过滤敏感信息

错误内容中不应包含密码、电子邮件地址和密钥等数据。 Sentry 具有隐藏此类信息的内置机制。您可以在安全设置中配置它。此外,您还可以在beforeSend中删除事件对象中的内容

独立解决方案

倘若您的金融业务的性质不可以将或者大数据贮存在相关地方的工作器上,Sentry 具备在您自家的工作器上使用的它的性能。

4.追踪

轨迹ID的路径

想法这些是一种情况下,我在 Sentry 中好抓取到某个失败,因为表述中的相关信息不有效。您转移到系统系统日志,但要怎样在每秒上千人个恳请和更加系统系统日志行中鉴别特定失败?您要怎样分辩正确合理的恳请、建设恳请链并确认准确的的失败,更是是当您的渠道有几个创业团队并与同一贴心服务智能家居控制时?这也是跟踪软件充分利用效果的地区。


  1. 跟踪提供了一个完整的调用图并确定了失败的精确方法,即使您有消息代理执行的异步通信也是如此。
  2. 它可以让您在与不同团队集成时轻松确定错误发生在哪一侧。
  3. 跟踪对于性能调试也很有用。例如,它可以帮助澄清渲染是否需要更长的时间,或者微服务中的方法是否不够优化。


在小编的实际构建中,小编用了 ,它对于 OpenTracing API。


简所说之,每种重定向名词解释每台策略启用都含有拥有产品标鉴。每种产品标鉴都要对其父产品标鉴和一个元参数的插入。这样数字1的的结构在于于构建,但而言 OpenTracing,您可能在上了解它的运转设计原理并生疏跨越、插入、子项、父项等点。在本质家庭生活中的一,tracing luckily 是越来越多涉及到的。其实,在这么多少见的安全生产事故中,它可能降低成本您的时段。

5.性能优化

每当们落实金融经济网络应运方式的 MVP 时,公司有个越来越复杂性的行驶。那时候,我我时尚,游戏经验不佳。从而,公司意思到公司的项目流程稍后趋缓。公司不得已不消耗 30%的日期来找到诱因。公司有好多无需要的自己宣染,而是公司无视了 React 中与 props 一些的最基本准则。我认为尽一起已经禁止未来10年冒出这一环境。


因此,我向项目中添加了的 linters 和 package.json 的额外起始配置以运行 。简而言之,如果某些东西被不必要地重新渲染,这个插件会发出警告,并建议如何避免它。此外,我们还包括 。有人说过早的优化不好,但对我来说,这是一个原则:从开一開始就做对。

6.为所有团队项目定义代码风格

您有机会知道过要建筑材料设计物含有是一两个破窗而并没別人修改它,终于该建筑材料设计物上将军衔都不会产生是一两个完好的窗口。内容中的玩法和控制越低,编辑低质量量码或以彻底不一样的的极简风格编辑码的性感就越大。不一样的码不断增加了认知它需要的时期,而精准、熟识和整洁的码禁止很快阅渎。在让我们大家的一款 团队协作中,让我们大家说明了识别码的极简风格。看做一款 更好的起步,您会使用或。

7.回归测试

已是多大量学术论文讲解了各种类行的软件检查、形式及及怎么样正确性编程其。这里的拥有有必要一提的是,是没有再战软件检查,其它制作软件应用执行程序都是没办法存活。这就算为怎样的我门将所有气力都一起在創建1个局面的端到端软件检查方框上,并这里基本知识上编程了与 BDD 场地和顾客桥段一些联的软件检查。我门实用网页页面對象方法来公司代码是什么,并实用 Playwright 方框与查看器展开交互式。要跨各种查看器(还有 Safari)展开软件检查,您需要实用其名为的搞定方法。它需要安排在您的在这其中一套售后虚拟服务器上。

结论

非常感谢你们花精力看书此文!总的来说,此文侧重讲述了可提高定制开发操作过程和码质量水平的根本应用建设工程生活实践。使用用于前后端分离运行模似、工作标记、错误信息监管、功能优化方案、码特点要求、蜕变測試和定位跟踪等技艺,您应该使用更大效、更是真的吗的应用。让.公司马上问题解决.我的应用并始终保持搞好关系! :)
바카라사이트 바카라사이트 온라인바카라