Перейти к содержанию
Intermonte

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

Рекомендуемые сообщения

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, Intermonte сказал:

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

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

 

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

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


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


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

  • +1 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Intermonte сказал:

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

 

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Intermonte сказал:

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

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

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, snastik сказал:

 

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

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, snastik сказал:

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

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
26 минут назад, Intermonte сказал:

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

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

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

Изменено пользователем florapraktik
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
42 минуты назад, Intermonte сказал:

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

 

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

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, nikifalex сказал:

 

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, florapraktik сказал:

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, chukcha сказал:

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

 

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

А не причем

И

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.