嵌入式开发中的两点编程思想

嵌入式开发中的两点编程思想

2022-07-11 15:32:11 zhaodeng 1

    敏捷软件开发不仅使用敏捷原则和实际操作。为了发布一个成功的软件,给终端用户带来积极的帮助,解决技术问题,使软件可靠部署,开发团队必须仔细考虑敏捷驱动的编程实践和架构标准。


    更重要的是,这与技术组织的生死有关。这和软件开发一样困难,更困难的是在很长一段时间内定期部署新功能和升级。自动化使部署应用程序可靠和可重复,包括开发运维团队的持续集成和交付(DevopsCI/CD),而基础设施就是代码(IAC:Infrastructureascode)工程实践起着关键作用。通过持续测试,开发团队可以验证代码修改是否影响现有功能。


    然而,当应用程序开发完成时,原始开发人员可能会转移到新项目或转移到其他公司。当新开发人员加入团队时,他们必须了解应用程序的架构和代码,才能可靠有效地修改代码。


    此外,应用程序开发人员通常希望不断开发新的应用程序。虽然保持旧的应用程序会让你感到舒适和轻松。但是,它一直被绑定在你原来的代码上,这不利于你的职业发展或组织发展。

    退出现有软件项目,转向新的软件开发项目的最好方法是让其他开发人员更容易维护您设计的软件架构、应用程序和代码。敏捷团队和开发人员必须建立并坚决实施可持续的软件开发实践。

1.不要重复造轮

    编程规则第一条:如果不需要重复编写代码,那就不要重复编写!具体怎么做?

你可以考虑问有没有这样的需求。为什么这个功能很重要?谁能从中受益?更具体地说,探索不用编码就能解决问题的解决方案。有时候,没有解决办法是最好的解决办法。

    在你的组织中,有人已经完成了类似解决方案的代码吗?也许,微服务只需要一点功能增强,或者软件库只需要一点升级?在编写新代码之前,确保检查组织中是否有类似的代码。是否有第三方解决方案,包括能够满足最低需求的价格SaaS工具,或开源方案。

您是否看过开源程序库,如GitHub,搜索符合您组织要求的代码示例和代码片段。


2.考虑编码少的方案

    如果你真的需要自己编写代码,你可以选择编码量少的平台,它们可以让你更有效地开发,比如Java,.Net,PHP和JavaScript开发环境更为有效。

    编码少的平台包括Caspio,QuickBase,Appian,OutSystems和Vantiq等等,他们提供的工具只需要开发人员编码少量代码,有时甚至根本不需要编写任何代码。每个平台都专注于特定的领域,因此适用于特定类别的应用程序。Caspio擅长在网页中嵌入表格和工作流。QuickBase具有鲁棒的工作流和自动化能力。Vantiq事件驱动件驱动架构IoT和其他实时数据应用程序。

虽然有时开发人员必须亲自编码,但他们也应该熟练地使用一个或几个开发平台,并善于在适当的场景中使用它们。


3.测试自动化

    除了编写满足需求的代码外,开发人员还需要做的最重要的事情之一就是测试代码。测试驱动的开发实践和自动化测试工具非常成熟。开发团队应将单元测试、回归测试、性能和安全测试纳入敏捷评估。

测试不仅可以帮助验证程序编译和发布的正确性,还可以使代码更容易维护。测试可以记录和例证这些代码的行为。当新开发人员加入团队,无意中引入错误修改时,连续测试将暂停编译,并为开发人员提供有意义的反馈,可以快速解决问题。


4.在代码外配置所有参数

    开发人员没有理由在代码中写下系统级设置、用户名、密码或其他配置信息。我看到一些开发人员走捷径,在程序原型中写下一些信息,并将其带入生产环境。这永远不应该发生在今天的软件架构中。这样的硬编码不是技术上的难题,而是懒惰不负责任的编程实践,会带来严重的后果。如果意外获取代码,将在终端或权限暴露时遭到安全攻击。

此外,在处理遗留代码时,任何在程序中写死配置和参数的方法都应被视为一个需要坚决解决的技术问题。


5.遵守命名规范,编写代码注释,增强可读性

    我曾经和一个天才开发人员一起工作过。他的英语不是很好,打字也不快。他会在代码中命名对象为a,b像C这样,将局部变量命名为zz,yy和xx。虽然他会在软件发布前清理这样的命名,然后提交到代码库,但很少坚持到底。

不必通过结对编程或一群人一起编程来发现这是一种可怕的编程实践。

    团队应采用命名规范,如Google的JavaScript风格指南和Java风格指南,并编写代码注释,至少在模块级别,理想的是在类别级别提供注释。此外,组织机构应考虑使用静态代码分析工具,它们将向开发人员提供反馈,当代码需要重构以优化代码结构和可读性时。


6.频繁将代码合并到版本管理库中

如果你不每天或更频繁地将代码合并到版本管理库中,很容易产生冲突或其他问题,这将影响整个团队。一个小错误会影响敏捷开发团队的敏捷性承诺,或增加额外的工作来解决代码依赖。

团队应就如何合并尚未准备好进入生产环境的代码达成协议。解决这个问题的方法包括建立功能标签。


7.避免编程英雄主义和复杂性

    我认识的大多数开发人员都成为了专业的软件工程师,因为他们热爱编程挑战。编程是一门艺术,一门科学和技术,优秀的开发人员寻求编程任务和优雅的实现方法来激发他们的思维。

    除非下面两者之间有一条灰线,否则开发人员不会注意两者之间的界限:1)解决具有挑战性的业务和技术任务;2)和编程英雄主义,这将给下一个开发人员留下难以理解和维护的代码。

    对于像我们这样有一些编程经验的人来说,我们知道如何Perlone-liners和使用C++嵌套模板带来的便利性。有时,我们可以找到足够的理由使用这些方法,但如果新开发人员不理解这些技术,那么修改这些代码将更具挑战性。有时,简单但不那么优雅的代码练习更好。

总结:促进敏捷软件开发中的敏捷性

    在scrum以及敏捷开发中包含的思想,包括信仰、标准、代码审查和反思,人们已经证明了这些实践可以帮助团队更好地合作和成功地实现代码。但在很长一段时间内,开发人员必须承担责任,并有良好的编程实践,这可以使他们开发的代码能够长期维护和扩展。

开发团队必须检查他们的编程实践。这不仅有利于今天的软件演示和发布,而且对其他人来说也非常重要。


电话咨询
产品介绍
**新消息
QQ客服