Цей пост розпочинає нову серію статей під назвою Патерни Програмування.

Design Patterns

@fromdev.com

У цьому ввідному пості ми з вами коротенько оглянемо:

  • що таке Патерни Програмування
  • для чого їх придумали
  • типи та категоризація патернів

Даний матеріал буде корисним як початківцям так і профікам програмістам, щоб освіжити та підсумувати свої існуючі знання.

Отже, погнали!

Що таке Патерни Програмування

Саме слово Патерн (pattern) з англійської перекладається як зразок, шаблон, приклад, екземпляр, заготовка. Дуже класне порівняння – це форма для випікання хліба. Раз зробили шаблон і використовуємо постійно для випікання усіх наступних хлібин.

Патерни Програмування – це напрацьовані ефективні підходи, техніки та правила вирішення задач при створенні програмного забезпечення. Вони не прив’язуються до певної мови програмування і можуть бути застосованими в основному незалежно від конкретної мови. Хоча у даній серії, при можливості, я буду намагатися надавати приклади того чи іншого патерна з допомогою мови програмування Python.

Також використовується цілий ряд інших назв як от: Шаблони Проектування Програмного Забезпечення, Дизайн Патерни (Design Patterns), Шаблони Програмування, і т.д.

Ось тут можна прочитати коротко про історію виникнення та формування патернів програмування.

Із попередньо наведеного означення патерна стає зрозуміло, що їх придумали та сформували в першу чергу для того, щоб полегшити життя програмісту та пришвидшити реалізацію певних стандартизованих задач згідно даних шаблонів-заготовок. А не кожного разу придумувати колесо. Таким чином подібні задачі різні програмісти вирішуватимуть подібним чином, швидше та ефективніше.

Я сам довгий час не знав про патерни програмування, але, як потім з’ясував, з практикою сам прийшов до частини з них. Тому, якщо ви ще досі не знайомі з ними, рекомендую присвятити трохи часу на даний курс і вже після нього почати використовувати ефективні способи вирішення стандартних задач більш ефективно та свідомо! Думаю велику частину з них ви уже використовуєте у своїй практиці, свідомо або ні.

Початківцям також буде корисно ознайомитися з даними способами, адже це зекономить час на винайдення власного велосипеда, натомість можна одразу навчитись кататись на існуючому та ще й до того правильно! 😉

Види Патернів Програмування

Є багато різноманітних категорій і видів патернів, від різноманітних програмістів. Але в даному курсі зупинимося лише на найбільш поширених патернах, які групуються у наступні три категорії:

  1. Породжуючі – патерни, що надають рекомендації та техніки для створення нових об’єктів. Існує 5 породжуючих патернів.
  2. Поведінкові – патерни, що надають рекомендації для реалізації тої чи іншої поведінки-функції існуючого об’єкта. Є 11 поведінкових патернів.
  3. Структурні – даний тип патернів розглядає питання взаємодії між собою існуючих об’єктів. Всього є 7 структурних патернів.

Отже, всього маємо 23 патерни програмування, які ми будемо з вами розглядати у наступних статтях. Чи будемо ми це робити один патерн в статті, а чи можливо групувати у кілька патернів в одному постів – я ще вирішу. Мабуть взалежності від складності того чи іншого патерна.

В наступній статті розпочнемо з породжуючих патернів і як мінімум розберемо один із них – Абстрактну Фабрику.

Знаю, що існують також і інші класифікації шаблонів програмування. А які знаєте ви? Чи використовуєте ви свідомо шаблони програмування у вашій щоденній програмістській роботі, якщо так тоді які?