SOLID

GRASP: как правильно распределять ответственность между объектами

I want to tell you about GRASP principles.

If you are already familiar with OOP, and especially with SOLID, some of the ideas behind GRASP may look familiar. You may even realize that you have been using some of them in your work for years without knowing their specific names.

Tags: 

Coupling and Cohesion: Two Concepts Every Developer Should Understand

Lately, I've been spending quite a lot of time learning about design patterns and software architecture.

And the deeper I go, the more often I come across two concepts that seem to be behind almost everything: coupling and cohesion.

They may sound abstract at first, but they actually describe two very practical things:

How strongly are different parts of the system dependent on each other, and how well do the responsibilities inside a component belong together?