[Holy War] XenForo глазами стороннего разработчика

Статус
В этой теме нельзя размещать новые ответы.

Malezha

Проверенные
Сообщения
132
Реакции
75
Баллы
5,525
Все ниженаписанное является только моим мнением и не претендует на прописную истину ?

В бородатые времена XenForo 1.4 я познакомился с этим чудесным продуктом как пользователь и был потрясен: огромное количество уже встроенных возможностей и бесконечный потенциал для расширения. А насколько тут все просто и интуитивно, установка плагинов, тем - двумя кликами в админ-панели и никакой мороки с доставкой и распаковкой архива на сервере, и точно такое же простое обновление всего этого богатства. Лучший движок для сообщества одним словом!

Потом я уже узнал (когда понадобилось расширить функционал) что под капотом там Zend Framework, хоть и первой версии (на тот момент она уже была устаревшей), но для меня показывало, что разработчики XenForo не занимаются изобретением велосипеда, а делают свой продукт, хоть и с использованием не самых новых инструментов, но тех, где они профессионалы. В те времена Composer еще не был де-факто стандартом, хотя уже стал полезным инструментом, PSR-0 воевал с PSR-4, а Laravel все еще добавлял не косметические изменения новые релизы, а XenForo был в духе того времени (хотя сейчас стало ясно, что уходящего), так что проблем с дописыванием своего функционала возникло не много.

Время шло, Composer стал стандартом, PHP-Fig стали принимать не только рекомендации по стилю написания кода, но и рекомендации по контрактам (интерфейсам) самых часто используемых компонентов в фреймворках, которые в свою очередь стали поддерживать и крупнейшие игроки. И вот выходит XenForo 2. У меня тогда не было нужды в его использовании, и я пропустил большую часть подробностей, хотя краем уха и читал, что теперь это совсем другой продукт, что разработчики не побоялись сломать обратную совместимость, теперь XenForo современный и отвечающий текущим стандартам серьезных приложений, чуть ли не CMF для сообществ. С тех пор я прибывал в заблуждении. Конечно, небольшое подозрение закладывалось, когда никто не трубил про переезд на новую версию Zend Framework или смене фреймворка на Symfony. Абсолютной правдой будет то, что я сам себя ввел в это заблуждение.

В итоге только сейчас я добрался до XenForo 2. Отличный продукт, плохой код. Да, вот так сразу и это будет мое полное мнение. Ах, аргументы, да зачем они вам нужны? Вы же не хотите, чтобы у вас горело от моих слов, как горит у меня от XenForo? Хотите? Ну тогда читайте дальше.

Мое первое заблуждение по поводу XenForo 2 состоит в том, что я поверил, что продукт использует фреймворк. Только не подумайте, что я не вижу свою жизнь без фреймворков, но я и не болею синдромом Тараса КТЛ: если вам нужен простой блог, то не нужно тащить Symfony с богомерзкой Doctrine, это инструменты для проектов с куда более сложной бизнес-логикой, есть Wordpress или MaxSite CMS. Я прекрасно понимаю, что ни один фреймворк не является панацеей - это только инструмент, но этот инструмент полностью покрыт тестами, имеет хорошую документацию, огромное количество расширений и развитое сообщество разработчиков. И это я не только про Symfony, но и про любой другой «крупный» фреймворк. Существует только одна проблема - из-за широких возможностей к расширению функционала необходимо платить быстродействием. Это очень серьезный аргумент если бы не одно «но»: все современные фреймворки представляют из себя сконфигурированный набор компонентов и именно в конфигурации, а также возможности её менять идет падение скорости. Можно самостоятельно собрать необходимые компоненты и сделать свой инструмент (собственно так и родился Laravel из Symfony), а можно написать yet another framework, но зачем?

Я открываю XF\Http\Request и вижу упрощенный Symfony\Component\HttpFoundation\Request, я смотрю неймспейс XF\Mvc и вижу компонент Symfony Routing и кусочек HttpKernel. И так код весь XenForo. Что же в этом плохого? XenForo не придерживается PSR. И тут начинается холивар на тему что это всего рекомендации и вообще все PSR с интерфейсами делают фреймворки одинаковыми. Но плохо ли это? У меня есть библиотека, которая в процессе роботы не прочь кэшировать промежуточные результаты для ускорения последующих итераций работы. Когда я её начал писать, предполагалось, что она будет использоваться вместе с Laravel и я сделал зависимость от Illuminate\Contracts\Cache\Repository, но чуть позже библиотека пригодилась и для проекта на Symfony. Конечно вы догадались, я переправил зависимость на Psr\SimpleCache\CacheInterface. Все так просто, потому что и Laravel и Symfony придерживаются PSR-16. Ну а XenForo использует компонент кэша от Doctrine. Конечно есть адаптеры, приводящие к PSR-6 и PSR-16, но их нужно установить, используя Composer.

Если фреймворки я и не считаю панацеей, то без Composer написание чего-либо длиннее 100 строчек кода для меня уже вызывает раздражение, потому что к хорошему привыкаешь. Composer хоть и является в первую очередь менеджером пакетов, без которых сейчас могут обойтись разве что фанаты чистого кода, он привнес не только упрощение в сравнении с PEAR, но и упорядочил целое семейство загрузчиков и объединил их. Теперь достаточно сделать require_once действительно только один раз и у вас все работало (после того как вы опишите правила загрузки в специальном файле). Отличный инструмент, который используется в XenForo 2, правда с парой небольших ограничений - файл с конфигураций автозагрузки и список зависимостей, а так же список установленных пакетов нам не дали (ну точнее не дали composer.lock, но почему то забыли про vendor/composer/installed.json). Объективной причины, я честно говоря не вижу, и то что dokuwiki/utf8 не пакет, а просто выдернутый из dokuwiki файл, который заставили прикинуться пакетом (и зачем то дописали что это написано для XenForo - vendor/dokuwiki/utf8/utf8.php, строка 8) слишком бросается в глаза что бы скрывать composer.json. Ну ничего, там дали для использования Composer при разработке плагинов, которые в свою очередь порождают другие костыли - носи все зависимости с собой (даже те, которые уже есть в XenForo). Да-да, необходимо обеспечить установку дополнений из архива прямо в браузере, но почему бы попытаться совместить оба варианта? «Для нас это не проблема» - сказали разработчики , вроде бы мелочь, но очень удобная.

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

Немного вводит в недоумение необходимость описывать мета-информацию (обработку событий, роутинг и т.п.) для плагина в админ-панели. Описывать все это в xml и json мало удовольствия - авто дополнения нет, приходится все время подсматривать параметры. Да и почему для описывания одного у нас xml, а для другого уже json? Писало два человека, один из которых обожает xml, а другой терпеть его не может? Вообще этим очень страдают комментарии к коду: в одном методе есть полноценный phpDoc, в другом чисто типизация, в третьем вообще нет комментариев и все эти методы идут один за другим. Да и в плане кодстайла порой вопросы «зачем» и «почему» возникают. Service Locator мимикрирует под di-контейнер, хотя никакого внедрения зависимостей не предусмотрено, как следствие - везде одна статика. С другой стороны, написали же свой Active Record, могут, когда хотят. Точнее, когда пишу код не джуны.

Если взять все описанное выше, то я просто докопался до мелочей, не более. Ведь пишут же непростые плагины, да и сам XenForo использует каждое второе сообщество, чего еще рядовому разработчику хотеть? Вопрос открытый, но с моей точки зрения, XenForo 1 занимал пустую нишу на рынке как раз потому, что был написан во времена уже сложившихся (де-факто) базовых стандартов проектирования и написания приложений на PHP и XenForo 2 мог развивать данное течение используя уже современные стандарты (в отличии от IPB и vBulletin плавающих в море легаси). Тот факт, что вторая версия полностью переписана на свою кодовую базу делает из продукта еще один фреймворк, вот только никому ненужный, ведь его нельзя использовать где-то еще (без костылей), да и не стоит из-за сомнительного качества кода. Неужели авторы XenForo боятся оттолкнуть писателей плагинов чуть более сложными паттернами, брать количеством дополнений, а не их качеством?

Наверное, стоит закончить брызгаться желчью и подвести какие-то итоги всему написанному: XenForo 2 лучший из виденных мною в нише продуктов для сообществ, но он мог быть еще лучше. Спасибо за прочтение, открыт к дискуссии и очень хочу услышать ваше мнение ?
 
Хмм, ну, если честно, даже не знаю, как реагировать... Вроде бы, все аргументировано... Очень интересно было бы послушать, что по этому поводу считает BINGO_SHARK, он, как-нинкак, один из лучших разработчиков, по-крайней мере, в русском сегменте...
 
Нужно рассматривать ксен как самостоятельный продукт, но не как поделку над фреймворком.

Ап. Композер кстати появился в 2.1.
 
Ясно понятно, очередной лара дрочер и не больше который начитался ларакаст
Модераторы, сносите тему, меня раскрыли, это очередная пропаганда Laravel и только.
Вот только в Laravel сейчас столько, мягко говоря, спорных решений и в первую очередь из-за Тейлора, который пишет фрейм только под себя.

Нужно рассматривать ксен как самостоятельный продукт, но не как поделку над фреймворком.
Конечно, в сравнении с тем же IPB все куда приятнее, в плане написания дополнений. Но мне интересно, ни у кого не закрадывалось подобных вопросов к разработчикам XenForo, всех все устраивает?
 
Модераторы, сносите тему, меня раскрыли, это очередная пропаганда Laravel и только.
Вот только в Laravel сейчас столько, мягко говоря, спорных решений и в первую очередь из-за Тейлора, который пишет фрейм только под себя.


Конечно, в сравнении с тем же IPB все куда приятнее, в плане написания дополнений. Но мне интересно, ни у кого не закрадывалось подобных вопросов к разработчикам XenForo, всех все устраивает?
IPB Г - Говно, даже рядом не стоит с XF
 
Malezha, вы абсолютно не разобрались в вопросе. Композер есть в 2.1, роутинги, как и виджеты и прочее указывается в админке при разработке и автоматически импортируется.
 
Композер есть в 2.1
Он как бы есть и в 2.0, вот только нет composer.json, которого нет и в бете 2.1 (только что скачал отсюда).
роутинги, виддеты и прочее указывается в админке при разработке
Я об этом и пишу, но это по сути вкусовщина (как и весь тот абзац), ведь в любом случае нужно держать инстанс XenForo для тестирования написанного. Были бы методы для тестирования работоспособности плагина, не нужна была бы и сама админка при разработке.
 
А что тут говорить? Если было сделано так, на это были разные причины как во многом для поддержки и старых версий, учитывая что есть клиенты у них и на php 5.2 и не только. Но они потихоньку отказываются от легаси как и тот utf8 т.к он так же был нужен. Но мы увидели и пошли орать. ОООООООО ведь мы лара дрочеры и не работали с кодом на старых версиях php.
Ой малышу не дали composer.json на что были объективные причины, давайте поплачу какие они плохие.

А ну да конечно же разработчики такие плохие, все плохие и для 100 строчек и более я подключаю фреймворк, это очень печально.
We've made this mostly automatic in XF 2.1 with thanks to Sim's guide (linked above). All you need to do is add a composer_autoload entry to your addon.json file which points to your vendor composer directory and XF will automatically register any composer autoloaders found into our own autoloader.
Ух ты прикинь для тебя всё сделали и для твоего удобства.
 
.по поводу Composer'a: это вопрос времени. Скорее всего разработчики откроют нам весь спектр возможностей композера в следующих релизах, что уже делают. Они к этому идут. Как и ко всем новым технологиям, чего мало в каких движках увидишь.

По поводу фреймворка движка: я не понимаю, что в этом плохого. VK вообще php под себя переписал. Да и наличие этого как бы фреймворка упрощает работу с движком для разработчиков, потому что он написан для этого, а не сделан универсально. И, как уже сказали, рассматривать кодовую базу движка как фреймворк не совсем корректно, потому что это самостоятельный продукт, который хочет совместить в себе быстродействие и простую доработку.

По поводу XML: запись в файлы автоматически идёт, руками никто ничего не правит. И по поводу того, что это вкусовщина: так же можно сказать и про использование ОС с интерфейсом, ведь с компьютером можно работать с клавиатуры. Так что работа с роутингами и прочими вещами из админки (т.е. используя интерфейс) упрощают процесс разработки и сокращают время. И сама концепция использования XML себя оправдывает. Это удобный перенос и у движка есть все данные, которые удобно использовать. Стоить напомнить, что в том же Laravel, мы также указываем роутинги (только в PHP файле), как и в любом другом фреймворке.

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

Ну и не стоит забывать, что всё это разрабатывают три человека, два из которых ещё набираются опытом. И также стоит учитывать, что в данный момент ведётся активная доработка продукта и все кривые моменты стараются устранять.
Критиковать XF2 ещё рано, ведь это не vBullentin или IPB, которые стоят на месте больше 10 лет (а кто-то почти 20), ничего кардинально не изменив в своих продуктах. Учитывая то, что за ними стоят целые компании, а значит, штаб разработчиков.

.ещё по поводу composer.json: дополнения устанавливаются через веб-интерфейс, а не через консоль. А, как известно, тяжёлые библиотеки Composer не моментально загружает, что нужно учесть разработчикам и каким-то образом не давать терять коннект с юзером, чтобы PHP скрипт работал и загрузка вендоров не оборвалась. Ведь много людей сидят на хостингах, а не на впс, и не имеют консоли, чтобы произвести установку из консоли.
 
Последнее редактирование модератором:
есть клиенты у них и на php 5.2 и не только
Поржал, навскидку Guzzle 6 просит минимум 5.4, который уже не поддерживает года этак три.
ОООООООО ведь мы лара дрочеры и не работали с кодом на старых версиях php.
Есть старые версии, а есть говно мамонта, и их использование мягко говоря не рекомендуемое. Можно продолжать риторику и дойти до необходимости поддержки . Правда XenForo могли спокойно ломать легаси выпуская вторую версию следуя семантическому версионированию. Кстати, если смотреть в бете на vendor/composer/installed.json, то минимальной версией будет уже 5.6 (машем ручкой клиентам с 5.2 и не только ?).
We've made this mostly automatic in XF 2.1 with thanks to @Sim's guide (linked above). All you need to do is add a composer_autoload entry to your addon.json file which points to your vendor composer directory and XF will automatically register any composer autoloaders found into our own autoloader.
Ух ты прикинь для тебя всё сделали и для твоего удобства.
Я верил в разрабов, спасибо им ?, теперь это официально не костыль, а фитча ?
Ой малышу не дали composer.json на что были объективные причины, давайте поплачу какие они плохие.
Эти Ваши объективные причины очень похожи на троллинг и почему то совсем не гуглятся.
А ну да конечно же разработчики такие плохие, все плохие и для 100 строчек и более я подключаю фреймворк, это очень печально.
Вас так зацепило что я в своей работе активно использую фрейморки (правда и не только), что вы передергиваете написанное и интерпретируете чтобы что? Неужели мои мысли настолько крамольны, что нельзя не поддеть. Я писал, что любой фреймворк или готовый продукт просто инструмент, то что у вас сложилось негативное впечатление от использования того же Laravel не делает из него плохой инструмент. Точно так же и с XenForo, я не обливаю его грязью, а спрашиваю о интересующих меня вещах.

BINGO_SHARK, огромное спасибо за ответ без откровенного троллинга.
.по поводу Composer'a: это вопрос времени. Скорее всего разработчики откроют нам весь спектр возможностей композера в следующих релизах. Они к этому идут. Как и ко всем новым технологиям, чего мало в каких движках увидишь.
Факт, и возможности беты (Captain, спасибо за информацию, пропустил её) это подтверждают.
Я совсем не против xml, скорее просто не очень верно составил предложение. Тот же роутинг описывается в xml, слушатели событий уже в json. Вроде как можно было бы использовать или xml, или json, но почему оба сразу? Это не вариант Symfony, когда можно конфигурировать роуты хоть через аннотации, а тут два разных синтаксиса одновременно.
А по поводу тестирования возможностей - как это автоматизировать? Ведь у дополнений возможности разные. И тестирование, естественно, должно быть ручное.
Автотесты в смысле один раз тесты написали, перед релизом запускаем, проверяем что весь запланированный функционал есть - релиз. Ручное тут подразумевается, каждый раз ручками правим базу, смотрим глазами результат. Для автоматизации всяких проверок отдельных частей уже давно есть огромное количество инструментов, да и эмулировать браузер и прверить наличие нод по селектору давно не проблема.
По поводу тестов: любой разработчик во время разработки плагина смотрит на то, что у него выходит, никто не пишет вслепую, и пропустить какую-то ошибку в синтаксисе будет сложновато.
В синтаксисе конечно, интерпретатор матюкнется на неё сразу, а вот всякие ошибки-описки в логике можно и не сразу заметить. Вы же перед публикацией дополнений проводите ручное тестирование, но это просто, пока у вас с 10 ассертов. Хотя не во всяком плагине будет больше. Наверное, я просто привык писать тесты на важные участки кода и эта притенения необоснованна в контексте XenForo.
Ну и не стоит забывать, что всё это разрабатывают три человека, два из которых ещё набираются опытом. И также стоит учитывать, что в данный момент ведётся активная доработка продукта и все такие моменты стараются устранять.
Да и наличие этого как бы фреймворка упрощает работу с движком для разработчиков, потому что он написан для этого, а не сделан универсально. И, как уже сказали, рассматривать кодовую базу движка как фреймворк не совсем корректно, потому что это самостоятельный продукт, который хочет совместить в себе быстродействие и простую доработку.
В том то и дело, что подобные продукты, превращаются в заточенные под себя фреймворки, как только заканчивают шлифование кода и набираются опытом. Лично я прошел такой процесс и для меня это просто потеря времени для команды. Выйдет ли у них - вот он вопрос и смысл всего моего "нытья", команда XenForo тоже дорастет до большой команды и сможет ли она избежать той стагнации, в которой сейчас находиться конкуренты? Я (наивно) считал, что набрав опыта в работе с первой версий, получив фидбек от сообщества, последует современный продукт, а не песочница для набирания опыта, просто не ожидал, что кому то сейчас придет в голову наступать на те же грабли в 2017 году (когда вышла вторая версия) и писать уже давно написанные решения еще раз. Надеюсь, что я ошибаюсь в своем мнении.
 
Последнее редактирование:
Есть старые версии, а есть говно мамонта, и их использование мягко говоря не рекомендуемое. Можно продолжать риторику и дойти до необходимости поддержки . Правда XenForo могли спокойно ломать легаси выпуская вторую версию следуя семантическому версионированию. Кстати, если смотреть в бете на vendor/composer/installed.json, то минимальной версией будет уже 5.6 (машем ручкой клиентам с 5.2 и не только ?).
Да ты что, правда? А я не знал, ведь они с каждой своей версией поднимают планку. Ты прикинь.

Вас так зацепило что я в своей работе активно использую фрейморки (правда и не только), что вы передергиваете написанное и интерпретируете чтобы что? Неужели мои мысли настолько крамольны, что нельзя не поддеть. Я писал, что любой фреймворк или готовый продукт просто инструмент, то что у вас сложилось негативное впечатление от использования того же Laravel не делает из него плохой инструмент. Точно так же и с XenForo, я не обливаю его грязью, а спрашиваю о интересующих меня вещах.
Серьезно? Для многих типов сайтов, ваша лара просто мусор и не более и из стока жрать 600 мб оперативы ммм найс... Где даже и половины функционала просто не пригодится а он будет дергать кучу не нужных зависимостей. Есть кучу альтернатив и есть не большие версии фреймов. А использовать для 100 строчек кода фреймворк, мммм найс

Я совсем не против xml, скорее просто не очень верно составил предложение. Тот же роутинг описывается в xml, слушатели событий уже в json. Вроде как можно было бы использовать или xml, или json, но почему оба сразу? Это не вариант Symfony, когда можно конфигурировать роуты хоть через аннотации, а тут два разных синтаксиса одновременно.
мда гений обработчики событий то же в xml...

Всё это выглядит как "нытьё", хотя оно и есть
 
Последнее редактирование:
Тот же роутинг описывается в xml, слушатели событий уже в json.
Те данные, которые получаются, при билде релиза\экспорте выходят в xml. В dev output же всё в json.
96319
96320
96321
Тут либо Вы что-то неправильно поняли, либо неправильно выразились.
 
mizaider, нет тут лара дрочер пытается, что то доказать и при этом ничего не зная о движке.
 
Captain, вообще, что в сообществе по OpenCart, что здесь, каждый год появляется тип, который начинает "ваша цмс говно, там устаревшие технологии и говнокод, а вот фреймворк %имяфремворка% лучше" при этом эти люди не берут во внимание обратную совместимость и прочие "не нужные" вещи. Ещё раз, ксен - цмс со своими правилами и законами, фреймворки - это основа каторая сама по себе ничего не умеет. Хватит сравнивать жопу с пальцем) год сурка какой-то :D
 
Я совсем не против xml, скорее просто не очень верно составил предложение. Тот же роутинг описывается в xml, слушатели событий уже в json. Вроде как можно было бы использовать или xml, или json, но почему оба сразу? Это не вариант Symfony, когда можно конфигурировать роуты хоть через аннотации, а тут два разных синтаксиса одновременно.
.ммм... Вам стоит побольше изучить движок. Все данные, которые экспортируются для дополнения, хранятся в XML. В json хранятся данные только на этапе разработки в папке _output. Почему так, нужно смотреть в движок. Не особо интересовался этим.

Автотесты в смысле один раз тесты написали, перед релизом запускаем, проверяем что весь запланированный функционал есть - релиз.
Не совсем понял, как это.

Ручное тут подразумевается, каждый раз ручками правим базу, смотрим глазами результат. Для автоматизации всяких проверок отдельных частей уже давно есть огромное количество инструментов, да и эмулировать браузер и прверить наличие нод по селектору давно не проблема.
Никто ничего не правит ручками. Вы, видимо, не знакомы с процессом разработки дополнений =)

В синтаксисе конечно, интерпретатор матюкнется на неё сразу, а вот всякие ошибки-описки в логике можно и не сразу заметить.
Ни одно автотестирование не позволит определить ошибку в логике работы. Это же не искусственный интеллект =)

Вы же перед публикацией дополнений проводите ручное тестирование, но это просто, пока у вас с 10 ассертов
Не знаю, что такое "ассерт" :D. Но скажу, что тестирование я провожу просто используя плагин по назначению и проверяя его функционал. На тестирование действительно большого дополнения может уйти максимум 2-4 часа.

В том то и дело, что подобные продукты, превращаются в заточенные под себя фреймворки, как только заканчивают шлифование кода и набираются опытом. Лично я прошел такой процесс и для меня это просто потеря времени для команды. Выйдет ли у них - вот он вопрос и смысл всего моего "нытья", команда XenForo тоже дорастет до большой команды и сможет ли она избежать той стагнации, в которой сейчас находиться конкуренты? Я (наивно) считал, что набрав опыта в работе с первой версий, получив фидбек от сообщества, последует современный продукт, а не песочница для набирания опыта, просто не ожидал, что кому то сейчас придет в голову наступать на те же грабли в 2017 году (когда вышла вторая версия) и писать уже давно написанные решения еще раз. Надеюсь, что я ошибаюсь в своем мнении.
Они пишут лишь то, что им нужно, выкидывая лишний функционал других фреймворков. И затачивают под себя. Всё это оправдывает себя в работе.

Бывает то, что уже есть, не подходит по нескольким мелким причинам, и написать своё намного легче, чем эти мелкие причины потом изменять в чужом =)
 
Серьезно? Для многих типов сайтов, ваша лара просто мусор и не более и из стока жрать 600 мб оперативы ммм найс... Где даже и половины функционала просто не пригодится а он будет дергать кучу не нужных зависимостей.
Чета странные придирки, давайте еще будем использовать Zend с Doctrine без кэша для лендинга с двумя формами и орать потом что они говно, потому что все начинает свопиться. Вы разработчик или кто? Под задачу инструмент выбирать умеете, а потом его конфигурировать? Так и без фреймворка можно запустить запросы в базу в цикле и тогда кого будете обвинять?
Есть кучу альтернатив и есть не большие версии фреймов.
Бинго! Есть огромное количество компонентов, которые выполняют только одну задачу и они всегда легче собранного фреймворка (о чем я писал в самом первом посте).
А использовать для 100 строчек кода фреймворк, мммм найс
Вы решили читать между строк, но там и утонули. Я за повторное использование уже написанного кода и если мне понадобиться работа с консолью, я сделаю зависимость от symfony/console, а не буду городить своего монстра. Если мне нужен будет автолоадер, я не буду его писать, а использую Composer просто потому что он написан командой опытных людей и которые его поддерживают.
вообще, что в сообществе по OpenCart, что здесь, каждый год появляется тип, который начинает "ваша цмс говно, там устаревшие технологии и говнокод, а вот фреймворк %имяфремворка% лучше" при этом эти люди не берут во внимание обратную совместимость и прочие "не нужные" вещи. Ещё раз, ксен - цмс со своими правилами и законами, фреймворки - это основа каторая сама по себе ничего не умеет. Хватит сравнивать жопу с пальцем)
Ладно, последний раз еще раз пишу.
Фреймворк (любой) - не панацея, а сугубо инструмент. Инструмент, которые пишется командой разработчиков при поддержке компаний (это я про Symfony и Zend), которые работают над безопасностью и скоростью работы. Почему столько маленькая команда XenForo решилась писать своего монстра - для меня загадка.

Все данные, которые экспортируются для дополнения, хранятся в XML. В json хранятся данные только на этапе разработки в папке _output. Почему так, нужно смотреть в движок. Не особо интересовался этим.
Json используют как промежуточное хранилище изменений. Что то типа diff базы данных (текущее состояние с изменениями) и _data (последний релиз). .
Никто ничего не правит ручками. Вы, видимо, не знакомы с процессом разработки дополнений =)
Потому что процесс внесения изменений в дополнение жестко завязан на базе данных и без подключения к ней работа невозможна. Выше же написал про правку руками, но это естественно не рекомендуется.
Ни одно автотестирование не позволит определить ошибку в логике работы. Это же не искусственный интеллект =)
Автотесты - часть процесса релиза. Сами тесты пишутся точно так же как и сама логика работы (чего-либо) и являются по сути правилами работоспособности (чего-либо). Например из простенького - (unit тесты) используемого в XenForo. Или вот который работает с шаблонами. Таким же образом можно писать тесты, которые будут использовать полностью отрендереную страницу с полноценным js, программно нажимать на кнопки и т.п., а так же проверять правильность реакции на это действие. Полезно, например, при написании всяких новых bb-кодов, когда нужно правильно показывать их со сложной структурой или когда в зависимости от параметров должно меняться их отображение. Единожды написав эти правила (ассерты) можно автоматически запускать перед публикацией (build.json) тестирование. Такой подход обычно удобнее ручного тестирования, но требует определенной архитектуры приложения и понимания что и как тестировать.
Они пишут лишь то, что им нужно, выкидывая лишний функционал других фреймворков. И затачивают под себя. Всё это оправдывает себя в работе.

Бывает то, что уже есть, не подходит по нескольким мелким причинам, и написать своё намного легче, чем эти мелкие причины потом изменять в чужом =)
Похоже у них удается отлично, вон как меня закидали какахами ?
Но нам остается ждать результатов их работы либо форкать писать свои велосипеды. Спасибо, BINGO_SHARK, за ваше мнение, очень надеюсь, что правы вы, а не я ?
 
Последнее редактирование модератором:
Бинго! Есть огромное количество компонентов, которые выполняют только одну задачу и они всегда легче собранного фреймворка (о чем я писал в самом первом посте).
Ну не для ларадрочеров
Вы решили читать между строк, но там и утонули. Я за повторное использование уже написанного кода и если мне понадобиться работа с консолью, я сделаю зависимость от symfony/console, а не буду городить своего монстра. Если мне нужен будет автолоадер, я не буду его писать, а использую Composer просто потому что он написан командой опытных людей и которые его поддерживают.
А ну да и давайте за ним мы потянем конечно же ещё кучу компонентов, как минимум за ним и symfony/contracts и symfony/polyfill-mbstring. Но за место разрабатываемого продукта, где просто можно обойтись без него и слепить так называемого "монстра".
Фреймворк (любой) - не панацея, а сугубо инструмент. Инструмент, которые пишется командой разработчиков при поддержке компаний (это я про Symfony и Zend), которые работают над безопасностью и скоростью работы. Почему столько маленькая команда XenForo решилась писать своего монстра - для меня загадка.
Господи боже мой когда научитесь программировать уже и не будете ларадрочером который смотрит на ларакаст тогда и можно будет о чём то говорить, а так это просто слова. Я даже более чем, что ты его во все проекты кидаешь
Json используют как промежуточное хранилище изменений. Что то типа diff базы данных (текущее состояние с изменениями) и _data (последний релиз). .
ну конечно "гений", а если у меня нет json файлов? Дальше что, но при этом я могу и дальше править и изменять и работать. При твоем ручном редактирование, все равно нужно будет импортировать в базу данных, иначе просто от твоих изменений толку будет 0.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу