Мої два центи за таке і старе питання
Деякі люди вже згадували, практикують і рефакторинг. Я вважаю, що правильний порядок дізнатися про закономірності такий:
- Дізнайтеся про розвиток тестових програм (TDD)
- Дізнайтеся про рефакторинг
- Вивчіть шаблони
Більшість людей ігнорує 1, багато хто вважає, що вони можуть зробити 2, і майже всі йдуть прямо за 3.
Для мене ключовим вдосконаленням моїх програмних навичок було вивчення TDD. Це може бути довгий час болісного і повільного кодування, але спочатку написання тестів, безумовно, змушує задуматися над своїм кодом. Якщо класу потрібно занадто багато котла або легко виходить з ладу, ви починаєте помічати неприємні запахи досить швидко
Основна перевага TDD полягає в тому, що ви втрачаєте страх переробити код і змусите писати класи, які є дуже незалежними та згуртованими. Без гарного набору тестів просто занадто болісно торкатися чогось, що не порушено. З мережею безпеки ви дійсно втягнетесь у кардинальні зміни свого коду. Це той момент, коли ви дійсно можете почати вчитися з практики.
Зараз настає момент, коли ви повинні читати книги про шаблони, і, на мою думку, це повна марна витрата часу на занадто сильні спроби. Я дуже добре зрозумів зразки лише після того, як помітив, що я щось подібне зробив, або міг застосувати це до існуючого коду. Без тестів на безпеку чи звичок рефакторингу я б зачекав, поки новий проект. Проблема використання шаблонів у новому проекті полягає в тому, що ви не бачите, як вони впливають або змінюють робочий код. Я зрозумів зразок програмного забезпечення лише після того, як я відновив свій код в один з них, і ніколи, коли я ввів у свій код один свіжий.