From Legacy to Solid Code (Bartłomiej Słota)

"Discover how to write robust, maintainable code by embracing solid design principles, including immutability, tactical patterns, and explicit values. Learn how to focus on the domain, avoid side effects, and compose workflows for efficient execution."

Key takeaways
  • We should strive to make our code scream about the domain instead of just hiding it.
  • Tactical patterns can help us model our solution in code.
  • Value objects and entities should not be modified within a single transaction.
  • Immutability can help us avoid side effects and make our code more robust.
  • Functions should have a single, clear responsibility and avoid doing too much.
  • Instead of using exceptions, we can use explicit values to indicate failure.
  • Higher-order functions can help us compose more complex workflows.
  • Algebraic types can be used to create more expressive types in functional programming.
  • Avoid side effects and focus on the declarative pipeline of execution.
  • Create functions that take inputs and produce outputs without modifying external state.
  • Avoid using mutable state in functional programming.
  • Define specifications and use them to constrain possible implementations.
  • Use composition instead of inheritance to create complex structures.
  • Make functions explicit and avoid ambiguity.