G Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
antsundq

Refactoring Suite for LabVIEW

Status: New
Description
To cite Sam Taggart: "A good refactoring suite for LabVIEW is desperately needed. IMO the worst offenders are classes/interfaces", taking the words out of my mouth. 
 
Good tooling for automated refactoring can speed up development and reduce risk of making mistakes. By automating tedious tasks the developer may focus on design over housekeeping. Most other languages have good tools for refactoring through various IDE:s, and there is not really any reason we could not have that as well.
 
I'm sure there are a lot of tools out there I am not aware of, which could be leveraged. I think the right tools should be collected or developed, to be put into a suite of high quality refactoring tools.

Submitter
Anton Sundqvist
 
LabVIEW Compatibility
LabVIEW 2020 (first version supporting interfaces)
 
How would the user interact with this tool?
Through suitable LabVIEW project integration.

Distribution Method
VI Package (.vip)

Development Target Cost
$?

Other Notes
I'm happy to work on this myself together with whomever wants to contribute. I think we need some community guidance and suggestions for what tools are needed and how they should be implemented in LabVIEW. The purpose of this post is to gauge the interest within the community and gather ideas. 
I'll start with a few tools I would like to see, let's see if we can get it rolling:
- Extract interface from class
- Override and save all must override VI:s
- Generate constructors/destructors (not that they are strictly needed, but they are useful for communicating intent. Using them by convention makes it easier to locate each place a class is instantiated, compared to block-dropping)
6 Comments
John_Neutron
Member

I agree with the suggestions above and have the following bug-bears (although perhaps these are more of a symptom than the actual cause of the pain)

 

1. I find that I can end up with class members with no callers after some manual refactoring.

 

The project tool of "find items with no callers" gives a modal window which can export to a text file so it is is basically unusable as a tool. I would love a tool which was better.

 

2. I can end up with orphaned VIs/ctls on disk which are no longer part of a library/project.

 

I have quick tools to do a clean-up but they can be a bit blunt as I never have much time to devote to them. Something a bit more interactive in how it presents results and guides removal would be great.

 

 

 

Taggart
Trusted Enthusiast

I suggestion I have would be to start an open-source GitLab project and hold periodic pair programming sesstions (1/week). and see what we come up with.

 

Anyone interested in that?

Sam

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
Schliepe
Member

@Taggart I would be interested in that.  Give me a chance to try come pair programming as well as help with this, finding orphaned VIs and getting rid of them would be super helpful.

 

Erich

 

Taggart
Trusted Enthusiast

@Erich,

 

I'm kind of busy the rest of this year, but let's do this start in the new year.

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
Schliepe
Member

I absolutely agree.  Have a great end of the year and we'll circle back in January.

Schliepe
Member

Hey @Taggart, how are things going and how does the rest of January and/or the first part of February look to try and get something moving on this?