Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

 

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

 

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

 

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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.