A Few Simple Rules - Shortened Edition
Disclaimer
The views expressed in this course represent the views of Anne Deslattes Mays, PhD and do not represent the views of NICHD, NIH or the United States Government.
In what follows - is my development of a practice that enables workflow and platform independence facilitating repurposability.
Learning from those who have walked the journey
Elements of Programming Style B. W. Kernighan and P. J. Plauger, The Elements of Programming Style 2nd Edition, McGraw Hill, New York, 1978. ISBN 0-07-034207-5
The year was 1919, the first World War was at its close and a student, E. B. White, took a course, English 8, taught by William Strunk Jr. The course featured a required textbook, a slim volume called The Elements of Style. The durability of this slim book informed the development of the book, The Elements of Programming Style by Kernigan and Plauger, whose lessons we adapt here in this course. Showing again the durability of the approach of beginning with philosophy as one approaches their work and use of programs and structure to achieve their work.
So with this nod to E.B. White, William Strunk, Jr, Brian Kernigan and Plauger, we begin with our own Lessons and Pithy Phrases.
What is a Pithy Phrase: A pithy phrase or statement is brief but full of substance and meaning
Lessons Translated to the Workflow/Containerized Process
(Truncated Pithy Phrases)
Top 10 Lessons
Number | Lesson | Relates Too | Full Lessons Number |
---|---|---|---|
1. | Write clearly – don't be too clever. | Everything | 1. |
2. | Write first in easy-to-understand pseudo language | Everything | 13. |
3. | Modularize. Use procedures and functions. | Containerizing with Dockerfile | 14. |
4. | Write and test in small pieces. | Use Dockerfiles, GitHub Actions to test | 17. |
5. | Test inputs and outputs | Test on command line workflows are input, process, output | 19. |
6. | Use debugging compilers. | Compiling with workflows | 29. |
7. | Make it right before you make it faster. | Everything | 30. |
8. | Make sure special cases are truly special. | Everythng | 35. |
9. | Keep it simple to make it faster. | Everything | 36. |
10. | Document your process in GitHub | use workflow languages, containers and GitHub | 45. |