首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式开发人员是否比他们的桌面开发人员更保守?

嵌入式开发人员是否比他们的桌面开发人员更保守?
EN

Stack Overflow用户
提问于 2009-02-12 13:23:26
回答 9查看 911关注 0票数 12

我已经在嵌入式领域呆了很长一段时间了,看来大多数我交谈过的程序员所做的事情与15年前或更多年前的做法大同小异:瀑布开发、命令行工具和一小群人使用了lint。

与服务器/桌面环境相比,这里似乎有很多与编程的各个方面相关的活动:

  • XP,Scrum,迭代,精益/敏捷
  • 连续积分
  • 自动构建
  • 自动化单元测试框架
  • 重构工具支持

只是嵌入式环境使得实现新的实践或工具变得更加困难吗?

嵌入式程序员的心态引导他们远离新的工具/概念吗?

与it领域相比,典型的嵌入式行业的管理是落后的吗?

我意识到这是一种泛化,一些嵌入式项目确实使用了Scrum、敏捷、CI、Automated (事实上,我在一家公司工作,从80年代起就已经这样做了)。但我的印象是,这个比例是很小的。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-02-12 21:32:57

是嵌入式开发人员,比他们的桌面浏览器?更加保守。

是的,因为他们更关心犯错误的后果。修补嵌入式设备是件大事。对于桌面应用来说就不是这么回事了。

在嵌入式世界中,水法主义开发是必要的,因为您通常在构建硬件和软件的同时。您需要尽快知道有多少内存,多少处理器速度,多大的闪存,如果任何特殊的硬件是必要的,etc...The硬件设计无法完成直到您知道这些答案。一旦你决定了,那就差不多了。重做董事会的准备时间太长了。如果你搞砸了,那么这个软件将不得不解决任何缺点。通常情况并不理想。

至于tools,这很大程度上是基于供应商提供的内容和开发人员的任何偏见。在一些项目中,我使用了XP Embedded,并且获得了桌面开发人员获得的几乎所有东西。

XP,Scrum,迭代,精益/敏捷:

由于大多数设计都是预先完成的(这是必要的),而且在编写代码的时候通常没有工作的硬件,所以快速的周转过程并没有提供太多的好处。

持续集成/自动化构建不错,但并不是真正必要的。什么…打开IDE并按下编译按钮大约需要15秒。

自动化单元测试

没有理由不应该这样做,但是只有一部分代码可以真正地自动测试,因为另一部分是硬件依赖的,或者还有其他一些依赖项,比如定时。因此,您无法真正判断代码是否通过自动化测试工作。

重构工具支持

嵌入式处理器产品的供应商就是处理器。他们提供IDE支持,以鼓励您购买他们的处理器。他们不可能支付一个Visual大小的开发团队的费用,以便将所有的花哨添加到IDE中,而IDE甚至不是他们的产品。

票数 13
EN

Stack Overflow用户

发布于 2009-02-12 13:47:23

我们都习惯了这样一个事实:我们的桌面PC偶尔会崩溃(或者至少桌面上的应用程序会突然消失)。这算不了什么。下一个补丁会修复它。

在嵌入式空间中,您正在构建一些无法修补的东西。生命取决于你的设备(在汽车、电梯或医疗系统中)。大多数设备都已安装,然后必须在无人值守的情况下运行数年。所以嵌入的人往往是非常保守的。TCP/IP常常是“太现代”。他们坚持他们的可靠串行总线与通信“堆栈”,大约是50行汇编程序代码。

更糟糕的是,设备上没有足够的空间,这意味着您不能使用最新的编程语言之一,使TDD和自动构建幸福。

其次,许多嵌入式开发环境都是专有的。如果你的供应商不支持它,你就得不到它。在过去的几年里,Linux已经开始削弱这一点,但是很多设备还不够强大,无法运行Linux。即使是这样,CPU的能力也会被用于其他方面,而不是运行源代码附带的高级操作系统。

因此,是的,有强大的力量在后台工作,以保持嵌入式空间的存在。

票数 14
EN

Stack Overflow用户

发布于 2009-02-12 13:55:04

以下是我能想到的一些原因:

  • 嵌入式团队通常比桌面/Web团队更小。代码库较小。
  • 系统测试比单元测试更重要。软件需要与硬件一起测试。自动化测试是不可能的,只能应用于代码库的一小部分。
  • 嵌入式工程师拥有与软件工程师不同的技能。他们与硬件交互,知道如何使用示波器和逻辑分析器。通常,他们的工作中最困难的部分是找出硬件上的一个故障。他们没有时间采用现代软件方法。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/541195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档