Embedded 从嵌入式到桌面的可重用知识

Embedded 从嵌入式到桌面的可重用知识,embedded,desktop,reusability,Embedded,Desktop,Reusability,在嵌入式电信系统开发(C、MAKE、Symbian、100编译器等)工作了大约8年后,我正在考虑通过进入桌面开发(VC++、MFC、C#等)来“稍微”改变我的道路 然而,我担心的是,我在嵌入式系统方面的经验可能不会给我在桌面开发方面带来太多价值。例如,我工作了这么长时间的特定领域的问题和环境仍然没有给我多少可以协商的薪水,因为它在桌面上没有什么价值 我认为这个地方可能有助于提供这方面的信息 那么,Q: 如果您忽略了编程语言层面上显而易见的一般经验,请举例说明您在使用嵌入式系统时所学到的一些东西,

在嵌入式电信系统开发(C、MAKE、Symbian、100编译器等)工作了大约8年后,我正在考虑通过进入桌面开发(VC++、MFC、C#等)来“稍微”改变我的道路

然而,我担心的是,我在嵌入式系统方面的经验可能不会给我在桌面开发方面带来太多价值。例如,我工作了这么长时间的特定领域的问题和环境仍然没有给我多少可以协商的薪水,因为它在桌面上没有什么价值

我认为这个地方可能有助于提供这方面的信息

那么,Q:

如果您忽略了编程语言层面上显而易见的一般经验,请举例说明您在使用嵌入式系统时所学到的一些东西,这些东西可以在桌面环境中重复使用。

附言:
我应该注意到,我在桌面领域不是新手,因为多年前我所有的爱好项目都集中在桌面开发上。

一般来说,嵌入式工程师在验证操作和处理有限资源时会更加严格

这也可以转化为早期的异常处理策略


最典型的例子是检查malloc的返回值。我看到很少有桌面软件会持续地检查它,但这在嵌入式环境中很常见。

拥有一套干净、组织良好的源代码是将其转化为“桌面体验”的关键技能我注意到,我编写和挑选的嵌入式项目通常比桌面上的同类项目干净得多。

许多只支持桌面的开发人员可以从让程序适合128K闪存和32K SRAM的经验中获益,更不用说只通过一两个LED和几个按钮就可以与用户进行有意义的交流了。这样做可能会减少应用程序行业特有的代码膨胀现象。:-)


即使您不转向直接的应用程序开发,嵌入式体验也能很好地转化为驱动程序开发、低级实用程序和长期运行的服务。所有这些领域中,对于成功的嵌入式开发人员来说,几乎是第二天性的学科仍然很有价值。

在切换到嵌入式环境之前,我做了将近5年的桌面开发人员。 我发现在嵌入式环境中工作更具挑战性,因为我们必须处理内存限制、CPU速度慢、交叉编译等问题


在学习了大量耐心、纪律和低级复杂性之后,桌面开发应该像在公园里散步一样简单。

嵌入式系统上的状态机/事件驱动编程与桌面上的事件驱动编程没有什么不同。您对嵌入式系统(尤其是电信嵌入式系统)上的这些编码技术有着丰富的经验,这将使您成为一名出色的桌面程序员

类似地,您的通信协议经验应该可以很好地转移到桌面上。大多数桌面应用程序都与网络有关