Недавно я был назначен ответственным за отладку двух разных программ, которым в конечном итоге потребуется как минимум общий сценарий синтаксического анализа XML. Один был написан с PureMVC, а другой был построен с нуля. Хотя изначально он имел смысл написать один с нуля (он сэкономил много памяти, но с тех пор проблемы с памятью были решены).
Портирование приложения, не относящегося к PureMVC, займет много времени и усилий, которые не нужно использовать, но облегчит документирование и совместное использование кода. Это также снизит общую кривую обучения. Имея это в виду:
1. Что следует учитывать при рассмотрении вопроса о том, лучше ли переходить на один стандарт?
(На связанной ноте)
Часть кода немного странная. Поскольку интерпретирующему приложению приходилось преобразовывать команды из одного синтаксиса в другой, имело смысл иметь интерпретатор Object. Поскольку должна была быть связь с внешней средой, имело больше смысла, чтобы один объект взаимодействовал со средой, и для этого имел дело с интерпретатором исключительно .
По сути, был создан анти-синглтон. Объект будет взаимодействовать только с интерпретатором, и все. Если член другого класса попытается вызвать один из его открытых методов, объект вызовет исключение.
Есть лучшие способы сделать это, но это определенно немного странно. Существуют более стандартные средства для достижения той же цели, хотя они часто включают создание классов или файлов классов, которые являются чрезвычайно большими. Единственное решение, которое я мог найти, которое соответствовало стандартам, включало бы столько комментариев и объяснений, сколько требуется в настоящее время, если не больше. Учитывая это:
2. Если какой-то код странный, но эффективный, то лучше ли изменить его, чтобы сделать его менее странным, даже если он сделан более громоздким?