Jump to content
Sign in to follow this  
Intermonte

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

Recommended Posts

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

Share this post


Link to post
Share on other sites
Только что, Intermonte сказал:

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

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

 

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

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


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


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

  • +1 3

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 минуту назад, Intermonte сказал:

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

 

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

  • +1 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 час назад, Intermonte сказал:

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

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

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

 

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

 

 

Share this post


Link to post
Share on other sites
1 час назад, snastik сказал:

 

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
8 минут назад, snastik сказал:

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

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

  • +1 1

Share this post


Link to post
Share on other sites

snastik, markimax, продолжайте, я записываю. :geek:

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
26 минут назад, Intermonte сказал:

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

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

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

Edited by florapraktik
  • +1 1

Share this post


Link to post
Share on other sites
42 минуты назад, Intermonte сказал:

нужно делать модификаторами?

 

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

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

  • +1 1

Share this post


Link to post
Share on other sites
6 минут назад, nikifalex сказал:

 

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

Share this post


Link to post
Share on other sites
4 минуты назад, florapraktik сказал:

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

 

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

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

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

Share this post


Link to post
Share on other sites
5 минут назад, chukcha сказал:

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

 

Ну и что. И как тут поможет vqmod, или, прости господи, ocmod? Он еще быстрее сломается.

Ну перенесли name в manufacturer_description. Полчаса и готово.

Думать то надо в любом случае. И тестировать.

 

Share this post


Link to post
Share on other sites

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

 

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

 

А не причем

И

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

 

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

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

Share this post


Link to post
Share on other sites

nikifalex, а вы где посоветуете вести систему контроля версий? Гитхаб? 

Share this post


Link to post
Share on other sites
14 минут назад, nikifalex сказал:

 

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

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

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

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

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

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

 

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

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

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

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

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

 

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

Edited by florapraktik

Share this post


Link to post
Share on other sites
3 часа назад, Intermonte сказал:

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

Да!

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

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

 

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

 

А не причем

И

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

 

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

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

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

 

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

 

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

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

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

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

 

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

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

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

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

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

 

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


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

Share this post


Link to post
Share on other sites
2 минуты назад, snastik сказал:

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

 

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

Share this post


Link to post
Share on other sites
5 минут назад, chukcha сказал:

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

 

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

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

Share this post


Link to post
Share on other sites
5 минут назад, snastik сказал:

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

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

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

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

 

 

Share this post


Link to post
Share on other sites
18 минут назад, chukcha сказал:

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

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

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

 

 


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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.