前言

写了多年的LabVIEW程序,你是否面临这样的问题

总是在做一些重复的工作,感觉很没有意思;
总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感;
总在天加班,没有时间去提高自己;

你也知道简单的重复并不能带来效率的提高,却不知道走向何方,无奈而又焦急着?

小黑今天继续带你聊一聊LabVIEW吸星大法,让你在工作中越来越有效率,体会一切皆可掌控的妙感~

记住,我们的口号是 : 告别重复造车,你的就是我的,万物皆为我所用~

引言

上一篇,我介绍UI控件的复用。通过UI Control的个性化自定义,可以在前面板层级实现复用和积累。今天介绍函数选板层级的复用,通过对个性函数选板的工作自定义,实现个人函数库的打造。

下面几张图贴出来的是小黑专属的函数选板,如果你学会了这招吸星大法,也将拥有属于自己的库函数。
Elton Architecture
Foder API
 
TestStand API
Quick Drop API
UI API

什么是函数库的复用?

函数库的复用指的是将工作经验积累,固化为LabVIEW常用函数,实现工作经验在函数上的展现。

为什么要进行函数库复用?

大多数工程师都处在一个特定领域,较长时间做着某一个领域的测控系统。

通过努力工作,伟大的工程师们会经历大大小小的坑,形成每个人特有的工作经验。这些工作经验促使工程师们遇到相似问题时可以顺利解决,然而,大多数时候,经验留在了的脑海中,很难去传授或者分享。

其实,只要对的这些经验稍加总结,每个人都可以将自己的经验以文件或者代码的形式表达,从而把脑袋中的知识固化,形成一套属于自己的工具。

LabVIEW工程师通过总结抽象代码工作,形成特定函数库,这样做会将重复编码降低到最少,抽出更多时间进行更有创造力的活动。

谁来进行函数库复用?

无论你是还未毕业的学生,或者是出入职场的菜鸟,还是久经职场的工程师,函数代码的复用都应当不停的进行,毕竟,代码复用对于一个软件工程师的诱惑还是非常大的。如果你还没有复用过代码,或者复用仅仅是从另一个项目中扒一些代码出来使用,那么函数库复用的这套方法可以让你轻松积累。无论是对自己的工作经验总结还是与团队小组分享,这些内容都将获益匪浅。


 什么时候进行函数库复用呢?
函数复用主要在两大环节使用,即总结阶段和使用阶段。

一般在项目结尾阶段,无论代码写的怎样我们都会获得项目发起人的验收。但软件工程师的复用工作才刚刚开始。通过分析整个软件在设计上的成功和失败之处,总结当前项目的复用点,将项目中有价值的VI和库函数重新整理设计,形成自己的库函数并添加到属于自己的函数选板上。随着时间的推移,函数功能愈加丰富,做项目也会更加得心应手。

总结出来的代码如果没有经过审核,那代码的稳定性和可靠性仍需验证。在新项目开启的时候,使用上一个项目所总结的代码,去验证迭代,不断升级自己的用户函数库,几轮之后,你将形成属于自己的代码风格。

怎么进行函数库复用呢?

核心:总结归纳,吸收利用!

吸星大法之总结归纳

总结归纳说起来容易,做起来却是颇有难度。小黑也不知道什么样的方法是最好的,这里仅仅介绍一下我是如何做的。

在刚开始进行函数库复用的时候,小黑严格遵循归纳总结的方法,在项目完成后单独抽一段时间去分析自己的代码,并形成了一套API库。

后来出于事后总结耗时间等原因,小黑在项目创建的过程就开始考虑部分复用问题。在设计代码模块的时候,提前问自己:这个代码模块是否有复用价值.,是否可以独立解耦。

如果回答有,将其单独放置于一个文件夹中,并且对文件的使用采用统一的命名规范,尽可能的将代码与其他模块解耦,减少或者固化特定的接口,最终实现复制文件夹即可复用代码的效果。下图即时小黑整理的一些可复用模块仅供参考。
 当然,在设计流程测试的时候,也编写一些驱动可服用模块

一开始文件夹规则设计不明确,建议大家都从简单复用开始。但是只要有归纳整理的心思,你将开启了复用积累的道路,持之以恒,积累会让你效率倍增。

吸星大法之吸收利用

与UI控件复用类似,为了避免重复造车,你需要去各个论坛或者VIPM狩猎自己可用的优秀的工具包。一旦找到心仪的猎物,马上将这些工具包Down下来,重新整理这些工具包,与自己的工作需求与代码风格结合,改装到自己的库函数中。这里需要强调的是,下载来的工具包可能功能丰富,而你只用到里面很小的一部分,摘取出来,而不是使用整个工具包,这将使得你有更大的动力去使用他们。

另外,如果说你不知道如何进行函数复用,不妨好好看看优秀的复用是怎么做的,别的不说,只谈OpenG工具,我们就可从中学习到复用的很多技巧。下面这个选板是OpenG的主选板,可以借鉴其分类思路和图标设计思路。

OpenG工具包通过对LabVIEW常用功能增强,实现了许多功能函数,从文件夹层级,可以了解到分类标准,吸收过来,也建立一套属于自己的API库。
从VI命名可以学习到一些命名的方式和规则,有助于我们写出工整的代码

我们会看到很多类似OpenG的工具包,这些工具包一定要妥善利用,除了直接下载使用,你可以在其功能上重新封装定义,形成一套自己用得顺手的工具,从而进一步拓展工具包在特定领域的积累。下图所示是小编一部分树形工具包的范例,在传统的Tree工具包上,根据特定的Tree操作,可以拓展自己在特定UI操作中的工具包。

后记

LabVIEW吸星大法,将你的经验积淀,吸收他人所长,形成属于自己的知识宝库。本文一样没有仔细展开如何去实现,只是从思想上引入了函数复用的概念,希望可以对大家重视经验在函数复用上的积累。

如果本文对你有所触动,真心希望你能去尝试尝试,体会一下积累的价值,告别盲目的加班,让工作更加有效率~

术业有专攻,闻道有先后,在知识大门前,我们可以略窥一二,却不知天外有天,人外有人。保持一颗谦逊的心,专注于技术的提高,精益求精~
 
-----谨以此文献给落入LabVIEW坑却仍不放弃的各位,我们不是专业的软件工程师,却有一颗上进的心。
 
 

最新文章

  1. js弹框3秒后自动消失
  2. [Html5]sessionStorage和localStorage的区别
  3. PHP基础之 string 字符串函数
  4. 一个CSS中Z-index的用法
  5. leetcode course shedule
  6. poj 3281 最大流建图
  7. Java Buffer
  8. Vue之八 HTML5 History模式
  9. AngularJS进阶(十七)在AngularJS应用中实现微信认证授权遇到的坑
  10. Java中最常用的集合类框架之 HashMap
  11. docker 简单介绍及基础命令运用
  12. docker下搭建zipkin for mysql
  13. 大数据框架hadoop服务角色介绍
  14. ubuntu14.04 配置g++工具,并运行一个简单的c++文件
  15. NPOI 之导入导出
  16. Mysql的union
  17. PAT甲级1127. ZigZagging on a Tree
  18. Sql Server数据库自增长字段标识列的插入或更新修改操作办法
  19. 201621123006 《Java程序设计》第10周学习总结
  20. s12-day03-work01 python修改haproxy配置文件(初级版本)

热门文章

  1. struts2笔记(2)
  2. tp5 model 的时间戳
  3. linux部署pxe+kickstart批量安装linux操作系统
  4. lvs+keepalived
  5. extarea输入的换行在网页上正常显示
  6. Lintcode 9.Fizz Buzz 问题
  7. NoSQL与RDBMS的九点区别联系
  8. MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)
  9. 关于python中的字符串编码理解
  10. Ubuntu菜鸟入门(九)—— 支付宝支付控件安装