LabVIEW Development Best Practices Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

How Applying Agile Software Design Principles Changed My Designs and Code

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 …

SOLID_Book_Image.jpg

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

Message 1 of 9
(10,836 Views)

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%

0 Kudos
Message 2 of 9
(8,034 Views)

How does this book compare to Clean Code by the same author?

https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

Dan Shangraw, P.E.


   

0 Kudos
Message 3 of 9
(8,034 Views)

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# ...

0 Kudos
Message 4 of 9
(8,034 Views)

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

Dan Shangraw, P.E.


   

0 Kudos
Message 5 of 9
(8,034 Views)

Martin's Agile book arrived in my mailbox today.

0 Kudos
Message 6 of 9
(8,034 Views)

I enjoyed Section 1 of the book - Count me in your categories of book purchased and started by 2017. - Thanks!

0 Kudos
Message 7 of 9
(8,034 Views)

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

0 Kudos
Message 8 of 9
(8,034 Views)

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

Marc Dubois
0 Kudos
Message 9 of 9
(8,034 Views)