今天面试了BYD,本来想去做测试开发,但给的薪资不如意,于是放弃了。经过面试,聊了大概一个钟,从程序结构、软件设计、协议方面来展开探讨,和技术人员聊天真是实在有料,也让我反思一下技术开发的问题。
怎么才算做个好程序?第一,笔者以为用户在使用软件时按照业务流程自主完成使用,学习成本低;第二,程序可靠健壮,各种逻辑处理、故障处理应该考虑周全;第三,模块化设计,做好封装,方便以后迭代修改更新。笔者在面试时介绍了自己做的项目的LabVIEW程序架构,从数据流、事件结构、生产者消费者分别介绍了自己做的程序,解决需求。然后聊了一下状态机,笔者看过状态机的程序,但是在实际的程序设计中并没有使用的需求。
关于协议方面,汽车领域使用的是CAN协议,笔者使用得多的Modus协议。从协议的结构说起,怎么开展工作,笔者觉得LabVIEW程序设计最耗时的问题就是协议分析和调试测试,真正设计架构和编写代码的时间是很短的,得益于LabVIEW编程语言的便捷有效性,可以直接考虑业务逻辑,而不必花太多时间在代码上。这几年的工作,笔者发现自己是工程师思维,而不是程序员思维,着重于解决生产问题。
最后就是数据库问题,得益于自己使用MySQL数据库做开发,看过几本书,MySQL的工作基本可以应付。在数据中心中,数据量小,基本是将日志存入数据库,并发和数量级较小。厂家交付的系统遇到最大的问题就是数据库写入磁盘时呈现脉冲式的磁盘IO过高。程序设计时考虑节流技术,除了网络节流还有数据节流,即是如果数据变化率很小,或者在一段时间内变化较小,那么就不更新数据库。
LabVIEW开发平台的优势,可以将精力放在业务价值上,真正的程序设计并不仅仅是码农,而要有工程师的思维。
网友评论