Если классический труд по шаблонам проектирования [GoF] дает лишь структурированный каталог с описанием 'как это должно выглядеть', а книга Refactoring Фаулера лишь приоткрывает завесу использования шаблонов в режиме эволюционного проектирования (оставляя за собой основным предметом систематизацию низкоуровневых реорганизаций кода), то данная работа Кириевски как нельзя кстати заполняет пробелы между рефакторингом и шаблонами проектирования как таковыми, наконец то проливая свет на:
- как и когда нужно использовать шаблоны (то есть в чем сама мотивация применения каждого отдельно взятого шаблона как и при предварительном проектировании, так и в процессе эволюционирования требований и увеличения объема кода)
- когда необходимо отказаться от применения шаблона в конкретном случае
- когда разумно заменить применяемый шаблон другим более простым/сложным шаблоном (если это возможно)
- как не используя на текущий момент шаблоны поддерживать код в состоянии, адекватном для их возможного последующего внедрения (в том числе и по конкретным направлениям)
Помимо перечисленного стоит отметить, что каталог рефакторингов в книге в известной степени носит формальный характер (еще столько же можно было бы написать, задавшись целью до конца осветить хотя бы те же шаблоны из Gof и Patterns of Enterprise Application Architecture). Суть верное русло рассуждений как ключ к пониманию направления движения в данной области в целом.
Также в книге есть наметки (под текстом) на то, когда следует прибегать к простому использованию шаблона, а когда есть смысл поискать его обобщенную реализацию.
И последнее (но не по значимости) - если вы не читали перечисленную выше литературу, то данное чтение не возымеет должного толка.
По сути, сборник примеров проведения рефакторинга. Сложных и не очень.
Читать было интересно, хотя местами изложение становится довольно запутанным.
Считаю, главное, что требуется от программиста при использовании шаблонов и(или) принятии решения о применении того или иного рефакторинга - это чувство меры. Данная книга помогает его развить.
[email protected]
vit
k01va1v