- Баллы
- 76
- Имя в Minecraft
- Lisenochek
Всем привет. Решил разобраться с рефлексией, так как планирую выпустить свой первый публичный плагин на просторы помойки интернета. Кто разбирается можете помочь мне разобраться с этим?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Ну для паблик плагина как раз нужна, если надо писать функционал на пакетах.А зачем она тебе нужна? Если ты можешь что-то написать без участия рефлексии, это в большинстве случаев означает что она и не нужна..
Рефлексия убивает паблик.Ну для паблик плагина как раз нужна, если надо писать функционал на пакетах.
почему?Рефлексия убивает паблик.
Почему? [х2]Рефлексия убивает паблик.
Сама по себе рефлексия с одной стороны выручает, когда нужна мультиверсионность.Но я имел в виду то, что плагин, использующий ресурсы, зависимые от версии, это уже не так хорошо, как если бы плагин работал на чистом BukkitAPI.Проблемы с зависимостями решает как раз таки рефлексия.А вот она уже, зачастую, работает в ущерб производительности.Так что я немного неправильно выразился, зло не рефлексия, а то, ради чего мы её используем, хоть и в самом факте её использования есть минусы(производительность)почему?

Почему? [х3]Рефлексия убивает паблик.
+1Для этого Protocollib придумали.
как по мне, так это ↑, вообще никак не уменьшает желание и необходимость использовать рефлексию.Сама по себе рефлексия с одной стороны выручает, когда нужна мультиверсионность. Но я имел в виду то, что плагин, использующий ресурсы, зависимые от версии, это уже не так хорошо, как если бы плагин работал на чистом BukkitAPI.Проблемы с зависимостями решает как раз таки рефлексия.А вот она уже, зачастую, работает в ущерб производительности.Так что я немного неправильно выразился, зло не рефлексия, а то, ради чего мы её используем, хоть и в самом факте её использования есть минусы(производительность)![]()
Я не совсем это имел в виду.Я хотел сказать, что в плагине нужно, по-возможности, избегать компонентов, которые зависят от версии игры, так как это создает некоторые проблемы с дальнейшей поддержкой кода, да и вообще, мороки меньше.Если же от использования таких элементов не уйти, то тут уже приходит на помощь рефлексия, хоть и в ущерб производительности.Но, как выше заметили, для подобных целей иногда можно использовать и другие инструменты.Так же стоит учесть, что если для реализации некоторого функционала необходимо использовать инструменты, которые ценность это функционала не оправдывают, то нужен ли он вообще?Иными словами, для реализации какой-то мелочи используют инструменты, в присутствии которых, общий КПД(если так можно сказать) близиться к нулю, либо даже тянет программу целиком в минус.Так что, стоит подумать, прежде чем создавать подобного рода компоненты программы.как по мне, так это ↑, вообще никак не уменьшает желание и необходимость использовать рефлексию.
да, она кушает производительность, но в чистом ведрышке, зачастую вообще нет нужного нам. а отправка пакетов - снова рефлексия, либо же подключение протоколлиба, что опять же не есть гуд. Так что на счет зла, это еще как посмотреть.
для себя, проблему с рефлексией решил тем, что все объекты, которые создаются с ее помощью, создаются в onEnable и дальше просто лежат в мапах, сетах и т.д.
В любом случае, не вижу совершенно никаких проблем в использовании рефлексий и в причинах их использования. (ну а если с мозгами не лады, и генерация объектов будет постоянно, то тут и обычные методы нагрузят не мало)
Найди хоть 1 топ сервер без протоколсапорта или виаверсии. Так что протоколлиб там основа и есть у всех. Все там гуд. Другое дело сервера с модами, там не везде можно юзать протоколлиб.либо же подключение протоколлиба, что опять же не есть гуд.
+1, преимущества протоколлиба сложно переоценить.Найди хоть 1 топ сервер без протоколсапорта или виаверсии. Так что протоколлиб там основа и есть у всех. Все там гуд. Другое дело сервера с модами, там не везде можно юзать протоколлиб.
Чем он лучше чем инструменты для работы с рефлексией в ProtocolLib'е?Скину свой класс с рефлексией, всегда им пользуюсь и очень удобно.
Тем, что протокол либом я не пользовался, а апи довольно гибкое и использовалось оно реально везде.Чем он лучше чем инструменты для работы с рефлексией в ProtocolLib'е?
В противовес могу сказать, что протоколлибом пользовались сотни людей и никто не жалуется на негибкость. Думаю им тоже реально везде пользовались.Тем, что протокол либом я не пользовался, а апи довольно гибкое и использовалось оно реально везде.
+1 А вот левый апи на те же пакеты явно будет лишним. И хочу заметить, замерял скорость получения nbt с итемстака простой рефлексией и протоколлибом, в разы быстрее с прокотолом.В противовес могу сказать, что протоколлибом пользовались сотни людей и никто не жалуется на негибкость. Думаю им тоже реально везде пользовались.
И второе - протоколлиб стоит практически везде, так что он не сильно обременяет плагин как зависимость.
Так не бывает.Помнится, при каких-то тестах рефлексия по времени даже выигрывала у обычного кода.