用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)

时间: 2024-11-07 23:18:51

用C++写程序的一些感悟的相关文章

思考程序与写程序的关系

首先引用孔夫子的一句话:学而不思则罔,思而不学则殆. 首先,学而不思者罔这句话的意思就是如果做一件事情,我们只是为了完成任务才去做这件事情,如果我们不对问题进行思考,那么我们就会感觉知其然而不知其所以然. 思而不学则殆这句话就是,如果我们不动手去做,而一味的去思考结果,那么就会在一个点停滞不前. 其实我很赞成孔夫子的话,我个人认为这2句话很适合编程的人,当然“学而不思者罔”这句话,我个人觉得更适合于我们程序员. 其中造成学习而不去理解它的原理有几点原因. 任务本身的进度很赶,没时间去研究那么深刻

写程序引发的思考

 最近2个月除了完成日常的工作以外,还在练习数据结构这一块的知识,因为感觉数据结构自己还不是很熟悉,最近 完成的练习如下: 数据结构练习连接:http://blog.csdn.net/qlx846852708 1.顺序表的实现 2.单向链表的实现--通讯录 3.队列的实现--银行排队系统 4.c语言猜数字小游戏 5.计算圆周率 6.输入年.月.日计算星期几 7.linux下tcp和udp的通信 8.熟悉了makefile的编写 9.linux下文件夹加密小程序 多动手: 总之,感觉就是还是要

一个平时写程序通用的Makefile样例

//需要目标名和程序名字相同 .PHONY:clean all //伪目标 CC=gcc CFLAGS=-Wall -g BIN= //目标 all:$(BIN) %.o:%.c $(CC) $(CFLAGS) -c $< -o [email protected] clean: rm -f *.o $(BIN) 平时写程序肯定需要反复的修改,有了这样一个makefile程序会方便很多的.动手试一下.

用CIL写程序:写个函数做加法

前言: 上一篇文章小匹夫为CIL正名的篇幅比较多,反而忽略了写那篇文章初衷--即通过写CIL代码来熟悉它,了解它.那么既然有上一篇文章做基础(炮灰),想必各位对CIL的存在也就释然了,兴许也燃起了一点探索它,掌握它的欲望.那么小匹夫就继续扯一扯CIL,接下来的几篇文章也都以上一篇文章中的那个CIL实现的Hello Wolrd程序为基础,继续通过写CIL代码实现一些功能的方式来和各位探讨交流,同时也加深自己对CIL的掌握和印象. 人生就是做加法 "我的肩上搭着她得衣裳,我嗅着她留在衣服上的体香..

019写程序在一棵二叉树中找到两个结点的最近共同祖先(keep it up)

写程序在一棵二叉树中找到两个结点的最近共同祖先. 分两种情况来讨论这个题: 第一种情况结点中没有指向父结点的指针 第二种情况接种有指向父节点的指针 我们先看第一种情况,结点中没有指向父结点的指针. 我们可以采用暴力搜索每一个结点,如果这个结点的子树中 有已知的两个结点,那我们就继续沿着左右子树找,如果左子树 能找到,我们就继续沿着左子树找,如果有子树能找到,我们就 沿着右子树找,不存在两个子树都能够找到. 代码: struct TreeNode {<pre name="code"

代写程序|java二叉树字典查询(qq 928900200)

This assignment will help you practice and understand better the Binary Tree and Binary Search Tree data structures, their operations and implementations. You are to design a small dictionary using the Binary Search Tree data structure. Each entry ma

关于郭天祥51开发板无法烧写程序问题的解决(Prolific USB-to-Serial Comm Port)

1. 事件背景: 由于使用了win8系统,之前购买的郭天祥C51开发板在通过一个两头都是usb口的下载线下载程序时出现了问题:下载工具stc isp无法连接到开发板上的串口,所以无法下载程序到c51开发板上,错误显示如下 2. 寻求解决方法 本人尝试了网络几乎所有的方法,包括更新驱动.恢复驱动到旧版本(可能有用,我没用)等等方式都没有成功.这导致本人当时几乎放弃了这块板子.在尝试过程中我也想过用u转串连接板子上的串口到电脑的usb口来下载程序,但是也没有成功. 3. 踏破铁鞋无觅处,得来全不费工

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形

可变变量常用用于在写程序的时候不确定需要用哪个变量去处理数据的情形.$gif = “logo.gif”;$jpg = “logo.jpg”;$png = “logo.png”;假设用户可以填写一个表单,以决定其想要什么类型的logo图片,$f1 = $_GET[‘fileType’]; //用户选择所需要的图片类型的后缀,可以是“gif”,“jpg”,“png”sendFile( $$f1 ); //假设sendFile()可以发送文件,

关于自己为什么一个妹子想写程序并且希望能够做的不错的想法(写给自己的总结)

很小的时候天天缠着外婆还有姐姐教我画画,那时候最大的愿望是做个画家:后来上了学,对居里夫人特别崇拜,我想自己要为将来做个科学家努力了:初中高中6年一直都是天天扑闪着好奇的眼睛乖乖听课的~我也不知道我为什么对什么都感兴趣:好吧,等我上了大学突然发现也许这才是生活,想为父母减轻一点负担同时为了证明自己可以挣到钱~所以我得为自己的生活费操心了,刚开始和几个学长去发传单,忙活一下午才十几块钱,那两个学长时不时偷懒,只有我傻乎乎的一张张的发,发完了自己的还把学长的拿过来替他们发了,自己忙的不亦乐乎,当然学