What design patterns each programmer should know – experts answer

Under the phrase "design patterns" I mean some "best practices", a set of successful approaches to solving a narrow range of tasks.

The developers say that during interviews they are often aggressively asked about GOF templates. In my opinion, knowledge of specific templates, in particular GOF, is extremely overrated in the community.

There are more important things that every developer should know. They have a much stronger effect on the efficiency and quality of work than the knowledge of specific examples: “Factory”, “Template Method”, etc. For example, understanding how the operating system works, or what is the bottleneck in the architecture of modern computers.

Of course, you need to study patterns, but I would not highlight any specific set of them. I advise you to pay attention primarily to your work tasks and learn best practices for solving them. For example, if you work with containers, you should get acquainted with Sidecar and Ambassador. If you work with UI, it will be useful for you to understand the phrase “finite state machine” and get acquainted with MVC. People working with the infrastructure can read about the Immutable server. Java developers are often familiar with Inversion of Control and Dependency Injection, but many will find it useful to know about Disruptor, Tolerant Reader, Event Sourcing.

If you answer the question briefly, then study those patterns that help solve your daily tasks in a more efficient way. There is no single set that every developer should know. It all depends on the tasks you are solving.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *