1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.4.x От чего, c точки зрения разработчика, зависит гибкость плагинов XenForo?

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем FractalizeR, 18.04.2015.

Загрузка
  1. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Попробую раскрыть свою мысль :)

    XenForo имеет некоторую внутреннюю архитектуру. Следование этой архитектуре определяет культуру разработки. Скажем, для создания темы на форуме в аддоне можно либо вызвать соответствующую функцию движка, либо взять и самому тупо записать данные в соответствующие таблицы БД.

    Однако во втором случае такая грубая работа чревата тем, что при очередном обновлении движка весь код придется переписать, поскольку архитектура движка сама по себе более постоянна, чем схема структур данных форума.

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

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

    Скажем, я вчера делал code review на код, написанный моим коллегой. В коммите было около 30 файлов по 50-150 строк каждый. У меня ушло примерно 1,5-2 часа.
     
    Mirovinger и Yoskaldyr нравится это.
  2. AfterWork

    AfterWork Местный

    Регистрация:
    14.04.15
    Сообщения:
    49
    Симпатии:
    0
    Версия XF:
    1.5.10
    Огромное спасибо за развернутый ответ и понимание. А по скольку Ваше мнение хоть и единственное но в меру моего понимания логики построения системы еще и совпадает с моим то я просто в восторге от Вашего ответа.

    Это не просто грубо, это издевательство над продуктом. :) За такое програмерам уши отрывают. :) Это я про второй случай естественно.

    На то она и архитектура системы чтобы отвязываться от конкретной структуры данных и способов доступа к ним. В идеале как я понимаю этот идеал, любые обращения к данным и атрибутам должны идти только через движок то есть только посредством его функций и методов. На сколько я понял движок полностью объектно ориентирован и позволяет всё вплоть до перегрузки классов?

    Именно.... Если не понимает.... Я сам уже начал в общих чертах понимать архитектуру продукта, и как минимум постараюсь вправить мозг разработчику в нужное русло. Скорее всего даже уже смогу ткнуть пальцем что почитать тут на форуме. Мне главное самому до конца понять что может движок, а что не способен делать в принципе. Точнее даже не что а как он что-то не способен делать в принципе. Чтобы моя постановка задачи для программиста, не превратилась в поди туда не знаю куда принеси то не знаю что. В идеале хотелось бы ставить вообще блочную задачу, а не структурную.

    Я сейчас поставил перед проггером простую и однозначно решаемую в рамках продукта задачу. Посмотрю что выйдет. Мой минус только в том что проггер у меня дистанционный на оутсорсе.

    3000 строк кода за 2 часа, да Вы батенька гигант :)

    Еще раз спасибо за терпение и детальные ответы.

    Среду разработки не порекомендуете? А то уж очень сильно я привык работать со средой.
     
    Последнее редактирование: 20.04.2015
  3. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Пример, конечно, был притянут за уши :) Мне такое непотребство не встречалось. Но, думаю, мысль была понятна.

    Сложный вопрос :) Недавно какой-то не то пост, не то вопрос на SO вспомнился. Там народ все спорил над определением "объекто-ориентированного программирования". Истину так и не нашли :) Архитектура XenForo спроектирована хорошо. Это не значит, что в ней нет недостатков, конечно. И она выглядит объекто-ориентированной :)

    Расширять можно не все классы, а только те, которые сам XenForo загружает через вызов XenForo_Application::resolveDynamicClass. Впрочем, для 90% случаев этих возможностей достаточно.

    Я работаю в PHPStorm.
     
  4. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Используя костыли можно расширить 99.9 классов (включая абстрактные и интерфейсы), но скилл программирования должен быть значительно выше.
     
  5. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Я имел ввиду стандартные возможности движка.
     
    AfterWork и Yoskaldyr нравится это.
  6. AfterWork

    AfterWork Местный

    Регистрация:
    14.04.15
    Сообщения:
    49
    Симпатии:
    0
    Версия XF:
    1.5.10
    Мне встречалось. Выглядит страшно. По ночам потом в поту просыпаешься :) Я естественно не о данном продукте говорю :)

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

    Надеюсь этого будет достаточно.

    Спасибо Вам и всем откликнувшимся.

    Есть выражение что можно и стеклянный "душ" с дуру сломать, :) а можно и винду на хтмл написать. :) Думаю мы друг друга поняли. :)
     
  7. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    NuSphere PhpEd
    --- добавлено : Apr 22, 2015 10:23 AM ---
    Да оно и понятно. В любом случае графически отображать зависимости классов и методов и самого XenForo, да еще и всего ZF - дело будет неблагодарное и бесполезное :)

    А любая нормальная IDE без особых проблем подхватывает и фреймворк и расширения XenForo и плагинов. Поэтому о схеме можно не заморачиваться.
    --- добавлено : Apr 22, 2015 10:24 AM ---
    Кстати, очень помогает разобраться пошаговая отладка и стек вызовов.
     
    Последнее редактирование модератором: 30.04.2015

Поделиться этой страницей