@HellWalk

Yii2: Насколько new Query() и createCommand() являются признаком плохого кода?

Здравствуйте

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

Для работы с бд был выбор - или делать все объектами (но учитывая мой низкий опыт, и количество взаимосвязей - это для меня ад), или делать все через new Query() и createCommand() (когда нужно получить и записать информацию соответственно).

Был выбран второй вариант, из расчета, что когда все будет доделано со всеми правками - возьму время на рефакторинг и переделаю. Но, жизненный опыт подсказывает, что когда задача будет сделана в черновом варианте, появятся новые "срочные штуки", и код будет оставлен таким, как есть.

В этой связи у меня напрашивается вопрос - насколько new Query() и createCommand() являются признаками говнокода? Придется ли краснеть, когда этот код увидит другой программист, или можно будет сказать "и так нормально"?
  • Вопрос задан
  • 274 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
В этой связи у меня напрашивается вопрос - насколько new Query() и createCommand() являются признаками говнокода? Придется ли краснеть, когда этот код увидит другой программист, или можно будет сказать "и так нормально"?

Применение не считается говнокодом, если оно действительно оправдано, оправдано ли оно у Вас в проекте известно только Вам.

Но, жизненный опыт подсказывает, что когда задача будет сделана в черновом варианте, появятся новые "срочные штуки", и код будет оставлен таким, как есть

Не надо рефакторить приложение полностью, надо рефакторить небольшими кусочками по мере работы над другими задачами. Так сказать делать код с которым Вы работаете немножко чище чем он был
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Urichalex
@Urichalex
Кратко о себе)
Если используете Yii, то используйте плюшки Yii. ActiveRecord не просто так там придуман, удобен, прост.
new Query - для получения данных. createCommand для сохранения/изменения данных, и для нестандартных задач
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы