link1107 / DonationExecutor

Плагин для ру-стримеров, генерирующий события на сервере Minecraft (Spigot/Paper) на основании донатов с "Donation Alerts"
GNU Affero General Public License v3.0
218 stars 22 forks source link

Очень тяжелый метод isBlackListed #20

Open ghost opened 2 years ago

ghost commented 2 years ago

https://github.com/link1107/DonationExecutor/blob/4927c79009863df05fa09a73e5b45b43996a1857/src/main/java/igorlink/service/Utils.java#L112

Этот метод вызывается очень часто, и каждый раз создается и заполняется HashMap с символами и прочим. Нужно вынести саму мапу в поле класса (static), и заполнение тоже (в блок static).

А еще там некоторые символы повторяются("1", "ы"), но это менее важно.

ghost commented 2 years ago

Чуть более общепринятым вариантом будет разгрузить класс Utils (уж больно он жирный и содержит довольно интегральный функционал, не утилс уже совсем). Для isBlackListed можно сделать BlackListChecker или что-то подобное, и заполнять HashMap в конструкторе.

ghost commented 2 years ago

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