Що не так з патернами?

Зазвичай, коли говорять про паттерни, то говорять про GoF патерни. Gang of Four взяли концепцію патернів із архітектури (A Pattern Language), де патернами називають типові архітектурні рішення.

Подумайте про те, що GOF допомагає невдахам менше втрачати.

Річард П. Габріель

Цей коментар про те, як багато існує патернів лише завдяки обмеженням у тій чи іншій мові програмування (у випадку з GoF патернами мова йде переважно про C++, Java, C#).

Важливо насамперед те, що патерни – це дослідницька робота, яка вивчає різноманітні рішення та виявляє і документує найбільш типові за частотою їх використання / виникнення проблем, до яких ці рішення застосовують.

Рішення виникли задовго до того, як з них були сформовані патерни. Ніхто першопочатково не вивчав патернів, а приходив до тих чи інших рішень самостійно, або завдяки підказці товаришів.

Зараз (коли патерни визначені та задокументовані) люди можуть приходити до тих чи інших типових рішень, навіть не знаючи, що існують якісь GoF патерни, чи патерни корпоративних додатків Фаулера, чи Domain Driven Development патерни, чи патерни (перли) функціонального програмування і таке інше.

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

Проте, у описах багатьох, якщо не переважної більшості, вакансій можна зустріти такий пункт як «знання патернів». Враховуючи все зазначе вище, складається враження, що мало хто розуміє, що взагалі таке ці патерни, або що ніхто не шукає розумних людей, а задовільняється поверхнево обізнаними, або такими, яких легко замінити.

Виходить так, що чужі дядьки, які тут (підставте назву компанії на яку працюєте) ніколи не працювали і ніколи не будуть, мають більший вплив на сам підхід до розробки, аніж працівники яких винаймають. Чому? – Вони створили стандарти за якими можна легко замінювати деталі (розробників), або ж у багатьох випадках це звичайний культ карго чи поклоніння ідолам.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *