3 ms·
I have to disagree with some of the other posters in this thread: I think the only way to learn to control growing complexity of a software project is to use so
by gary17the 3y ago
I have to disagree with some of the other posters in this thread: I think the only way to learn to control growing complexity of a software project is to use software patterns extensively, disregarding any associated productivity costs.
Don't forget about the two broadest programming methodology alternatives: Object-Oriented Programming (OOP) and Functional Programming (FP). Each has its own set of design patterns: OOP has the "The Gang of Four" -style patterns, FP has function composition -style patterns.
It is my personal feeling that the programming world is possibly slowly moving away from OOP and gravitating towards FP (especially when it comes to UI programming), due to FP's focus on ease of code comprehension and testability.
In the OOP-centric world, Rust comes to mind as a modern programming language that encourages consistent use of assorted OOP and FP patterns. In the FP-centric world, Elm comes to mind as a practical and straightforward programming language that uses FP patterns to solve web UI development problems.
For a book on OOP, see: https://en.wikipedia.org/wiki/Design_Patterns https://en.wikipedia.org/wiki/Design_Patterns
For OOP design patterns in Rust, see: https://rust-unofficial.github.io/patterns/ https://rust-unofficial.github.io/patterns/
For a book on FP, see: https://www.manning.com/books/grokking-simplicity https://www.manning.com/books/grokking-simplicity
For FP design patterns in Elm, see: https://elmprogramming.com https://elmprogramming.com
- tomrod 3y agoI appreciate the thoughts.