LabVIEW 吸星大法 - 看见的好东西都是我的(下篇)

前言

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

总是在做一些重复的工作,感觉很没有意思;

总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感;

总在天加班,没有时间去提高自己;

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

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


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


引言

经过了前两篇的介绍,相信接触LabVIEW你已经了解一些复用和积累的基本常识。

今天谈的下篇同样是在积累和复用方向上延续,不过这次不谈技术,我们来谈谈情怀。

小黑接触LabVIEW其实很单纯,是因为虚拟仪器和测控技术与仪器名称相关,感觉和专业相关,所以就报了社团去学习。

慢慢的,当LabVIEW接触深入后,它已经告别了一个工具,逐渐成为了自己强迫症的体现。作为一个程序设计师,愈来愈无法容忍丑陋的代码,所以我从图标开始设计,始终要求写漂亮的程序,而不是单纯的实现功能。

漂亮的程序可读性增加,而可读性的基础是SubVI图标。所以,今天我们谈的是UI图标复用。

UI图标复用是什么?

UI图标复用指的是,通过对UI的Template,UI的ICON复用,实现图标的快速和批量设计,达到加速LabVIEW开发的目的。

下图是小黑的UI Template,通常用于快速设计UI的框架

下图是小黑的Icon图标库

为什么进行UI图标库复用?

如果用PDCA流程检查LabVIEW程序员开发程序的过程,很容易发现这样一个现象。

如果你为了图快速设计程序,尽可能的简化图标设计,从而导致程序中充满大量的默认图标,程序可读性非常差。

如果你为了提高程序可读性,花费大量的时间设计图标,当大量VI需要开发时,图标设计将浪费很多时间。

所以,快速的设计LabVIEW图标会极大的提高LabVIEW的开发速度。通过简单的复用积累,图标设计的工作将简化到最低,你会留出更多的时间用来软件架构的设计和思考。

复用图标之前,你必须要明白以下几个问题

1.哪些图标是需要复用的

事实证明,一个软件程序中,VI总是可以按照不同的标准分为不同的类别。尤其是相同功能的API应该尽可能保持相同的图标模板,以方便后续阅读中轻易区分。

2.什么时候使用什么样的图标

图标的复用是一门艺术,你只有知道如何复用图标,如何设计图标易于理解,才会写出可读性很好的程序(至少说写出自己可以比较容易看懂的程序)。如果写的程序自己看着都费劲,那更别提别人了。

谁来进行UI图标复用?

设计LabVIEW程序所有人员,抑或是读代码的人,或者接别人留下的坑,只要你想要快速的阅读代码,优秀的图标设计将会给程序设计带来极大的益处。

如何进行UI图标复用?

UI图标复用可以让你花费小时间去节约大量开发时间,并且你的程序可读性将会极大的提高。如何进行呢?

小黑总结了以下三点供大家参考。

吸星大法--积累

吸星大法--归档

吸星大法--善用工具

积累

在三篇吸星大法中,小黑一直在强调一个概念,积累和复用。在做UI图标复用的时候,积累同样必不可少,小黑介绍一下自己的工作习惯,仅供大家参考。

当遇到一类驱动时,尽可能的设计一个Template,因为这个驱动很有可能包括Initialize,Action,Read,Write,Close这几个操作,所以使用同一的Template可以让你保持一致的程序风格。

小黑的图标设计总是以一个自己精心设计的基准图标开始(哈哈,所有子VI都打上了Elton的Logo,只要一看就知道这些程序是我写的.....)



 当我设计一个机器人操作驱动时,我讲在基准图标上,添加一些跟主概念相关的图标,这样,我所有机器人相关的图标就有了模板。

如果我设计机器人的初始化和关闭,我可以在Glyphs中设置如下的图标

怎么样,是不是简单又好看(认为不好看的可以自行设计,这里仅仅是作者的自我陶醉....)

So,整个过程由两个关键点

1.在设计系列SubVI时,提前将Template存储下来

2.可以使用快速搜索来找到自己需要的图标(我不得不劝说使用中文版的LabVIEW开发者,使用中文版永远体会不到搜索的快感) 

归档

Template和Glyphs在不停的积累后,你将会有大量的图标库,如果仔细整理,你将会再次从整理中获益。图所示的一些Template就是在不同设计中用到的图标(有些图标是从Unclad那里吸星大法用到的,这里表示对亮神的佩服)

用于设计类的图标头

用于设计FGV的图标

用于一些驱动的图标

用于表示文件类型的图标

用于设计Tree的图标库



 等等等等.....

善用工具

如果你没有好看的图标怎么办

1. 能不自己搞就不自己搞,上网扒一扒,有很多的

2. 如果不喜欢网上的图标,可以自己设计,推荐一款图标设计软件IconCraft,我是使着非常的舒爽。比LabVIEW的图标编辑器复杂很多,可以设计一些精细图标。



 3. 如果你不知道有工具包你就Out啦,图标设计在VIPM和NI Community是有不少图标工具的,这里我非常喜欢的一个是GDS(可以自行百度,考验大家的搜索能力了),具体功能给大家Show一下。

可以在项目中,直接编辑类的图标

可以自动根据VI名称生成图标,并且可以自动配色(大部分情况下虽然配色很丑....)

可以快速修改类的连线

功能强大,比自己配置方便许多,可以轻松设计图标线束了~

后记

LabVIEW吸星大法,将你的图标精细设计,你将写出更加漂亮的程序,在效率和美观上,我们可以做到兼顾,只要你愿意去做努力。

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

术业有专攻,闻道有先后,在知识大门前,我们可以略窥一二,却不知天外有天,人外有人。保持一颗谦逊的心,专注于技术的提高,精益求精~

 

-----谨以此文献给落入LabVIEW坑却仍不放弃的各位,我们不是专业的软件工程师,却有一颗上进的心。

时间: 2024-10-10 16:09:48

LabVIEW 吸星大法 - 看见的好东西都是我的(下篇)的相关文章

LabVIEW 吸星大法 - 看见的好东西都是我的(上篇)

前言 写了多年的LabVIEW程序,你是否面临这样的问题 总是在做一些重复的工作,感觉很没有意思: 总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感: 总在天加班,没有时间去提高自己; 你也知道简单的重复并不能带来效率的提高,却不知道走向何方,无奈而又焦急着? 小黑今天带你聊一聊LabVIEW吸星大法,让你在工作中越来越有效率,体会一切皆可掌控的妙感~ 记住,我们的口号是 : 告别重复造车,你的就是我的,万物皆为我所用~ 正文 学习LabVIEW是在初期是一个很吸引人的事情,它让你

LabVIEW 吸星大法 - 看见的好东西都是我的(中篇)

前言 写了多年的LabVIEW程序,你是否面临这样的问题 总是在做一些重复的工作,感觉很没有意思: 总在不停的写代码,做类似的控件,实现相同的功能,丝毫没有成就感: 总在天加班,没有时间去提高自己; 你也知道简单的重复并不能带来效率的提高,却不知道走向何方,无奈而又焦急着? 小黑今天继续带你聊一聊LabVIEW吸星大法,让你在工作中越来越有效率,体会一切皆可掌控的妙感~ 记住,我们的口号是 : 告别重复造车,你的就是我的,万物皆为我所用~ 引言 上一篇,我介绍UI控件的复用.通过UI Contr

创业的时候招人难,什么东西都自己做,就是不拿工资。如果吃不上饭了,那还是不要创业。服务器很便宜

有一些感触,我们出来创业也有8,9个月了.我们肯定无法和文章中的那些人和团队比,我们技术就一个人,ui一人,商务1人,内容运营2人.我作为团队中唯一懂技术的人,有一些自己的看法和困惑,和大家聊聊. 看法: 1.不要神话创业 没什么大不了的,说简单点就是几个人原来在各个公司上班的人,想实现一些自己的想法.然后谈妥了,大家出来做.谁都能创业,出去吹牛不要老拿自己创业说事儿!这种人见太多了! 2.不要因为工作不下去了就创业 这种人很多的,我周围非常多.几个在公司里,本职工作都没有做好的人,根本没有创业

java新手的第一个小东西,或许小东西都算不上=。 =

import java.util.ArrayList; import java.util.Scanner; /** * 系统类 * * @author Administrator * */ public class Systems { private Scanner input = new Scanner(System.in); private Database db = new Database(); //用户数据库 private ArrayList<Users> usersList =

所有东西都是流动的,流动的东西才可以变得柔软,柔软的东西才有包容力(转)

以下为邓康明分享整理: 很开心,看到这么一个事儿办成嘉年华一样的活动.我估计大家心里着急,今天就交流三点. 一.做出选择后,你就被这个选择所决定 我有一个看法:每个人都是一本书,这个书里面可能波澜壮阔,可能清澈如小溪,但这些都不重要.今天无论大家是找工作还是找人,关键这本书是你自己写还是别人写.有很多事情的出发点会决定了你今天过得好不好,和两三年以后过得好不好.在这个过程中,在今天这么一个状况之下,你自己的选择是什么样,你就被这个选择所决定. 你要去创业,就去创业,做了这个决定,那你就被这个决定

如果你在一款游戏里被困七天,获得的所有东西都能带回现实,但是死亡也会真的死亡,你会选择哪款游戏?

首先七天按照我们的时间算 即玩一个游戏七天 会死,也会获得游戏里的东西 首先,RPG 然后,选三国群侠传 七天这个游戏,睡客栈很快恢复 那些物品都是古董,一大堆的古董 还有各种神奇物品 只要不是脸太黑,都不会死吧... 或者干脆一级就不走了,在出生点等回家,身上也有超多古董文物了 有仙术,古董,神物,爽,无敌了 原文地址:https://www.cnblogs.com/yangzihong/p/12585847.html

访问gameObject引用或者某个组件的引用,最好的方式当然是在脚本Awake的时候就把这些可能访问的东西都缓存

http://www.tudou.com/listplay/Mth3X4N3Hw4.2015.04.10http://www.tudou.com/listplay/5lIjM45KUtE.2015.04.10http://www.tudou.com/listplay/Gl-xdInlCGM.2015.04.10http://www.tudou.com/listplay/kK8KH38IjPA.2015.04.10http://www.tudou.com/listplay/YkWtCFlXDas.

第一次做c/s架构的c#程序,许多东西都一步步摸索,总结一些经验如下:给初学者一些福音

1,首先是窗体之间的数据传递,以及关联窗体的控制? 父窗体里面new一个子窗体出来,把子窗体的构造函数设置为带参的,将父窗体的参数通过构造函数传递过去,如果关联窗体控制则直接将父窗体传递到子窗体中即可. 如下: 父窗体: FormMain frm = new FormMain(this);            frm.Owner = this;            frm.MdiParent = this.MdiParent;                                 

低耦合高内聚 - 不要把所有东西都放在 vuex中

我就举一个例子.比如,我想看电视,是否需要遥控器??请认真思考这个问题. 看似电视与"我"已经解耦了.然而,我需要通过遥控器去看电视,我的目的是看电视,但是我却需要依赖遥控器这个中间件.这就变相地将"我"与电视的依赖关系,变成了我与遥控器的依赖关系.虽然"我"与电视解耦了,但是"我"与遥控器却紧密联系在一起. 那么回到最初的问题,我的目的是看电视.我是否一定需要与电视解耦呢?答案是不一定!以此为基础,你可能会发明一个人可以直接