Перейти к содержанию

Рекомендуемые сообщения

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

 

Вопрос к профессионалам движка. Не знаю есть ли здесь те кто принимал участие в написания движка.

 

Вопросы будут в этой теме чтобы не мусорить по другим разделам.

 

1) Почему толстые контролёры? 

 Максимум должна быть 10 строчек. 

2) Почему валидация в контролёрах?

Правильнее вынести всё в модель.

3) Зачем такой страшный код в модели 

	$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "address WHERE customer_id = '" . (int)$this->customer->getId() . "'");

Я про count(*).

 

Это то что мне бросилось в в глаза при первом знакомстве, дальше будет больше.

Изменено пользователем koras
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задайте те же вопросы любому другому движку. Почему вы решили обратить свой взор именно на опенкарт?

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
33 минуты назад, koras сказал:

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

 

Вопрос к профессионалам движка. Не знаю есть ли здесь те кто принимал участие в написания движка.

 

Вопросы будут в этой теме чтобы не мусорить по другим разделам.

 

1) Почему толстые контролёры? 

 Максимум должна быть 10 строчек. 

2) Почему валидация в контролёрах?

Правильнее вынести всё в модель.

3) Зачем такой страшный код в модели 


	$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "address WHERE customer_id = '" . (int)$this->customer->getId() . "'");

Я про count(*).

 

Это то что мне бросилось в в глаза при первом знакомстве, дальше будет больше.

1) Дело сугубо индивидуальное. В опенкарте вся бизнес-логика находится в контроллерах, а модель передает данные. Может быть наоборот. Но какая разница?

2) Отв 1.

3) Что страшного в этом коде? COUNT(*) работает быстрее всех остальных запросов на выборку количества записей. В вашем примере в таблице address

customer_id

не является первичным ключем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Почему вы решили обратить свой взор именно на опенкарт?

Работа такая.

Моя критика конструктивная.

Конечно есть и приятные стороны, тот же twig, mvc, простота движка которая позволяет даже не смотреть в документацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. 10 строк контроллер? :D:D

2. ей там место. следуя концепции мвц. вся логика работы находится в контоллере. запросы к базе в модельке находятся

3. чтоооо ?? в моделе голые запросы к бд находятся.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, koras сказал:

Почему вы решили обратить свой взор именно на опенкарт?

Моя критика конструктивная.

он вас внимательно выслушет
смотрите как сосредоточился  file.php?avatar=3414_1362149363.jpg

 

))
 

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Если вы будете писать какой нить REST, я думаю Вы своё мнение поменяете, когда перепишите все контролёры, перенеся весь код в сервисный слой.

2) Модели можно дёргать с разных экшенов, при этом там же и валидировать данные.

3) Даже не хочу комментировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, koras сказал:

Почему вы решили обратить свой взор именно на опенкарт?

Работа такая.

Моя критика конструктивная.

Конечно есть и приятные стороны, тот же twig, mvc, простота движка которая позволяет даже не смотреть в документацию.

 

Работа вопросы задавать тупые ?

В каком месте?

twig только с версии 3.0 и сыроват!

Если вдруг в гугле забанили "по работе" - разработчики Opencart живут тут: https://github.com/opencart/opencart

 

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

korax, эти вопросы задайте парню с красивым фото в сообщении

Он любит такие вопросы. А на особо интересные даже иногда отвечает на русском языке (правда коротко, зато ясно).

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. 10 строчек контроллер ? Вы видимо одностраничники с помощью модели MVC пишите)

2. А где ей быть ? В модели серьезно ? Почитайте о структуре и принципах работы MVC, может сразу и view в модель переместим, да ?

3. Видимо такой запрос требуется, хотя по большей части согласен можно было и лаконичнее, но в остальном вы жестко не правы, такое ощущение что первый раз с MVC встретились. 

У меня все.

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
22 часа назад, koras сказал:

Почему контролёры? 

 

у меня стазу такой вопрос

 

когда учился преподавала такая мразь которая ни черта не понимала и называла контроллеры (аппаратные составляющие ПК) контролёрами, походу вот они плоды такого образования

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, FishOnPHP сказал:

1. 10 строчек контроллер ? Вы видимо одностраничники с помощью модели MVC пишите)

 

 

1. Доля истины есть в словах ТС
Контроллеры в opencart точно коряво написаны

Вот к примеру каким должен быть index()

Одной строкой
Ну во всяком случае я так стараюсь писать сейчас после долгих лет опыта работы с opencart

    public function index() {
        $this->setErrorReporting()
        ->getSettings()
        ->getPost()
        ->getLocalhost()
        ->getDomainAndScheme()
        ->getOrderCustomer()
        ->getDomainInDB()
        ->doDomainInDB()
        ->getAnswerFromDB()
        ->getAnswerFromSettings()
        ->doEcho();
    }

 

;)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 7/22/2017 в 10:44, koras сказал:

Максимум должна быть 10 строчек.

Откуда вы это взяли? Похоже и сами не понимаете.. Единственное обоснованное упоминание про ограничение в N строк встречается в остросюжетном рассказе Роберта Мартина "Чистый код". И не в контроллере, а в методе. И это следствие другой мысли "один метод = одно действие". И это не правило, а рекомендация пересмотреть свой код. И вообще, пацык с картинки читает только книги, которые написал сам.

Цитата

Правильнее вынести всё в модель.

Правильнее вынести в сервис под толстый-толстый слой абстракции

Цитата

Зачем такой страшный код в модели

А че там? COUNT без джоинов в MyISAM отработает быстрее, чем в InnoDB, так что все норм. Странно, что вы выбрали именно этот запрос, т.е. остальное вас вообще не смущает?

Цитата

простота движка которая позволяет даже не смотреть в документацию.

Это да. Документации ж нет, то и смотреть никуда не приходится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 22.07.2017 в 10:44, koras сказал:

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

 

Вопрос к профессионалам движка. Не знаю есть ли здесь те кто принимал участие в написания движка.

 

Вопросы будут в этой теме чтобы не мусорить по другим разделам.

 

1) Почему толстые контролёры? 

 Максимум должна быть 10 строчек. 

2) Почему валидация в контролёрах?

Правильнее вынести всё в модель.

3) Зачем такой страшный код в модели 


	$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "address WHERE customer_id = '" . (int)$this->customer->getId() . "'");

Я про count(*).

 

Это то что мне бросилось в в глаза при первом знакомстве, дальше будет больше.

 

Это стандартные дефекты архитектуры кода опенкарт. Избавиться от них разработчики смогут не скоро да и то, если перепишут его на чем то вроде ZF или Symfony, где валидация и конструирование форм вынесено в отдельные классы и в сервисы, где основной функционал контроллеров вынесен соответствующие базовые классы и т.д. и т.п., то есть действительно активно используются большинство паттернов ООП. Так что, если интересует ОС, придется с этим смириться.

Изменено пользователем EVMedvedev

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 22.07.2017 в 11:23, Yoda сказал:

twig только с версии 3.0 и сыроват!

 

 

Twig не может быть сыроват. Он появился наверно еще до того, как работы над ОС начались :-). Может быть сыровато использование Твига в ОС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, EVMedvedev сказал:

 

Twig не может быть сыроват. Он появился наверно еще до того, как работы над ОС начались :-). Может быть сыровато использование Твига в ОС.

Имелось наверно ввиду что не было его кеширования

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! скажите пожалуйста как сделать сложение суммы от разных опций? к примеру. Продаю теплицу, она 4 метра и 6 метров. Клиент покупает 4 метра и выбирает установку, установка плюсует к стоимости теплицы 2000 т.р, а если клиент выберет 6 метровую теплицу установка должна подорожать на 1300 рублей. Подскажите пожалуйста как это сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.