Pull to refresh
0
0

User

Send message

Шаблоны GRASP: Low Coupling (низкая связанность) и High Cohesion (высокое зацепление)

Reading time4 min
Views47K
И снова здравствуйте. Меня зовут Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Специально к старту нового набора на курс «Архитектура и шаблоны проектирования» я продолжаю серию своих публикаций про шаблоны GRASP.




Введение


Описанные в книге Craig'а Larman'а «Applying UML and patterns, 3rd edition», GRASP'овские паттерны являются обобщением GoF'овских паттернов, а также непосредственным следствием принципов ООП. Они дополняют недостающую ступеньку в логической лестнице, которая позволяет получить GoF'овские паттерны из принципов ООП. Шаблоны GRASP являются скорее не паттернами проектирования (как GoF'овские), а фундаментальными принципами распределения ответственности между классами. Они, как показывает практика, не обладают особой популярностью, однако анализ спроектированных классов с использованием полного набора GRASP'овских паттернов является необходимым условием написания хорошего кода.

Полный список шаблонов GRASP состоит из 9 элементов:

  • Information Expert
  • Creator
  • Controller
  • Low Coupling
  • High Cohesion
  • Polymorphism
  • Pure Fabrication
  • Indirection
  • Protected Variations

В прошлый раз мы обсудили принцип Creator. Сейчас я предлагаю рассмотреть два принципа GRASP, которые имеет смысл рассматривать только в паре, потому что рассмотрение их по отдельности в пределе приводит к явно плохому коду. Эти принципы могут рассматриваться не только в контексте микропроектирования, но и при проектировании, например, микросервисов. Ниже поговорим о Low Coupling и High Cohesion.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments0

Стажировка аналитиком в Яндексе: разбор тестовых задач

Reading time14 min
Views45K


Привет, Хабр!

Однажды, штудируя очередную книгу по пресловутой Data Science, я пришел к мысли, что пора бы применить накопленные знания на практике и увидеть жизнь отдела аналитики своими глазами. К моему счастью, Яндекс запустил отбор на полугодичную стажировку по соответствующему направлению, и я не мог пройти мимо. Приём заявок 2020 уже закончился, поэтому в этой статье я с чистой совестью разберу задачи, которые Яндекс предлагал решить соискателям на первом этапе. Будет и код на Python. Спойлер: сложно, но интересно.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments10

Noty — необычайно гибкий плагин jQuery для вывода уведомлений

Reading time1 min
Views31K

Почти месяц назад вышла вторая версия прекрасного и замечательного jQuery Notification plugin для вывода самых разнообразных уведомлений на сайте, странно что Хабр вообще обошёл его стороной, исправлю ситуацию.
Читать дальше →
Total votes 113: ↑110 and ↓3+107
Comments27

Групповые сопротивления

Reading time12 min
Views26K
Многие менеджеры в приватных беседах жалуются на сотрудников. Вроде бы и знающие специалисты, а работу не работают. Более того — часто отнимают время у тех, кто таки работает. Хоть увольняй.
Многие родители жалуются на что-то подобное в отношении детей. И тут уволить уже нельзя.
И сотрудники, и дети, часто действуют похожими способами. Реализация разная, а виды действий — схожие:

  • Привлечение внимания
  • Борьба за власть
  • Месть и личные нападки
  • Беспомощность
image
У каждого из этих видов есть свои формальные признаки и стандартные лекарства.
Читать дальше →
Total votes 85: ↑72 and ↓13+59
Comments53

Обзор свежих материалов, апрель-июнь 2012

Reading time15 min
Views3.9K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-март 2012.


Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments10

Проектирование интерактивных продуктов в Fireworks

Reading time12 min
Views9.4K
Эта статья была опубликована еще в 2008 году на официальном сайте Adobe. В ней Nick Myers (ведущий визуальный дизайнер компании Cooper) рассказывает о преимуществах Fireworks в проектировании интерактивных продуктов.

Ну что же, сотрясем в очередной раз нерушимые столпы Photoshop, и неокрепшего юнца Axure?
Total votes 63: ↑61 and ↓2+59
Comments19

Information

Rating
Does not participate
Registered
Activity