DevPrep

Все темы › Шаблоны проектирования

Как постепенно убрать синглтоны из легаси-кода и перейти на DI?

Senior PRO

Суть

Синглтоны в легаси нельзя убрать одним рефакторингом: X.shared расползается по сотням файлов, а поведение держится на неявном порядке инициализации. Рабочий подход — strangler: маленькие шаги, после каждого код компилируется, поведение не меняется и можно выпускать релиз. Сначала синглтон прячется за протоколом, потом внедряется через параметр по умолчанию, затем создание поднимается в composition root, и только в конце shared исчезает.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store