2013-05-13 3 views
1

Проведя 9 месяцев в маленькой команде разработки с CakePHP мы начинаем видеть все больше и больше моделей становятся 3000, 4000, даже 5000 линий длиной. Не то, что код повторяется, просто мы добавляем много функциональности и просто требуем этого большого количества кода.CakePHP с большими, быстро растущими моделями

Я знаю, что эти файлы не могут считаться очень большими по сравнению со многими крупными приложениями, и мы, безусловно, уменьшаем количество доступных вызовов за счет использования частных функций, однако, если мы хотим начать нарушать некоторые из этих файлы для повышения управляемости, есть ли какие-либо конкретные методы, которые следует соблюдать?

ли это нарушение конвенции, есть модели без какой-либо таблицы БД? Где-то больше подходит для размещения больших кусков кода?

Заранее спасибо за ваши предложения

ответ

0

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

0

Я бы вопрос о том, ваши модели на самом деле моделирования бизнес-объект или просто немного функциональности или процесса.

Для многократных блоков кода, которые доступны во многих контроллерах, я стараюсь создать components, которые инкапсулируют этот раздел бизнес-логики.

Если это не поможет сломать ваш 5000 линии чудище, то я рекомендовал бы толкая его в плагин.

4

невозможно ответить на этот вопрос правильно, не зная кода. Просмотрите свой код, повторяется ли тот же рабочий процесс? Можете ли вы абстрагировать его и сделать его поведением?

Там нет ничего плохого в том, модель 10k линии до тех пор, как код действительно принадлежит в модели. Правило большого пальца: если он что-то манипулирует, он переходит в модель.

Но я бы не рекомендовал использовать множество частных методов, они просто делают тестирование (если вы выполняете единичный тест - и вы должны это делать) сложнее, см. http://sebastian-bergmann.de/archives/881-Testing-Your-Privates.html. То, как вы их используете, неверно в любом случае IMHO, видимость не считается ограничением количества общедоступных вызываемых методов, но считается, что люди не могут распространять критические части вашего кода, например. На самом деле должно быть не так много частных методов, и те, кто являются частными, должны быть частными по очень веской причине.

Смежные вопросы