An interesting design idea
Writing Fewer Conditionals - Conditional statements are one of the first things we learn. We couldn’t write complex problems without the capability to branch the logic in different directions. Yet modeling conditionals too closely to the way we think can cause problems. In fact, they can be a major source of complexity when we’re writing complex logic. This article explores how good abstractions reduce the need for conditionals and make your code simpler.
A technique worth exploring
An article worth reading
A talk worth watching
A Philosophy of Software Design - I really like John Osterhout’s ideas for better software design. They give a different angle than the commonly accepted “Clean Code” and I find them to be much more practical. He tackles the topic on a more fundamental level. It’s not just about writing well-structured code, it’s about deconstructing problems in a good way. The ideas in the talk are abstract but that makes them applicable in many different environments. I’ve been using the “write deep modules” rule when working with React components for years now.
An idea to ponder
Dynamic Type Systems are Not More Open - Eight years ago I started my programming journey with C#. When I moved away from typed languages I felt my hands getting untied. Dynamic languages gave me more freedom and helped me create faster. But this article raises an important question. Can we actually develop without types? Because each time we access a field on an object, we assert that its type has this field. When we use a method on a variable we assert it has implemented it. The types are always there, but in dynamic languages, they are in the implementation.
A quote worth thinking about
"The value of a prototype is in the education it gives you, not in the code itself." — Alan Cooper