Адаптивний код: гнучке кодування за допомогою патернів проектування та принципів SOLID
За рахунок застосування принципів, розглянутих у книзі, ви зможете створювати код, який пристосовується до нових вимог та непередбачених сценаріїв без значного переписування. Гері Маклін Холл описав гнучкі практики, принципи та патерни для проектування та написання коду, який може розвиватися швидше та легше, з меншою кількістю помилок, оскільки він не перешкоджає змінам.
До переглянутого, оновленого та розширеного другого видання книги були додані найважливіші практичні аспекти процесу Kanban, інверсії управління та створення багаторазово використовуваних абстракцій. Спираючись на більш ніж десятирічний досвід консультування та розробки, автор оновив свій бестселер поглибленим розкриттям модульного тестування, рефакторингу, чистого впровадження залежностей та багатьох інших питань.
Основні теми книги: написання коду, який запускає в роботу та доповнює Scrum, Kanban або будь-яку іншу гнучку інфраструктуру; розробка коду, який може зазнати великих змін у вимогах; планування здатності до адаптації за рахунок застосування залежностей, рівнів, інтерфейсів та патернів проектування; виконання модульного тестування та рефакторингу в тандемі із отриманням більшої користі від обох прийомів; використання прийому “золотого майстра” для того, щоб зробити успадкований код адаптивним; побудова коду, що відповідає принципам SOLID: єдиного обов’язку, відкритості/закритості та підстановки Лисків; створення менших інтерфейсів підтримки більш різноманітних клієнтських і архітектурних потреб; використання у своїх інтересах кращих практик запровадження залежностей збільшення ступеня адаптації коду; Використання залежностей за допомогою паттерна “Сходи” та уникнення поширених антипаттернів.
Книга призначена для програмістів з будь-яким рівнем кваліфікації, які шукають практичніший погляд на патерни проектування, принципи SOLID, модульне тестування, рефакторинг та пов’язані з ними теми. Читачі книги мають володіти C#, Java, C++ або схожою об’єктно-орієнтованою мовою та бути добре знайомими з основними прийомами процедурного програмування.