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

Что такое "костыли" на Опенкарт


Intermonte

Recommended Posts

Привет всем! Вот берем мы "чистый" движок и начинаем делать магазин. И хочется сделать так, чтобы все работало хорошо и грамотно. 

 

Что подразумевается под "костылями"? Любую правку контроллера, модуля и т.п. можно считать костылем или как? Правки представления и контроллеров темы магазина?

 

Т.е. как пример - поменяли мы местами блоки. Стандартно через админку этого не сделать. Меняется в шаблоне. Это "костылем" не считать?

 

Если лезем в код - это уже не стандарт. Т.е. либо принимать как есть. Либо делать как хотим. Движок мы этим не затрагиваем, но вот тема теряет возможность обновления. Это "костыли"?

 

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

 

Можно через модификаторы, но это тоже как бы "костыли". Но все с ними работают. И любой сторонний модуль работает через модификаторы.

 

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

 

Какое ваше мнение?

 

 

Надіслати
Поділитися на інших сайтах


Только что, Intermonte сказал:

Привет всем! Вот берем мы "чистый" движок и начинаем делать магазин. И хочется сделать так, чтобы все работало хорошо и грамотно. 

 

Что подразумевается под "костылями"? Любую правку контроллера, модуля и т.п. можно считать костылем или как? Правки представления и контроллеров темы магазина?

 

Т.е. как пример - поменяли мы местами блоки. Стандартно через админку этого не сделать. Меняется в шаблоне. Это "костылем" не считать?

 

Если лезем в код - это уже не стандарт. Т.е. либо принимать как есть. Либо делать как хотим. Движок мы этим не затрагиваем, но вот тема теряет возможность обновления. Это "костыли"?

 

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

 

Можно через модификаторы, но это тоже как бы "костыли". Но все с ними работают. И любой сторонний модуль работает через модификаторы.

 

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

 

Какое ваше мнение?

 

 

 

Смотрите. Правки правкам рознь.
Вот у вас кран на кухне потек, а вы его синей изолентой - это костыль. А если вы заменили или доработали деталь крана - это не костыль.

 

Так же и в opencart. Есть допустим паттерн MVC, в опенкарте он MVC+L

Так вот если вы взяли и поживому всунули во view запрос в базу - это костыль. Если использовали $_GET вместо $this->request->get  - это тоже костыль.


Если взяли любую стороннюю библиотеку и подключили ее через require_once, а потом прямо по коду $myclass= new Myclass(), а не добавили его системными методами в startup.


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

  • +1 3
Надіслати
Поділитися на інших сайтах

1 минуту назад, Intermonte сказал:

Ну а как пример - вот есть задача. И 2 варианта - делаем напрямую в файлах или пишем модификаторы. Что будет "костыльным" решением? 

 

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

  • +1 1
Надіслати
Поділитися на інших сайтах

Модификаторы создают файл один раз. Т.е. в админке жмется кнопка, "обновить модификаторы". Создается модифицированый файл и в дальнейшем используется он. Это тормозит работу движка?

Надіслати
Поділитися на інших сайтах


1 час назад, Intermonte сказал:

Меняется в шаблоне. Это "костылем" не считать?

Нет конечно, Это шаблон..

Если вы его не собираетесь обновлять

 

@snastik полноценно описал костыльность

 

 

Надіслати
Поділитися на інших сайтах

1 час назад, snastik сказал:

 

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

Не соглашусь - если делайте изменения в opencart  - только модификаторами.
Иначе при обновлении как раз вообще все изменения "затрутся"
"Какой" к моНАХам "в живую"
Да и другим разработчикам проще работать с модификаторами чем "с живым" искать где [censored] "кто-то" изменял систему

  • +1 1
Надіслати
Поділитися на інших сайтах

8 минут назад, snastik сказал:

Марк, выдохни. Если под себя. Какой там окмод. Пойди найди в базе в 30 зарисях где что куда затрагивает.

Я думаю тебе надо выдохнуть... Выключай и смотри (промолчу про кучу модулей "редактирования" ocmod) . Не забывай про кеш модификаторов еще ;)
А не ищи потом кто и где куда вставил какой то костыль "в живую". (а про обновление версий opencart вообще можно потом "забыть")
Ocmod такой же стандарт де факто совместной разработки как к примеру гит (образно).

  • +1 1
Надіслати
Поділитися на інших сайтах

26 минут назад, Intermonte сказал:

То есть если движок планируется потом обновлять - нужно делать модификаторами? 

Или после обновления снова вносить те же самые правки.

Ведите журнал правок, что-ли.

Змінено користувачем florapraktik
  • +1 1
Надіслати
Поділитися на інших сайтах


6 минут назад, nikifalex сказал:

 

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

И накатить изменения движка будет очень просто

О! а можно подробней? Это, типа, гит хаб, да?

Я делал правки в 2.1.1.2 (типа)

Потом решил обновиться до 3.1.0.2. (например, если будет когда-то)

Эта система контролю версий мне как-то поможет?

Надіслати
Поділитися на інших сайтах


Система контроля версий - не панацея

 

Есть патчи и есть ПАТЧИ

 

одни практически ничего не меняют, а только чуть-чть улучшают (например лимит для автокомплит)

 

а другие делают глобальные  изменения, - пример в производителях локализованне имена.

 

Надіслати
Поділитися на інших сайтах

не путайте праведное с грешным

 

причем здесь " И как тут поможет vqmod, "

 

А не причем

И

При том что все зависит от того как вносить изменения
А если есть еще и зависимости, ведь я показал - стартовые данные

 

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

Что иногда нельзя отключить (откатить) один ocmod, не откатив другой
Ну а че, иогда вон разработчики шаблонов, тупо переписывают под себя контроллеры, без всяких ocmod - вот это КОСТЫЛЬ!

Надіслати
Поділитися на інших сайтах

14 минут назад, nikifalex сказал:

 

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

вот есть 2.3, обновляйтесь на 2.3.1 на 2.3.2 и т.д. Думаю проблем не будет.

Короче будьте реалистами и не ищите себе проблемы на пустом месте

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

Перейти можно? С 1.5 на 2.3, можно? Теоретически, с бубном?

Как это происходит?

 

Я скачиваю мажорную такую версию. Запихиваю в неё свою немажорную старую базу, которой уже три года, по-ходу.

Предположим, звёзды были благосклонны и база стала (порвал два бубна).

Но, я правил файлы движка! ОК, я поднимаю свои амбарные книги и по ним снова правлю свежескаченный авторский код.

...и тут я осмелюсь предположить, что окмод нифига не помог-бы ибо на мажора не стал бы (на то он и мажор).

...система контроля версий как поможет?

 

Где я панапутал?

Змінено користувачем florapraktik
Надіслати
Поділитися на інших сайтах


3 часа назад, Intermonte сказал:

То есть если движок планируется потом обновлять - нужно делать модификаторами? 

Да!

2 часа назад, chukcha сказал:

не путайте праведное с грешным

 

причем здесь " И как тут поможет vqmod, "

 

А не причем

И

При том что все зависит от того как вносить изменения
А если есть еще и зависимости, ведь я показал - стартовые данные

 

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

Что иногда нельзя отключить (откатить) один ocmod, не откатив другой
Ну а че, иогда вон разработчики шаблонов, тупо переписывают под себя контроллеры, без всяких ocmod - вот это КОСТЫЛЬ!

I love vqmod - по сравнению с ocmod земля и небо. Даниэль мудак с его окмодом полный!

 

Разработчики которые переписывают исходный код должны гореть в аду!

 

2 часа назад, florapraktik сказал:

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

Перейти можно? С 1.5 на 2.3, можно? Теоретически, с бубном?

Как это происходит?

 

Я скачиваю мажорную такую версию. Запихиваю в неё свою немажорную старую базу, которой уже три года, по-ходу.

Предположим, звёзды были благосклонны и база стала (порвал два бубна).

Но, я правил файлы движка! ОК, я поднимаю свои амбарные книги и по ним снова правлю свежескаченный авторский код.

...и тут я осмелюсь предположить, что окмод нифига не помог-бы ибо на мажора не стал бы (на то он и мажор).

...система контроля версий как поможет?

 

Где я панапутал?


обновляться нонстоп - чистой воды паранойя, потому как с постоянными чаяниями даниэля - себе дороже!
Если нет критичных устранений безопасности, что 2.0 что 2.3 - одни яйца, только с разной структурой файлов.

Надіслати
Поділитися на інших сайтах

2 минуты назад, snastik сказал:

I love vqmod - по сравнению с ocmod земля и небо. Даниэль мудак с его окмодом полный!

 

Иронии не понял. Спишу на субботу

Надіслати
Поділитися на інших сайтах

5 минут назад, chukcha сказал:

Иронии не понял. Спишу на субботу

 

Да какая ирония.
Окмод - кнопка обновляем нонстоп - не айс!
Редактирование в базе файлов - не айс!
Отсутсвие возможности упорядочить приоритет применения модфикаторов - не айс!

По сравнению с ocmod, методология vqmod - на голову взрослее!

Надіслати
Поділитися на інших сайтах

5 минут назад, snastik сказал:

Отсутсвие возможности упорядочить приоритет применения модфикаторов - не айс!

Кажется по <code> или по имени файла

vqmod тоже порядок не ахти

Я 100% согласен, что ocmod требует доработки - хотя бы указания порядка применения

 

 

Надіслати
Поділитися на інших сайтах

18 минут назад, chukcha сказал:

Кажется по <code> или по имени файла

vqmod тоже порядок не ахти

Я 100% согласен, что ocmod требует доработки - хотя бы указания порядка применения

 

 


Для меня очень долго была загадка - почему не внедрили vqmod нативно.
Но был прецедент, люди на стороннем проекте пытались забрать себе технологию но там все упирается в лицензионные права.

Но ocmod - это ДНО, в том виде в котором он есть. Начиная от логов, заканчивая приоритетом выполнения. Про это @rb2 написал у себя в блоге, чуть ли не на следующий день после появления ветки 2.x

Надіслати
Поділитися на інших сайтах

Да , логт супер информативные, и еще с ошиьками

 

Но то что он не чисти логи, то вообще, и на озвученную проблему просто закрыл ..

Надіслати
Поділитися на інших сайтах

1 минуту назад, chukcha сказал:

Да , логт супер информативные, и еще с ошиьками

 

Но то что он не чисти логи, то вообще, и на озвученную проблему просто закрыл ..

Даниель - это вещь в себе!
Мы сейчас готовим маленькую "бимбу" которая закрывает одну нативную уязвимость дефолтного движка.
Ему писали про нее в тикетах. Парень сказал - это не баг это фича.
По факту @Yoda на следующей неделе опубликует подробности. Но это "со дна постучали".

Надіслати
Поділитися на інших сайтах

Костыли это лезть в ядро и внаглую там писать свой код (контроллеры и модели ) нужно специально писать ocmod файлы. Потому что ты щас там меняешь, а после покупается модуль который написан ocmod и он у тебя не работает из-за того что ты там нахимичил, что то. Короче в ядро лезть нельзя! Иначе будут в будущем траблы!

Отправлено с моего m2 через Tapatalk

Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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