ps2007
Новичок
расширение функционала
Приветствую всех жителей форума.
Хотел узнать, как вы решаете такую проблему:
При разработке сайтов я использую фреймворк, использующий паттерн MVC. Часто приходится использовать похожие куски кода, которые далее буду называть модулем. Это авторизация пользователя, фотогалерея, каталог чего-либо, возможно с категориями, баннерная система, примеров можно найти много. Проблема в том, что я не могу найти простой способ расширения/изменения возможностей модуля. Рассмотрим 2 примера:
- Есть готовая система регистрации/авторизации пользователя, проверенная и протестированная в работе. Возникла необходимость добавить фотографию пользователя и еще несколько полей. Для того, чтобы не трогать уже протестированный код, я решил написать отдельный класс, в котором я решил реализовать дополнительный функционал. Создал таблицу для новых полей и пристыковал к уже существующей с помощью отношения один к одному. И тут начались проблемы, много проблем. Получилось не решение, а куча костылей.
- Другой пример. Есть готовый каталог предприятий. Необходимо добавить загрузку карты и логотипа.
Я вижу два выхода из положения:
1) Поправить модуль для своих нужд. Недостаток - правка уже проверенного кода, есть вероятность внесения ошибок/уязвимостей.
2) Заранее заложить всевозможные отключаемые "фичи". Недостаток - заранее невозможно все предусмотреть. Если дописывать "фичи" по мере необходимости, то получим "раздутый" модуль и нечитаемый код.
Была поставлена цель не трогать уже рабочий и протестированный код, а в результате получил массу проблем.
Как вы решаете подобные проблемы ?
С уважением,
Павел.
Приветствую всех жителей форума.
Хотел узнать, как вы решаете такую проблему:
При разработке сайтов я использую фреймворк, использующий паттерн MVC. Часто приходится использовать похожие куски кода, которые далее буду называть модулем. Это авторизация пользователя, фотогалерея, каталог чего-либо, возможно с категориями, баннерная система, примеров можно найти много. Проблема в том, что я не могу найти простой способ расширения/изменения возможностей модуля. Рассмотрим 2 примера:
- Есть готовая система регистрации/авторизации пользователя, проверенная и протестированная в работе. Возникла необходимость добавить фотографию пользователя и еще несколько полей. Для того, чтобы не трогать уже протестированный код, я решил написать отдельный класс, в котором я решил реализовать дополнительный функционал. Создал таблицу для новых полей и пристыковал к уже существующей с помощью отношения один к одному. И тут начались проблемы, много проблем. Получилось не решение, а куча костылей.
- Другой пример. Есть готовый каталог предприятий. Необходимо добавить загрузку карты и логотипа.
Я вижу два выхода из положения:
1) Поправить модуль для своих нужд. Недостаток - правка уже проверенного кода, есть вероятность внесения ошибок/уязвимостей.
2) Заранее заложить всевозможные отключаемые "фичи". Недостаток - заранее невозможно все предусмотреть. Если дописывать "фичи" по мере необходимости, то получим "раздутый" модуль и нечитаемый код.
Была поставлена цель не трогать уже рабочий и протестированный код, а в результате получил массу проблем.
Как вы решаете подобные проблемы ?
С уважением,
Павел.

. поэтому проще каждый раз переписывать модули и завести для них разные ветки в СУВ.