Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Первое знакомство


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(*).

 

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

Изменено пользователем koras
  • +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 и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.