The following are my personal notes on the book “Fundamentals of Architecture: An Engineering Approach” which presents from a high-level view what software architecture is, what a software architect does and the software architecture patterns. It is written by two well know architects: Mark Richards and Neal Ford
This was originally written as a self attempt to better understand FP concepts like functors, applicatives, monads, etc. visually, by implementing them on images.
I’m a believer in strong & static typing. A good type is like a math equation - just as an equation describes the equalities and how they change, the possibilities of interactions, a type describes the invariants and the properties of what the type represents. Good types allow us to make invalid states unrepresentable in code, transforming runtime bugs into compiler errors.
In Scala 2 the == operator is used for checking by value equality, in contrast with Java where .equals() is best practice. Also in contrast to Java, == is safe to be used on null values.
Most programming languages have this operator
= which is called the assignment operator.
Have you ever wondered why this is called assignment and not simply equals ?