用C++写程序的一些感悟
前言
近期使用C++有了一些心得很感悟,这里整理一下。
心得1
如果只会使用LabVIEW写程序,还想要进一步深入程序设计,一定要学习一门文本语言。
什么是会用LabVIEW
会用是个比较笼统的概念。
- 只要能写一个简单运行的程序叫做会用
- 能写稍微复杂的仪器控制程序叫会用
- 能写大中型测控程序也叫会用
这里我认为至少能写稍微复杂的多个仪器联合控制程序,完成基本的测控系统应用叫做会用LabVIEW,用时间评估来说,使用LabVIEW作为主要编程语言至少工作2年以上。
什么是深入程序设计
写LabVIEW程序本身比较简单,大量的工作只是去学习现有的库如何去使用,然后集成到自己的工作需求中来,只要了解了基本的问题解决方法,很多人都可以胜任常规的编程任务。
所以,随着项目需求的演进,势必程序会越来越复杂,如何有效的完成任务,如何让程序稳定可靠,如何容易拓展,这些都是程序架构考虑的事情。
如果你已经掌握了基本的LabVIEW编程功底,工作中大部分工作内容已经开始接近重复的编码,那么深入程序设计也许就是下一步考虑的事情。
为什么学一个文本语言
LabVIEW程序设计的架构从简单的状态机到稍微复杂的生产者消费者,从面向对象到ActorFrameWork。效率上讲,更高级的架构会让程序开发变得相对容易,也确实提高了可拓展性和维护性。
然而,无论如何变化,本质上还是没有摆脱语法的限制,尤其是对面向对象的设计,图形化的编程本身会限制思考效率,很多面向对象思想的设计仅仅在文本编程才会凸显设计优势。
我之前学习LabVIEW面向对象一直很慢,以为是自己比较笨,抽象思维很差,后来用文本学习后发现很多不理解的东西换个语言去理解很容易。编码方法和思维体系不同,真的会影响学习效率。
设计模式是面向对象设计中最简单的一环,所以GOF中也会提到设计模式是可复用程序设计基础….基础….真的只是基础…
心得2
近期在做产线测试的时候,新产品导入会对原有测试程序产生冲击。
而使用面向对象的程序接口设计+简单工厂模式极大的加快了程序开发。虽然各种控制指令和操作方式均发生了变化,但适应新产品到秀跟的代码完成测试只用了2个小时左右,真正体会到思想指导实践带来的效率提高。
心得3
在使用LabVIEW程序设计时,有一个设计思想是“一切皆可配置”,但是由于语法限制,这一想法一直实现的比较牵强。
- 使用数据结构直接存储配置文件会遇到配置文件的拓展问题
- 使用Config Read来扯线也是比较恶心的事情,重复的编码效率非常低
- 后来使用了AQ JSAON存储好了很多,不过代码就相对量比较大了
用C++后,读写配置文件只是一句话的事情,所以一些皆可配置变得简单了许多,感觉还是很不错。
心得4
有人说LabVIEW编程简单,其他编程语言复杂,经历过两者之后,发现
- LabVIEW测控程序简单,是因为有丰富的库,如果公司有验证过的文本库,编码效率不比LabVIEW低
- LabVIEW语法简单,是因为动态语言,与其相近的Python,MATLAB等语言也一样简单
- LabVIEW编写UI界面简单,是因为UI库相对丰富一些,C#里面有更多更专业的库,一样简单
当然,LabVIEW作为一些优点的集合,必然在一些情境下更加具有优势,也必然在另一些场合劣势明显。
文本编程与图形化编程各有优劣
- 如果做科研探索,原型验证,首推LabVIEW
- 如果做程序架构学习,换文本语言学习,效率和效果都会翻倍
总结
设计思想跟语言没有关系,学习设计思想却跟语言有很大关系
近期一直在充电学习,所以更新不是那么频繁…讲真的,学习的感觉蛮好的,工作后惰性越来越强,找点新东西学习来克服惰性是不错的方法。