From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
07-17-2016 03:12 PM
I will be presenting [TS9518] on the subject as part of the LabVIEW Champions Track at NIWeek 2016 on Wednesday, August 3 in room 15 (don't miss other Champion’s presentations in the same room as well). An alternative title is Writing Better Code Faster.
This is a substantially improved version of the presentation I gave at the CLA-E Summit in Rome (April 2015) – you may want to join in even if you saw the old one. As had been mentioned in the NIWeek Speaker Training Course “… most of us need to hear something 6 to 7 times before we remember”
I am passionate about bringing contemporary SW Development Methods to the LabVIEW community. This presentation purpose is to demonstrate how applying SOLID Design Principles can result in leaner and more scalable SW designs and code. I will hand you a map and show the trailhead, but walking that trail is a personal journey and no one can do it for you. Getting to the summit takes time and effort - but the views are well worth it
On a serious note - learning how to write better code faster will help you stay relevant as SW Developers and make LabVIEW Ecosystem a better place …
I’ve set a humble goal for this presentation – 20% of attendees getting the Agile Software Development book by Robert C. Martin and half of those to start reading it before the next New Year Resolution season …
I would greatly appreciate your feedback (and a quick note from those who got the book and/or started working on it) to this thread.
Happy hiking,
Dmitry
TS9518 References & Resources
General SOLID Resources
[1] Agile Software Development, Robert C. Martin, Prentice Hall, 2003
[2] Inversion of Control Containers and the Dependency Injection Pattern, Martin Fowler, 2004
[3] Dependency Injection, wikipedia.org
[4] UML Distilled, Third Edition, Martin Fowler, Addison-Wesley, 2004
LabVIEW SOLID Resources
[5] On Using Dependency Inversion, Dmitry Sagatelyan, CLA Summit 2014, Austin
[6] Going Agile: How Applying Agile SW Design Principles Changed My Designs and Code, Dmitry Sagatelyan, CLA Summit 2015, Rome
[7] Computer Science for the G Programmer, Year 1, Stephen Loftus-Mercer, Jon McBee, NIWeek 2014
[8] Computer Science for the G Programmer, Year 2, Stephen Loftus-Mercer, Jon McBee, NIWeek 2015
[9] Principles of Package Design, Jon McBee, CLA Summit 2016, Austin
SOLID Design Examples
[10] Actor Programming without an Actor Framework, Dmitry Sagatelyan, CLA Summit 2015, Austin
[11] Error Handling for LabVIEW Architects, Dmitry Sagatelyan, CLA Summit 2016, Berlin
Other
[13] HALitosis : Quit Writing HAL (Hardware Abstraction Layer) That Stink !, Norm Kirchner, CLA Summit 2015, Austin
Message was edited by: Dmitry
Added Presentation Slides
07-18-2016 02:26 PM
This is one of my favourite books (well, the C# edition updated by his son anyway). But given I have had it for several years I don't think you can count me in the 20%
08-11-2016 02:06 PM
How does this book compare to Clean Code by the same author?
https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
08-12-2016 02:08 PM
I do not have the Clean Code book, but based on Contents Section I see that it covers different issues (clean coding) and does not mention Agile OO Design Principles. There is also a The Clean Coder book (A code of Conduct for Professional Programmers) - a fun reading mostly about personal values, team dynamics, etc.
There is also a book Agile Principles, Patterns, and Practices in C# by Uncle Bob and his son. It is a superset of the original book (730 pages instead of 520 pages) with substantially more (C#) examples covered to greater depth. Personally, I prefer the original book because I do LabVIEW and do not care much about how things are done in C# ...
08-13-2016 09:18 AM
Thanks Dmitry,
I have clean code and enjoyed it very much. Looks like getting the agile
book would be beneficial.
I enjoyed your presentation at Ni week.
Thanks
Dan Shangraw, P.E.
Certified LabVIEW Developer
Certified LabVIEW Instructor
Automated Software Technology
www.autosofttech.net
517-316-2138
08-22-2016 12:46 PM
Martin's Agile book arrived in my mailbox today.
08-24-2016 04:21 PM
I enjoyed Section 1 of the book - Count me in your categories of book purchased and started by 2017. - Thanks!
08-30-2016 08:34 PM
I’ve been asked for a more detailed explanation and sample code of a Configuration Handler featured in slides 20 & 22. You can find both here: Design Pattern: Multiple Interface Support in G
09-08-2016 09:35 AM
I saw your presentation at NIWeek 2016 and found it very interesting. It brought up issues about my code that I knew existed but which I did not know exactly how to address.
I have just spent a couple of hours playing with a UML diagram trying to figure out the best way to implement multiple interfaces for a single object thinking terms of SOLID and I realized that I have been shown a path but I have not walked it yet. So, I just ordered the book "Agile Software Development" by Robert C. Martin.
thanks