Software Architecture in Practice
Read this section to learn about the main elements, patterns, quality attributes, and principles of software architecture, including encapsulation, polymorphism, and dependencies. Pay attention to design patterns and their importance in software design.
8. Functional Programming
Functional programming stresses the importance on mutability and therefore is natural t for parallel and concurrent programming
Because state is often not kept in functions
- it has one less complexity to debug against, as you can always regenerate that state
- race conditions are kept to a minimal
- are great for pipeline architectures