敏捷开发人员的7个关键编码实践

敏捷软件开发不仅仅涉及敏捷原则和实践。 为了成功发布对最终用户产生积极影响, 解决技术债务并可靠部署的软件,开发团队还必须考虑其敏捷性驱动的编码实践和体系结构标准 。

对于技术组织来说,一个甚至更重要的考虑也处于危险之中。 尽管开发软件非常困难,但要在很长一段时间内定期部署增强功能和升级甚至更加困难。 Devops CI / CD和IAC(基础结构即代码)实践部分解决了一个关键因素,因为自动化实现了可靠且可重复的方式来部署应用程序。 再加上持续的测试 ,开发团队可以通过一种方法来验证代码更改不会影响现有功能。

[有关低代码开发的全部内容: 为什么开发人员不应该只解雇低代码平台 。 | 25个用于快速构建移动应用程序的简单工具 。 | 评论: OutSystems使React应用程序的拖放变得容易 。 • 评论:Appian优价低价的开发人员 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

但是,随着应用程序的老化,原始的开发人员会转到其他项目,有时还会转到其他公司。 当新的开发人员加入团队时,他们必须学习软件的体系结构并了解代码,然后才能可靠,有效地进行更改。

此外,构建应用程序的开发人员通常希望开发新的应用程序。 始终与您开发的应用程序保持联系可能会感到舒适和安全,但将其拴在代码上对您的职业或组织不利。

继续进行新的令人兴奋的软件开发计划的最佳方法是使您的体系结构,应用程序和代码易于被其他开发人员支持。 敏捷团队和开发人员必须建立并执行编码实践,以维持正在进行的软件开发。

1.不要重新发明轮子

编码的第一条规则:不要编码不需要编码的东西! 怎么样?

  • 考虑问有关要求的问题。 为什么功能很重要? 谁受益? 更具体地说,探索非编码选项来解决该问题。 有时最好的解决方案是根本没有解决方案。
  • 您组织中是否有人已经编码了类似的解决方案? 也许有一个微服务仅需要增强功能,或者一个软件库需要进行较小的升级? 在编写新内容之前,请确保通读组织的代码库。
  • 是否存在满足最低要求的第三方解决方案,包括负担得起的SaaS工具或开源选件?
  • 您是否查看过诸如GitHub之类的开放式代码存储库,以获取满足您组织合规性要求的代码示例和代码片段?

2.考虑低代码开发选项

如果您确实需要编写解决方案的代码,则与使用Java,.Net,PHP和JavaScript等开发语言进行编码相比,替代的低代码平台也许可以使开发功能更有效。

Caspio,Quick Base,Appian,OutSystems和Vantiq等低代码平台都提供了用于开发应用程序的工具,这些应用程序只需很少的代码,有时甚至根本不需要代码。 每个平台都具有不同的功能,因此适用于特定类别的应用程序。 例如,Caspio使将表单和工作流轻松嵌入网站变得容易。 Quick Base具有强大的工作流程和自动化功能,Vantiq的事件驱动架构适用于IoT和其他实时数据应用程序。

有时需要进行编码,但是开发人员也应该精通一个或多个低代码开发选项,并考虑将其用于适当的用例。

3.自动化测试

除了编写满足要求的代码外,开发人员需要做的最重要的事情之一就是对其进行测试。 测试驱动的开发实践和自动化测试工具已经成熟,开发团队应将单元测试,回归测试,性能测试和安全测试作为敏捷评估的一部分。

除了进行测试以验证构建和发布,这些测试还有助于使代码更受支持。 测试是文档,并建立了有关代码行为的约定。 当新的开发人员加入团队并无意间实施了重大更改时,连续测试将停止构建并向开发人员提供有意义的反馈,以便快速解决问题。

4.外部化所有配置参数

开发人员不应以任何借口对代码中的系统级设置,用户名和密码或其他配置信息进行硬编码。 我已经看到开发人员在开发可以进入生产环境的原型时会采取捷径。 在当今的体系结构中,永远不要这样做。 硬编码不是技术上的负担,而是一种可能造成重大后果的懒惰,不负责任的编码做法。 如果无法访问代码,则在暴露端点或访问凭据的情况下会创建一个安全漏洞。

更进一步,当处理遗留代码时,解决任何硬编码的配置和参数应该是不可转让的技术债务优先事项。

5.遵循命名约定并包括注释以使代码可读

我曾经和一个非常有才华的开发人员一起工作,他不懂英语,也不是最好的打字员。 他将实例化名称为abc的对象 ,然后创建名为zzyyxx的局部变量。 他将致力于在发行前对其进行清理,但很少遵循。

您无需进行结对编程或生物编程即可认识到这是一种可怕的做法。

团队应该采用诸如Google的JavaScript样式指南和Java样式指南之类的命名约定,并至少在模块级别(最好在类级别)致力于注释代码 。 此外,组织应考虑使用静态代码分析工具 ,以便在代码因结构和可读性因素而需要重构时向开发人员提供反馈。

6.经常将代码检入版本控制

如果您不是每天或更频繁地将代码检入版本控制中,它可能会产生冲突和其他影响团队的障碍。 一个小错误可能会导致敏捷团队错过其冲刺承诺或创建其他工作来解决依赖关系。

团队应就签入尚未准备就绪的代码的约定达成一致。 传统方法包括特征标记和Git分支 。

7.避免编码英雄和复杂性

我认识的大多数开发人员都成为专业的软件工程师,因为他们喜欢解决编码难题。 编码是一门艺术,科学和工艺,并且更好的开发人员寻求发人深省的编码分配和优雅的实现。

除了在解决具有挑战性的业务和技术任务与编码英雄之间存在灰线之间,这使下一个开发人员拥有难以理解且难以维护的代码。

对于那些编码已有一段时间的人来说,我们记得Perl单行代码或在C ++中使用嵌套模板的便利。 有时有充分的理由使用这些方法,但是如果一群新的开发人员不了解这些技术,则更改代码将更具挑战性。 有时候,简单但不太优雅的编码方法会更好。

在敏捷软件开发中提高敏捷性

如今, 嵌入在Scrum和敏捷开发中的仪式 (包括承诺,站立,冲刺审查和回顾)已成为行之有效的实践,可以促进团队协作并推动成功实施。 但是,要长期展示敏捷性,开发人员必须承担责任和编码实践,以使其开发的代码获得长期支持和可扩展性。

开发团队必须认真对待自己的编码实践。 今天演示和发布还不够好。 使其他人轻松维护应用程序和代码也很关键。

From: https://www.infoworld.com/article/3446439/7-key-coding-practices-for-agile-developers.html

你可能感兴趣的:(敏捷开发人员的7个关键编码实践)