Patterns Onboarding
🧩 Кроме GoF и SOLID на курсе Patterns мы разберем GRASP, эти принципы гораздо важнее, но менее известны.
Information Expert - распределяйте обязанность по задачам на те абстракции, которые имеют для этого нужные данные. Связано: encapsulation, cohesion, coupling, information hiding, SOLID: SRP, SoC.
Creator - Если одна абстракция пишет, читает, аггрегирует, использует, сильно зацеплена с доругой, то она и должна ее создавать и инициализировать. Связфно: Information Expert, GoF Creational patterns.
Controller - содержит use-case сценарии для обработки внешних I/O запросов, от UI, API или шины собыий и делегирует выполнение другим абстракциям. Связано: GoF Command, Facade, Layers, Pure Fabrication.
Low Coupling - каждая абстракция минимально зависит от деталей реализации других, содержит минимум "знаний" (обращений). Дает устойчивость, простоту тестирования и сопровождения. Связано: High Cohesion, Controller, Indirection, DIP, DI, IoC, Revealing constructor, Facade, Mediator, Observer, Strategy, State, Bridge, Adapter, Proxy.
High Cohesion - все внутренние элементы абстракции тесно связаны общей целью и "знают" контракты друг друга, совместно решают одну конкретную задачу. Такие абстракции легко понимаются, тестируются и сопровождается. Связано: Low Coupling, Information Expert, Composite, Facade, Adapter. Высокая связанность внутри модуля и низкое зацепление между модулями дают устойчивость системы.
Polymorphism - при помощи динамической диспетчеризации абстракции выбирают поведение и делегируют действия объектам с общим интерфейсом вместо явного ветвления по типу. Связано: GoF Strategy, Adapter, Creator, Command, State, Bridge, Template Method, Visitor, Factory Method, Proxy.
Pure Fabrication - искуственные абстракции, которые не относятся к предметной области, а обслуживают структурные, архитектурные и технические нужды. Связано: SRP, ISP, GoF: Facade, Adapter, Observer, Command, Mediator, Repository, Service. Примеры: EventEmitter, Stream, Connection, Promi
2.7K ·