返回首页

开发者名言:代码、MCU、电路设计

嵌入式开发实践名言集涵盖编码、电路设计、MCU 固件和管理。格言强调测试、CLI 调试和连续性的重要性。对中高级专家有用。

嵌入式开发者关于代码和硬件的智慧名言
Advertisement 728x90

开发者格言:站会和代码审查中的智慧

多年来从事嵌入式开发,积累了一些短语,逐渐升华为格言。这些格言捕捉了微控制器编程、电路设计和项目管理的真实情况。这里精选自12年一线经验:从代码原则到MCU外设。

关于代码和架构的格言

程序员分两派:从零写代码的,和移植开源库的。计算机作为计算设备的通用性是教科书定义——不过并非每个物理与技术专业的毕业生都认可。

关键原则:

Google AdInline article slot
  • 一切皆配置:最好的代码就是配置。
  • 代码分离,配置分离。
  • 好代码经年累月结晶而成。
  • 写作遵循最小惊奇原则。
  • 最好的算法就是表格(有限状态机归根结底就是图和表)。

“编程是一场马拉松,不是短跑。”(Robert Martin)

代码一致性胜过美观:“统一写代码——丑点也没关系。”数组是一切的基础。每个setter都需要getter:xxx_write() 对应 xxx_read()。函数名就是其注释。注释越少,git diff 越干净。

在C语言中:如果一个函数放不进一个屏幕,可能就不工作。任何任务都能一行解决——函数调用。最好的注释是文件名。

Google AdInline article slot

测试和CI/CD

没有CI的仓库就是废纸一张。构建系统必须统一,无论用什么编辑器。没有单元测试的代码?同理。

“未经测试的程序不算工作。”(Bjarne Stroustrup) “TDD是专业人士的选择。”(Robert Martin)

知识要书面传承,便于顺利交接。可移植代码库是未来项目的基石。所有协议归根结底就是设备间的memcpy。

Google AdInline article slot

电路设计和硬件

硬件工程师调侃:像CPU一样——拒绝过压。电气工程是研究缺失连接的科学。开发从调试工具开始。

所有传感器都在测温度,只不过方式各异。超过100 MHz,信号就变模拟了。电子学中一切都是ADC或DAC:编解码器、收发器,甚至GPIO作为1位DAC。

接口选择:SPI优于I2C。俄罗斯人设计给欧洲代码用的板子,欧洲人为中国板子写代码。最好的元件是没有元件。

微控制器和固件

硬件优先,软件其次。原理图越简单,固件越棘手——反之亦然。没有硬件的固件就像凭照片雕刻。

外设同步核心时钟。固件从引导加载程序起步。一复位解决七烦恼。杀手级功能?固件更新。

通用协议越来越多:从12种到13种。汇编就像用镊子吃荞麦。NVRAM能升级任何东西。UART-CLI必备:没有它,就是插上祈祷。

UART日志是固件的黑匣子。MCU是捣碎数字的臼;x86是搅拌机。CLI激发创造力,GUI把你框死。有限状态机是MCU的金锤。

合格的MCU需要:运行时间计时器、心跳LED、UART-CLI、NVRAM、单元测试。否则就是无谓枷锁。固件不会自己写。

模块化意味着同时构建多平台。

管理和项目

我们构建它不是因为简单,而是因为以为简单。教的一半东西是废话——诀窍是分辨哪个(Larrabee定律)。

按规格开发:别镀金。谈判就是工作。“按要求什么都不做”?任务完成。

“负面结果也是结果。”(Niels Bohr)

坏方案配好报告最终会被砍;好方案配坏报告当场毙命(Akin定律)。管理就是别挡道。

质量权衡最终会正向平衡。别给狗拴上油箱。现在找bug胜过货架上发现。头脑风暴?就是想法烤肉。

构建的不是他们要的,而是他们需要的。完美是优秀的敌人。坏事自会发生。快而糙被记作糙;慢而牢被记作牢(Korolev)。

关键要点

  • 代码必须可移植且可测试:TDD、单元测试、统一CI。
  • 嵌入式中:UART-CLI、日志、有限状态机——调试必备。
  • 硬件优先:简单板子让软件更易。
  • 项目按规格,文档书面。
  • 继任规划:知识固化,仓库整洁。

— Editorial Team

Advertisement 728x90

继续阅读