实用干货:适用于常见开发者挑战的 6 种解决方案

十月 30, 2023

对于许多人来说,万圣节是盛装庆祝以摆脱困扰的绝佳理由。Google for Developers 旨在通过深入探讨令软件开发者和工程师毛骨悚然的挑战来彰显本季的主题。继续阅读,了解潜在的棘手问题,探索这些问题的解决方案。

代码墓地

代码需要定期更新才能富有弹性,解决错误时,代码行数越少,越容易找到错误。面对旧代码或冗长的代码时,请考虑进行简化和刷新,使其更易于管理,因为没有人喜欢老旧或过于复杂的代码库。以下是一些最佳做法。

从小规模开始:不要尝试一次性更新整个代码库。相反,先更新代码库中孤立的小部分,最大限度地降低产生新错误的风险。

使用版本控制系统:跟踪您的更改,并在必要时轻松恢复到以前的版本。

考虑使用重构工具:这可以帮助您在不破坏代码的情况下更改代码。

全面测试:将更改部署到生产环境之前,请务必进行全面测试,其中包括单独测试更改,以及将其与代码库的其余部分一起测试。请在下方查看有关测试动机的更多提示。

记录所作更改:包括新的工具、更新后的 API 和任何更改,以便其他开发者了解您所做的工作及其原因。

测试梦魇

当您想要快速编写和发布代码时,您很可能会产生省去代码测试这个环节的念头,因为代码测试可能会在短期内导致您的速度变慢。但请注意,未经测试的代码以后会为您带来困扰。从长远来看,测试是一种最佳做法,不仅可以为您节省时间、金钱,还能让您免于焦虑。即使您知道应该进行测试,这并不意味着您想进行测试。请使用以下提示来帮助简化测试程序编写过程。

测试游戏化:将测试变成一场游戏。挑战自我,以比同事所说的“代码覆盖率”更快的速度编写测试程序。

合作编程:与同事一起编写测试程序。就像有一个伙伴陪同锻炼一样,会更有趣和更有动力。

设置测试自动化:尽可能将测试自动化,效果更好、更高效。

奇怪的问题:无法选择您的技术栈

许多开发者对产品有自己强烈的偏好,但有时传统技术或组织需求可能会使选择受限。这可能会令人气馁,特别是如果致使您无法使用最新的工具。如果您面临类似的情况,不妨向您的团队提出建议。方法如下:

开展变革游说:如果当前的技术栈真的不起作用,请倡导变革。这可能需要提供一系列事件的文档,但您可以用它来建立您的案例。

宣传优势:如果您已准备好分享您的偏好,请解释您选择的技术栈可以为项目带来哪些好处,类似于经过优化的代码如何提高性能。

展示专业知识:无论是通过概念验证还是演示文稿,都可以展示您对偏好的堆栈的了解程度。

提升技能:如果您必须深入了解自己不熟悉的自上而下的技术栈,请将其视为一个学习机会。这就像探索一种新的编码语言。

妥协是关键:首先,要认识到上述所有要点仍然值得关注,但有时候,您必须妥协。您可以这样想,旧代码虽然不理想,但仍然可用。因此,如果您无法产生有利于自己的影响,请不要感到沮丧。

并非诡计:以更聪明的方式发布代码

唯一比在周末修复错误代码更糟糕的事情是,您在周末有其他计划,但却需要修复错误代码。相较于处理问题的时间较少、占用个人时间以及可以帮助排除故障的人员较少,在没有合适的资源可用于为您提供帮助的情况下发布代码充其量是有风险的做法。以下是一些最佳做法,可帮助您制定更好的时间表,避免出现周六和周日恐惧症的情况。

考虑上班时间和用户影响:将部署安排在受影响的用户较少的非高峰时段。对于 B2B 公司来说,周五下午可以最大限度地减少对客户的干扰;但对于规模较小的公司来说,在周五部署可能意味着开发者需要在周末解决关键问题。请选择适合您的时间表。

实现测试自动化:在开发过程中实施自动化测试,以便及早发现问题。

确保使用正确的模拟环境:在镜像的生产模拟环境中对更改进行全面测试。

做好回滚准备:准备好回滚计划,以便在出现问题时快速还原。

监控和警报:设置监控和警报,全天候发现问题。

沟通:确保部署计划和程序在团队成员之间得到清晰沟通。

计划部署:如果您的团队不是定期在周末发布代码,请将代码访问权限设置为“只读(星期五)”。如有必要,安排在星期五上午或下午早些时候部署。

周末待命:考虑实施周末待命人员轮换政策,以解决关键问题。

部署后审核:分析并了解每个部署的挑战,以改进流程。

全面规划:确保部署流程得到完好记录,并在团队和利益相关方之间得到沟通清晰。

评估风险:评估潜在的业务影响和用户影响,以确定部署频率和时间。

噩梦成真:被黑客攻击

意识到被黑客攻击是一件惊心动魄的事情,但即使是最精通技术的开发者也容易受到攻击。在发生这种情况之前,请记住采取以下最佳做法。

保持系统和软件为最新版本:将其视为修补代码中的漏洞。

使用强密码:就像强加密一样,使用强密码。

使用双重身份验证:始终额外添加一层安全保护。

小心网络钓鱼者:不要上钩。使用未经测试的代码时,请谨慎对待可疑的电子邮件。

执行安全审计:定期审计您的系统是否存在漏洞,例如,运行代码审核,确保网络安全。

备份计划:与版本控制一样,维护备份内容。它们是您的安全网,可防止事态失控。

惊悚事件:第三方数据泄露

数据泄露可以说是让开发者感到最可怕但也是最合理的威胁。没有公司希望面临这种威胁,更不用说选择利用服务或 API 消除威胁的开发者了。以下是尽量减少第三方供应商问题的一些提示,以帮助您避免这种情况。

对第三方供应商进行尽职调查:在与第三方供应商合作之前,请仔细审查其安全做法和政策。了解相关的安全认证、漏洞管理做法及事件响应计划。

要求供应商遵守安全规定:在与每个第三方供应商签订的书面合同中表明或新增您的意见,并在其中概述供应商必须遵守的安全规定。此合同应包括数据加密、访问权限控制和事件报告的要求。

监控供应商活动:通过审核审计日志并进行安全评估,确保供应商遵守合同中的安全要求。仅授予供应商对履行工作职责所需数据的访问权限有助于将供应商受到入侵而造成的数据泄露影响降至最低。

实施强大的安全控制措施:在您自己的系统中,通过防火墙、入侵检测系统和数据加密保护数据免遭未经授权的访问。

警惕第三方 API:审查所有安全风险。仔细阅读 API 文档,了解所需权限,并确保采用强大的 API 安全措施。

践行安全编码做法:使用输入验证、转义输出和强加密。

保持软件为最新版本:始终使用最新的安全补丁进行更新,以帮助防范已知漏洞。

勇敢面对

知道哪些地方出了问题很容易受到惊吓,但通过践行这些最佳做法,工作出错的可能性会大大降低。

您还经历过哪些其他令人毛骨悚然的开发者挑战?请前往社区分享。