Що нами рухає в процесі написання програм? Чи дотримуємося ми вивчених інструкцій і правил, чи покладаємося виключно на можливості своєї свідомості? Пропонуємо поговорити про це в статті.

 

      Почнемо з того, що згадаємо неформальні визначення, які слугуватимуть нам відправною точкою в наших міркуваннях.

      Творчість — процес діяльності, обмежений лише межами свідомості творця, у результаті якого створюється новий унікальний об'єкт.

      Інструкція — це набір правил, що встановлює порядок виконання або здійснення чого-небудь.

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

 

       А от той самий фізик, математик, який використовує у своїй роботі суворі правила доведення теорем, законів — чи може бути творцем? Відповідь неоднозначна.

 

Що можна сказати про роботу програміста?

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

 

 

 

      Частенько буває, що така «творчість» переростає в «біль у спині» самих же програмістів. Надмірне зловживання творчістю призводить до того, що в підсумку з'являються абсолютно дивні компоненти системи: починаючи від класів з вибудуваною абияк ієрархією, закінчуючи «кілометровими» методами, про реальну потрібність яких ніхто навіть не замислювався, і божевільним «копіпастом» коду.

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

       Але все ж, якраз таки в цьому і є елементи творчості, а саме в сенсі НЕдотримання стандартів і усталених правил під час написання коду, а в імпровізації під час виконання завдання?

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

       Адже поміркуйте самі: як можна написати чітко структурований правильний код, не обмежуючи себе ні в чому і не дотримуючись усталених правил хорошого тону?

 


Починаючи з назв змінних, класів і закінчуючи організацією компонентів програми — усьому в програмуванні є певні стандарти, що роблять код читабельним і легко підтримуваним надалі.

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

 

Програмування — простір для творчості?

      А в підсумку ми маємо ось що: програмування — це творчість, яка базується на суворих правилах.

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

 

 

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

 

Олег Топорков 

 

 

Популярні статті

Читати далі