Yarn: Помощник против утилиты против утилиты

Созданный на 9 февр. 2020  ·  24Комментарии  ·  Источник: FabricMC/yarn

Есть 12 классов с суффиксом Helper :

net/minecraft/server/rcon/BufferHelper
net/minecraft/server/rcon/DataStreamHelper
net/minecraft/client/gui/DrawableHelper
net/minecraft/client/util/math/Rotation3Helper
net/minecraft/client/util/DefaultSkinHelper
net/minecraft/client/texture/MipmapHelper
net/minecraft/nbt/NbtHelper
net/minecraft/block/RailPlacementHelper
net/minecraft/world/SpawnHelper
net/minecraft/util/JsonHelper
net/minecraft/util/math/MathHelper
net/minecraft/enchantment/EnchantmentHelper

Есть 17 классов с суффиксом Util :

net/minecraft/client/sound/AlUtil
net/minecraft/client/util/InputUtil
net/minecraft/client/util/GlfwUtil
net/minecraft/client/util/SmoothUtil
net/minecraft/client/model/ModelUtil
net/minecraft/client/texture/TextureUtil
net/minecraft/util/ChatUtil
net/minecraft/util/MapUtil
net/minecraft/util/FileNameUtil
net/minecraft/util/Util
net/minecraft/entity/ProjectileUtil
net/minecraft/entity/ai/brain/task/LookTargetUtil
net/minecraft/entity/effect/StatusEffectUtil
net/minecraft/entity/DamageUtil
net/minecraft/potion/PotionUtil
net/minecraft/test/StructureTestUtil
net/minecraft/test/TestUtil

Есть 5 классов с суффиксом Utils :

net/minecraft/client/util/ScreenshotUtils
net/minecraft/client/util/NetworkUtils
net/minecraft/client/util/GlAllocationUtils
net/minecraft/network/NetworkThreadUtils
net/minecraft/network/NetworkEncryptionUtils

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

discussion

Самый полезный комментарий

Мне больше всего нравится единственное число Util . 👍 для полезности. 👎 для помощника, 😕 для утилиты

Все 24 Комментарий

Мне больше всего нравится единственное число Util . 👍 для полезности. 👎 для помощника, 😕 для утилиты

tbh Я мог бы пойти любым путем, просто давайте будем последовательны.

Также, если у нас есть глаголы, мы можем использовать -ing (герундий), например, Chatting NetworkThreading , или существительные во множественном числе, например, Projectiles Screenshots над Helper Util и т.д.

Это затрудняет некоторые вещи, такие как MathHelper -> Maths ?? Или Util -> s ??

Я уже давно выступал за Maths , учитывая, что это действительное сокращение для Mathematics . https://github.com/FabricMC/yarn/issues/249#issuecomment-446102638

Yarn использует имена в американском английском, где Maths не является допустимым сокращением для Mathematics .

В этом случае, когда не применяется ни герундий, ни множественное число, я предлагаю вернуться к суффиксу Helper . В противном случае предпочтите ing или s , например Texts

Также DrawableHelper — это не служебный класс, а функциональный интерфейс или абстрактный класс с множеством удобных методов экземпляра.

Моя проблема с предложением liach с -ing и -s заключается в том, что очень трудно сделать что-либо последовательным, что полностью противоречит цели проблемы. Вы могли бы сделать так, чтобы подсчет служебных классов существительных заканчивался на -s , но тогда у вас будут исключения: Nbts , RailPlacements , Maps ? Было бы невозможно сделать последовательным.

Мы должны принять стандарт и придерживаться его. Глядя на голосование, это должно быть либо Helper , либо Util , но не Utils .

Одним из аргументов в пользу Util вместо Helper является то, что сам класс Util не имеет смысла называться Helper . Я думаю, что MathHelper называться MathUtil было бы не так уж плохо, просто все привыкли, что его называют MathHelper . Я работал в проектах, где математический служебный класс назывался MathUtil , и это было абсолютно нормально, не имеет значения. Имя MathUtil даже не обсуждалось в вопросе о переименовании MathHelper .

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

Кажется, что большинство людей за суффикс Helper . Поэтому я предлагаю переименовать все текущие классы, заканчивающиеся на Util или Utils (кроме самого класса Util ), чтобы они заканчивались на Helper . Переименование других классов на Helper можно обсудить в отдельных темах.

Кажется, что большинство людей за суффикс Helper .

Нет?

votes

О, упс, я, должно быть, ослеп. Затем я предлагаю переименовать все классы, оканчивающиеся на Helper , чтобы они заканчивались на Util .

Я предлагаю, чтобы суффиксы были работой дьявола, и чтобы мы переименовали все классы, оканчивающиеся на *elperer и *til , чтобы у них не было этого суффикса.

MathHelper -> Maths .

PiglinHelper -> Piglins

Yarn использует имена в американском английском, где Maths не является допустимым сокращением для Mathematics .

Я думал, Maths — исключительно американский термин?

MathHelper -> Mathinator

Maps ? я

Также обратите внимание, что Guava (я думаю, это была Guava?) использует шаблон множественного числа: Maps , Sets , Collections , Streams .

Это была моя проблема с использованием множественного числа. Хотя имена выглядят красиво, исключений слишком много. Либо потому, что слово является массовым существительным (например, "математика") и, следовательно, не имеет множественного числа, либо потому, что множественное число уже занято другой библиотекой (например, "карта"). Было бы слишком сложно оставаться последовательным, в первую очередь побеждая смысл их изменения.

Имена, которые уместны во множественном числе:

  • Буферы
  • Потоки данных
  • Чертежи
  • Скины по умолчанию
  • Mip-карты
  • Nbts
  • RailPlacements
  • Спаун
  • Входы
  • Модели
  • Текстуры
  • Имена файлов
  • Снаряды
  • LookTargets
  • СтруктураТесты
  • Тесты
  • Скриншоты
  • GLAllocations

Имена, которые не подходят, потому что они являются массовыми существительными или не являются существительными:

  • Jsons
  • Математика
  • Альс
  • Glfws
  • Сглаживает
  • Ущерб (множественное число имеет другое значение)
  • Сети (здесь только одна сеть)
  • NetworkThreads (есть только один сетевой поток)
  • NetworkEncryptions

Имена, которые не подходят, потому что они уже заняты:

  • Чары
  • Карты
  • СтатусЭффекты
  • Зелья

Имена, которые не подходят по разным причинам:

  • Rotation3s (это название требует дополнительных размышлений)
  • Чаты (хотя технически множественное число от чата, он не подходит в качестве служебного класса для «чата», если предположить, что он для этого предназначен. Если это для текстовых компонентов, то «Тексты» было бы подходящим названием)
  • Utils (мы не можем переименовать это в «s», лол, лучше оставить как «Util»)

В общей сложности 18 из 34 имен будут приемлемы во множественном числе, а это означает, что нам придется придумать лучшие имена для остальных 16. Вот вам и последовательность.

Я был бы согласен использовать множественное число там, где это имеет смысл, и возвращаться к суффиксу Util, где это не имеет смысла. Тогда, по крайней мере, у нас есть правило, которому нужно следовать, а не случайный выбор между «Помощником» и «Полезностью», что мы сейчас и делаем.

Однако @Earthcomputer NetworkThreads работает нормально. Это утилиты для работы с сетевыми потоками. Неважно, что есть только один из них.

Вы можете не согласиться со мной по одному или двум пунктам, но суть не в этом, это не сильно меняет общее соотношение 18/34.

Я бы поспорил либо за Util , либо Helper , полное их удаление не имеет для меня особого смысла.

Кстати, некоторые нельзя назвать Util . Например, DataStreamHelper — это не служебный класс, а объект, обертывающий поток данных.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

ChloeDawn picture ChloeDawn  ·  5Комментарии

ChloeDawn picture ChloeDawn  ·  6Комментарии

quat1024 picture quat1024  ·  3Комментарии

liach picture liach  ·  4Комментарии

asiekierka picture asiekierka  ·  3Комментарии