Паттерны объектно-ориентированного проектирования. Введение. Часть 1.

154 прочитали

Это известная книга банды четырех. Я слышала про неё ещё во времена, когда я только начинала изучать программирование (года 2,5 назад). И мне все говорили, что каждый разработчик просто обязан её хотя бы полистать. Конечно, в то время было бы избыточным её читать и я бы всё равно мало что поняла. Но сейчас самое то. :)

Кстати, перед началом я немного посмотрела отзывы и многие пишут, что книга скучная и переоцененная и сейчас нет смысла её читать. Но мало ли что говорят. Узнаю на собственном опыте.

Главы достаточно длинные (всего 6 на 400 страниц), поэтому тут я буду разделять статьи не по главах, а просто по каким-то логическим промежуткам или когда остановлюсь читать.

Введение. Заметки:

  1. Проектирование — дело нелегкое, особенно если не хочется дублировать. Тут полностью согласна. У меня пока что мало опыта, но и я уже сталкиваюсь с проблемами проектирования и всегда сложно придумать что-то красивое и элегантное. И чтобы потом еще взять и встроить этот код в совершенно другое место.
  2. Зная паттерны, можно не тратить время и изобретать велосипед, а сразу использовать правильный и надежный вариант, который уже был проверен в бою.
  3. Цитата Кристофера Александера (британский архитектор): "Любой паттерн описывает задачу, которая снова и снова возникает в нашей работе, а также её решения, причем таким образом, что это решение можно потом использовать миллион раз, и при этом две реализации не будут полностью одинаковыми". Звучит отлично. :)
  4. Паттерн состоит их четырех элементов: имя, задача, решение, результаты.
  5. Имя — оно характеризует проблему проектирования, решение и последствия. Хорошее имя — залог успеха. Благодаря имени, паттерн можно будет обсуждать с коллегами и своей уточкой/кактусом/котом.
  6. Задача — описание, когда нужно применять паттерн (условия, контекст, конкретная проблема).
  7. Решение — описание всех элементов (интерфейсов, классов) и взаимодействие между ними. Стоит заметить, что тут нет конкретной реализации. Только шаблон.
  8. Результаты — плюсы и минусы паттерна и что будет после применения. Очень важно знать последствия, чтобы объективно оценивать и выбирать между вариантами реализации.
  9. И тут я немного расстроилась, потому что автор написал, что примеры будут на си и не будет паттернов, которые относятся к ООП. Конечно же, при покупке я не обратила внимание на такой незначительный момент. Но думаю, что книга всё равно будет очень полезной.
Это известная книга банды четырех. Я слышала про неё ещё во времена, когда я только начинала изучать программирование (года 2,5 назад).

Сама книга: https://www.ozon.ru/product/patterny-obektno-orientirovannogo-proektirovaniya-gamma-erih-helm-richard-gamma-erih-helm-richard-211432335/ (не реклама, а просто чтобы вы знали, как она выглядит. Это была первая ссылка в поиске).