用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
  • 如果做程序架构学习,换文本语言学习,效率和效果都会翻倍

总结

设计思想跟语言没有关系,学习设计思想却跟语言有很大关系

近期一直在充电学习,所以更新不是那么频繁…讲真的,学习的感觉蛮好的,工作后惰性越来越强,找点新东西学习来克服惰性是不错的方法。

 

来自为知笔记(Wiz)



posted @ 2017-11-26 10:15  小黑的守望  阅读(2130)  评论(0编辑  收藏  举报