技术实践如何支持演进式架构和持续集成

演进式架构采用如TDD、重构等XP技术实践支持紧急设计,并推动架构不断演进。持续集成作为持续交付的基础实践之一,要求每日提交到主线。编写高质量的模块化代码是开发人员的关键技能。

TDD、重构、持续集成和结对编程等XP(极限编程,eXtreme programming)技术实践支持紧急设计(emergent design),并推进了架构的不断演进。持续集成是持续交付所需的首个实践,即每日都提交到主线。编写干净、考虑周全、测试良好的模块化代码,这是开发人员的最重要技能。

\\

Agile Summit 2017希腊大会上,ThoughtWorks北美技术负责人Rachel Laycock就敏捷技术实践做了一次演讲。InfoQ将以问答,摘要和文章报道本次会议。

\\

InfoQ采访了Laycock,采访内容涉及演进式架构、持续交付和技术技能等。

\\

InfoQ:您能为我们推荐一些演进式架构的实践吗?并介绍一下您推荐的原因。

\\
\

Rachel Laycock:演进式架构结构引入了一些新的原则。例如,在“最后责任时刻”(The Last Responsible Moment)做出架构决策,使用匹配功能去测试架构决策并尽早解决痛苦点。后者实际上是一种采纳自XP的理论。它提出对于可导致痛苦的事情,要增大做该事的频率。这通常会提高做事自动化的程度,进而消除做事的痛苦。这正是持续交付实践思想的来源。通过进行更频繁地部署,消除了设置和部署环境这一漫长等待时间所带来的痛苦。在做事的过程中,人们创建了新的工具去构建并部署环境。并且使得治理过程等存在延缓的挑战性问题也得以自动化。这样,整个部署过程平淡得就像去点击按钮,而非需要耗费整个周末纠缠于其中。所有这些都是拜痛苦所致。

\\

尽管我们具有这些新的原则,连续交付和XP的实践仍然是相关的和必要的。关键在于底层的特征,包括增量构建、模块化,以及围绕业务能力和实验进行组织等。XP技术实践(如TDD,重构,持续集成和结对编程)对紧急设计的支持,是架构得以随时发展的关键所在。由于我们的架构决策是作为“最后责任时刻”做出的,也是该时刻所需要的,因此我们需要经过充分测试的模块化代码,这样整个团队可以了解如何改进这些代码。这是我们从XP的实践中获得的。对我而言,如果要使用演进式架构,那么持续交付和XP的实践两者是“一并”的,而不是“二选一”的。

\
\\

InfoQ:在持续集成中,有哪些实践已被证明是具有价值的?

\\
\

Laycock:XP的实践支撑了持续交付。在人们开始进行持续交付时,一个着手之处就是创建持续集成的服务器和流水线。持续集成只是一种工具,一种用于实现每日向主线提交的实践。但是,我们要对提交的代码具有信心。如果代码中不存在错误,那么它们是有质量的。为此我们需要一套测试。如果我们在编写代码之后进行连续交付,或者我们处于一种遗留代码的状态,那么其中通常不存在测试,这是解决问题的根源所在。我所看到的一些实例使用了清晰易懂的方式编写代码,这些代码通常都是在TDD实践中编写的。

\\

持续交付解决了最终难题(the last mile problem),它引入了新的工具,创建并存储环境和部署的配置管理。即使在支持这些工具的生态系统中,我们依然可以编写一些测试,并且也应该这样做。在通常情况下,我们可对为配置管理而编写的代码做TDD。因此从根本上说,即使在此类情况下,底层的实践也不会发生改变。

\
\\

InfoQ:对于开发人员,最重要的技术技能有哪些?

\\
\

Laycock: 最重要的技能是能够编写干净,考虑周全、经过充分测试的模块化代码。真正地理解在耦合与凝聚上的挑战。之后,我们可以理解在各种语言上的一些细微差别。虽然语言会发生改变,但是这些基础技能不会发生改变。

\
\\

InfoQ:开发人员应如何提高自身的技术技能?

\\
\

Laycock:关键就是实践、实践、再实践。学习TDD是一件很难的事情,但如果我们坚持实践,我们就会在学习上做得更好,直到使TDD成为我们工作的一种常态。只有这样,我们才有能力在是否要对代码做TDD的问题上做出务实的决定。总体而言,我相信只要做事的方式正确,那么我们就应该执行重构的做法。这对于将来不创造“遗留”代码或“泥球”(Balls of Mud。译者注:指缺乏清晰结构的代码)是至关重要的。泥球将不可避免地延缓慢我们的速度。

\
\\

InfoQ:为立于技术实践的潮头,开发人员应如何做?

\\
\

Laycock:尽管引入了持续交付和DevOps,核心的技术实践并没有发生太大的改变。一旦我们学习会了这些技术,就可以将它们应用于我们所追求的软件设计和架构中,例如DDD、REST和演进式架构。

\
\\

查看英文原文: How Technical Practices Support Evolutionary Architecture and Continuous Delivery

基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置速度的精确估计与控制。文中结合嵌入开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础嵌入开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值