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

Взгляд на Opencart после Magento и других продвинутых систем


konorws

28 289 переглядів

Добрый день.

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

Но в один солнечный день мне пришел лист о том что я прошел собеседование в относительно большую IT кампанию. И с того дня мой взгляд на хороший код изменился... 

Вот не так давно меня попросили немного доработать функционал на OC. Мне не сложно в принципе вот я и приступил к работе. Я сидел и говорил себе Боже как я раньше с этим работал.

 

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

 

1. Удобство разработки и интеграция в IDE

Да когда я работал с Sublime Text все было вроде гуд. Но уже полгода работаю через PhpStorm (PS. Лицензия есть даже на домашнем ПК а не только на работе).

При запуске сразу получаем кучу предупреждений. Давайте взглянем на простой класс http://joxi.ru/52alLM0UGzO1Om

Причин тут две:
1) Отсутствие PhpDoc

2) Упрощенная структура самой CMS

Ну если добавить PHPDoc то большую часть проблем это реши. 
Зачем нужен PHPDoc ??
Я напишу коротко если будет интересно загуглите.

1) Это читабельность кода
2) Автокомплит и информация о методах на лету  http://joxi.ru/brRZkROHQveeLr как не крути сразу видно что и как надо передавать тому или другому методу или то что он возвращает. Или же увидеть ошибку на моменте написания кода а не запуска.

 

2) Это наверное бесит меня на данный момент больше всего. Это дублирования кода.

Хотя Опенкарт и как бы MVC но он нарушает один из принципов MVC потому что с дублирование кода тут просто беда.

Давайте посмотрим на один из контроллеров админ панели. http://joxi.ru/nAyKdw3tXz1oVm 
И это один из множества примеров. который есть в каждом файле я молчу о генерации $url вот пример из файла файла покупателя. Этот кусок кода встереатся в одном файле 9 раз. ????? 
Давайте посчитаем: 9 * ~40 строк = ~360 строчек кода которые можно отрефакторить к 20 максимум и будет один метод для всех файлах а в контролере это будет одна строка вместо 40  

			$url = '';

			if (isset($this->request->get['filter_name'])) {
				$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
			}

			if (isset($this->request->get['filter_email'])) {
				$url .= '&filter_email=' . urlencode(html_entity_decode($this->request->get['filter_email'], ENT_QUOTES, 'UTF-8'));
			}

			if (isset($this->request->get['filter_customer_group_id'])) {
				$url .= '&filter_customer_group_id=' . $this->request->get['filter_customer_group_id'];
			}

			if (isset($this->request->get['filter_status'])) {
				$url .= '&filter_status=' . $this->request->get['filter_status'];
			}

			if (isset($this->request->get['filter_approved'])) {
				$url .= '&filter_approved=' . $this->request->get['filter_approved'];
			}

			if (isset($this->request->get['filter_ip'])) {
				$url .= '&filter_ip=' . $this->request->get['filter_ip'];
			}

			if (isset($this->request->get['filter_date_added'])) {
				$url .= '&filter_date_added=' . $this->request->get['filter_date_added'];
			}

			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}

			if (isset($this->request->get['page'])) {
				$url .= '&page=' . $this->request->get['page'];
			}

А теперь представте волшебство Если бы можна было бы так

$url = $this->url->saveUrlParametrs('filter_name', 'filter_email', 'filter_customer_group_id');

И подобных ситуаций уйма. Про дублирование верстки я молчу вообще. Чтоб добавить чтото к товару нада єто продлублировать в 100500 файлах.
В мадженте к примеру страница редактирования или список в админке создается с помощью двох XML файлов где просто описиваются конфигурации и єтими конфигами можна решить около 75% задач что ставлятса к кодингу доходит редко и економит просто уйму времени. С версткой аналогично создаеш блок и подтягиваеш в нужное место и живеш и радуешся жизни.

 

Ну думал написать по больше но с временем не сложилось. Может потом добавлю что то.


 

118 коментарів


Recommended Comments



контрол с котрол в наше фсе (cmd еще) - модифицируйте готовое ( я бы точно не стал прыгать с ветки на ветку в полноценном проекте)

как вы могли полюбить опенкарт я не понял

он был, есть и будет лучше

Надіслати
  В 07.03.2018 в 17:30, ashap сказав:

контрол с котрол в наше фсе (cmd еще) - модифицируйте готовое ( я бы точно не стал прыгать с ветки на ветку в полноценном проекте)

как вы могли полюбить опенкарт я не понял

он был, есть и будет лучше

Expand  

Видите меня смущает то что уже как бы 3-я Версия вышла но нет вообще никаких сдвигов в этом плане и это грустно. Единственое что было сделано это загрузка шаблонов теперь не в 5 строк в а одну)))) Такое ощущение что все просто пофиг. Рефакторинг? не не слышал .

 

Надіслати
  В 08.03.2018 в 07:54, chukcha сказав:

Да?
А инициализация языковых переменных. Не? не слышал?
 

 

2.3. - не, не слышал?

Expand  

Да слышал. но это как то вообще не решает главных проблем. Да сделать небольшую печеньку это круто но как то особо не радует с такими темпами мы получим адекватный код к 10 версии ? или как ? 

Надіслати

Вы куда-то торопитесь?
Я? нет
Это мне напомнило одну статейку
почему я не буду работать с опенкарт,
Так там были приведены все ваши аргументы

И есть там ответ от Даниеля, и не один..

Код опенкрата  - для чайников, чтобы он не разбирался в хитросплетениях ооп методов

Здесь url
Здесь языковая пременная

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

  • +1 5
Надіслати
  В 08.03.2018 в 09:22, chukcha сказав:

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

И есть там ответ от Даниеля, и не один..

Expand  

не подскажите адресок где почитать? или хоть как загуглить, а то все как то ни о том нахожу

Надіслати
  В 08.03.2018 в 09:22, chukcha сказав:

Код опенкрата  - для чайников, чтобы он не разбирался в хитросплетениях ооп методов
А если ты разработчик, то тебе никто не мешает делать свой код так, как ты мыслишь

Expand  

Ну тут есть две стороны медали. Потому что эти чайники на этом учатся и потом идут далее. Как минимум код который идет с коробки должен быть примером а не учить мягко говоря "говнокодить". 

А отмазка о том что что код должен быть понятен я не говорю о том что вводить сложную архитектуру иди делать 20к обьектов скласами на все случаии жизни но хотябы убрать дублирование безмысленого кода. Просто проблема в том что переучиватся довольно трубдно. Вот хорошо что у меня ментор был который каждый комит проверял и обяснял где и что можно улучшить. 

Самый яркий пример это плагин Автоматическая обработка прайс листов.
Когда я открыл модельку  данного иодуля  сказать что я Аху*л это ничего не сказать.  22 000 строк в 10-15 методах ? Как такой код можна поддерживать или разширать ?
100500 вложеностей. Я 3 дня убил на то чтобы дописать простую функцию наценок. А все почему? потомучто из коробки идут такие же примеры

Надіслати
  В 08.03.2018 в 09:22, chukcha сказав:

Код опенкрата  - для чайников, чтобы он не разбирался в хитросплетениях ооп методов

Expand  

В результате имеем трёхколёсный велосипед, на котором люди пытаются проехать Тур де Франс.

 

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

Я уже много раз говорил: примитивность != простота, а ОК именно примитивный, а не простой. В плане простоты как раз местами всё совсем плохо и именно из-за лапши. Например, формирование ссылок в контроллерах (пример в первом посте): такой лапши в контроллере может быть по 5 повторов и нужно вчитаться в код, чтоб понять где для чего формируется ссылка в каждом из повторов.

  • +1 1
Надіслати

Так и в итоге варианты какие? Какая платформа хорошая или решения?

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

 

Надіслати
  В 08.03.2018 в 13:05, konorws сказав:


Когда я открыл модельку  данного иодуля  сказать что я Аху*л это ничего не сказать.  22 000 строк в 10-15 методах ? 
А все почему? 

Expand  

Может, умышленно запутывают в качестве мероприятия по защите от пиратства и усилению монетизации?

 

  Цитата

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

Expand  

Сколько стоит час работы Настоящего Специалиста?

Говнокодер стОит в пять раз дешевле = много дешёвых модулей и много готового функционала = много магазинов для бедных стартаперов = много продаж дополнений, модулей, шаблонов = прибыль Даниеля. Идея в том, что низкий порог вхождения (возможность говнокодить) делает систему популярной.

Как бы Вы интегрировали Магено с Новой Поштой? Есть готовый модуль?

Змінено користувачем florapraktik
Надіслати
  В 09.03.2018 в 08:18, rozario888 сказав:

Так и в итоге варианты какие? Какая платформа хорошая или решения?

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

 

Expand  

Все зависит от задачи есть задачи для которых я и сейчас использую опенкарт. И да везде свои проблемы

Надіслати
  В 09.03.2018 в 18:09, florapraktik сказав:

Может, умышленно запутывают в качестве мероприятия по защите от пиратства и усилению монетизации?

Expand  

Очень сомниваюсь для это у них есть специальный модуль закодирвоаный приложен для лицензий. 

  В 09.03.2018 в 18:09, florapraktik сказав:

Сколько стоит час работы Настоящего Специалиста?

Говнокодер стОит в пять раз дешевле = много дешёвых модулей и много функционала = много магазинов для бедных стартаперов = много продаж дополнений, модулей, шаблонов = прибыль Даниеля. Идея в том, что низкий порог вхождения делает систему популярной.

Как бы Вы интегрировали Магено с Новой Поштой? Есть готовый модуль?

Expand  

Насчет часа работы тут дело по разному обстоит.  К примеру у нас в компании на проекте на котором я сейчас работаю клиет платит 100$ за час работы. Ну есть по разному у меня знакомый работает то получает 50$ в час но у него там немного другая ситуация.

Насчет новой почты все зависит от того что именно вы хотите интегрировать. НЕу в большенстве случаев я думаю что нада делать одельное разширение.
Да модуль у меня есть но фактически он пренадлежит компании а не мне хотя автор я))))  По\тому поделится им я не смогу

Надіслати
  В 09.03.2018 в 18:18, konorws сказав:

Насчет часа работы тут дело по разному обстоит. К примеру у нас в компании на проекте на котором я сейчас работаю клиет платит 100$ за час работы. Ну есть по разному у меня знакомый работает то получает 50$ в час но у него там немного другая ситуация.

 

Expand  

Это был риторический вопрос, смысл которого, что Опенкарт даёт работу людям, готовым работать за 20$ или, даже, за 10, потому что гораздо проще найти людей, готовых платить 10$, чем людей, согласных платить 100.

ОС не стремиться конкурировать с Магенто напрямую, он скорее хочет расширить рынок за счёт доступности для гомнокодеров. Ну, мне так кажется)))

 

  Цитата

Да модуль у меня есть но фактически он пренадлежит компании а не мне хотя автор я))))  По\тому поделится им я не смогу

Expand  

Этот вопрос тоже риторический:) Я как-то решил найти модуль интеграции с НП для Престашопа и не нашёл. Точнее говоря, нашёл, но какой-то подозрительный. И я предположил, что с Магенто ситуация вряд-ли лучше.

Ваш модуль "знает" все отделения НП? Он связан с личным кабинетом НП? Создаст накладную со штрих-кодом одним кликом, в том числе на вторые и третие места?

 

Надіслати
  В 09.03.2018 в 18:18, konorws сказав:

  К примеру у нас в компании на проекте на котором я сейчас работаю клиет платит 100$ за час работы. Ну есть по разному у меня знакомый работает то получает 50$ в час но у него там немного другая ситуация.

Expand  

Что за проект такой за такие деньги? Или там прослоек в несколько рук))

По 100$ за час обычно берут BI-конторы, т.к. их инструменты могут бизнес на новый уровень вывести и там для .

Битрикс в среднем в районе 40-50$, если говорить о сайте и работами по нему.

Змінено користувачем rozario888
Надіслати

offtop

Семидесятилетний пациент пришел к сексопатологу с жалобой на половую слабость.
   - И как часто Вы теперь имеете секс?
   - Ну-у... раз в две-три недели.
   - Ну что ж, в Вашем возрасте это прекрасно.
   - Да, но мой сосед, который куда старше меня говорит что спит с женой каждую ночь.
   - И Вы говорите! Кто Вам мешает?

  • +1 4
Надіслати
  В 10.03.2018 в 07:29, rozario888 сказав:

Что за проект такой за такие деньги? Или там прослоек в несколько рук))

По 100$ за час обычно берут BI-конторы, т.к. их инструменты могут бизнес на новый уровень вывести и там для .

Битрикс в среднем в районе 40-50$, если говорить о сайте и работами по нему.

Expand  

Да у нас большая компания и клиенты у которых доходы в год с не мение чем 6 нулями в конце это в $

Надіслати
  В 09.03.2018 в 18:54, florapraktik сказав:

Это был риторический вопрос, смысл которого, что Опенкарт даёт работу людям, готовым работать за 20$ или, даже, за 10, потому что гораздо проще найти людей, готовых платить 10$, чем людей, согласных платить 100.

ОС не стремиться конкурировать с Магенто напрямую, он скорее хочет расширить рынок за счёт доступности для гомнокодеров. Ну, мне так кажется)))

 

Этот вопрос тоже риторический:) Я как-то решил найти модуль интеграции с НП для Престашопа и не нашёл. Точнее говоря, нашёл, но какой-то подозрительный. И я предположил, что с Магенто ситуация вряд-ли лучше.

Ваш модуль "знает" все отделения НП? Он связан с личным кабинетом НП? Создаст накладную со штрих-кодом одним кликом, в том числе на вторые и третие места?

 

Expand  

Видите в чем проблема тут вопрос не в попитке конкуренции а в Примитивности кода. Я не прошу строить ахренено большую систему с наворотами и так далее но убрать эту примитивность. Ведь говнокодеры так и не перестатнуть говнокодить пока им не заставиш или не покажеш как правильно. 

Надіслати

А на какой платформе нет говнокодеров или говнокода? Или сама платформа блещет. 

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

Надіслати

Проведите рефакторинг статьи. Подключите библиотеку под названием "пунктуация" и используйте функцию под названием "запятые". Ваше творение нечитабельно. 

  • +1 2
Надіслати

Так от ОС не требуется таких же наворотов как от Мадженто. Это инструменты разных классов для разных задач. Мадженто профессиональная экосистема для создания функционально сложных проектов с длительным жизненным циклом, а ОС это простенькая CMS для небольших проектов, простеньких стартапов и т.п.

Надіслати
  В 08.08.2019 в 15:52, EVMedvedev сказав:

Так от ОС не требуется таких же наворотов как от Мадженто. Это инструменты разных классов для разных задач. Мадженто профессиональная экосистема для создания функционально сложных проектов с длительным жизненным циклом, а ОС это простенькая CMS для небольших проектов, простеньких стартапов и т.п.

Expand  

<its="true">ебали мы в рот ваши мадженты</its>

простите за мой французский

Надіслати
  В 08.03.2018 в 07:49, konorws сказав:

Видите меня смущает то что уже как бы 3-я Версия вышла но нет вообще никаких сдвигов в этом плане и это грустно. Единственое что было сделано это загрузка шаблонов теперь не в 5 строк в а одну)))) Такое ощущение что все просто пофиг. Рефакторинг? не не слышал .

Expand  

Вот сюда лей всё и вся ему в ухи
https://github.com/opencart/opencart

 

ска.. брюс ли вышпилет все ваши мадженты и ворпресы с битриксами
photo_2019-04-29_20-33-44.thumb.jpg.ec00bec2dfa76a171363a0372700be23.jpg

Надіслати
  В 10.03.2018 в 17:19, rozario888 сказав:

А на какой платформе нет говнокодеров или говнокода? Или сама платформа блещет. 

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

Expand  

 

Г...но кодеры есть везде, просто их уровень разный. В ОС их особенно много потому что движок прост и с ним начинают работать в первую очередь люди с невысоким уровнем интеллекта, если судить по комментам того же ashap. А таких на этом форуме хватает. На форумах мадженто или Престашоп я такого не встречал. Более сложный движок требует больше ума, что и проявляется в том числе и в публикуемых комментариях.

Надіслати

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

Important Information

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