Как вы четко отделяете код для обратной совместимости от основного кода?

Мне интересно, какие стратегии разработали люди для отделения всей лживой логики, необходимой для обеспечения обратной совместимости с основным кодом приложения. Другими словами, стратегии, позволяющие вам приблизиться к тому, чтобы ваш код выглядел так, как будто не было проблем с обратной совместимостью, за исключением отдельных изолированных исходных файлов, отчетливо подходящих для этой задачи.

Например, если ваше приложение считывает определенный формат файла, вместо одной гигантской функции разбора файла с гудком, вы можете сделать так, чтобы ваш код сначала перебирал список «причудливых» записей / объектов, где каждая из них проверяет файл, чтобы увидеть, является ли он файлом он будет применяться и, если это так, вызывает свою собственную логику синтаксического анализа вместо обычной логики регистра.

Quirks - это нормальная стратегия, но вам нужно проделать работу, чтобы подключить хуки к проверкам причуд во всех подходящих местах в вашем приложении, и то, как будут выглядеть проверки, будет различаться для разных типов причуд и т. Д. Похоже, что должно быть библиотеки, посвященные шаблону для этой задачи. Другая проблема заключается в том, как обеспечить, чтобы причуды не использовались как зацепки общего назначения в произвольные части приложения.

Ответы на вопрос(2)

Ваш ответ на вопрос