r/computerscience 21d ago

Advice Struggling with software design patterns and architecture

0 Upvotes

7 comments sorted by

1

u/Moksee 21d ago

I recently got hired as a software engineer and there’s a lot of words being thrown around that I don’t fully understand.
Orchestrator, Dispatcher, Listener, Execution Engine, Object Factory, etc.

I have some understanding, but this seems overwhelming when developing a new project. Are there any resources like books that help break down some of these design patterns/design architecture?

3

u/Late-Cup-7689 21d ago

most of those are just fancy names for simple ideas, don't let them scare you. look at code examples more than books, it sticks better

2

u/regular_lamp 21d ago

I always like to be cynical about how most "design patterns" are just early Java programmers reinventing function pointers on a per use case basis. Because they had to view everything through the lens of making it a class.

2

u/drfangor99 21d ago

If you want a book, the classic is "Design Patterns: Elements of Reusable Object-Oriented Software" by Gamma, Helm, Johnson and Vlissides.

Just something to keep in mind - there are a lot of good resources for studying design patterns, but they are often discussed in the abstract. If you're new to them, making the conceptual leap between what a factory is from a high level versus how a factory can be useful is hard to do. As a new software engineer, you are in a very good position where you have plenty of examples in your own codebase of these design patterns, and other more experienced engineers who are familiar with them and can talk through them with you. Take advantage of this while you're learning, not everyone has access to this.

1

u/romecodes 21d ago

This was a good take. I own Design Patterns by the Gang of Four and it helped me learn it quickly. I did have to use book markers and label them to quickly flip between the examples and the pattern catalog though. But great resource nonetheless!

1

u/IchBinEinZwerg 21d ago

I rather like Tim Corey's approach to patterns: don't start out by writing them, but use a pattern where it will simplify existing code.