Yarn: Helper vs Util vs Utils

Criado em 9 fev. 2020  ·  24Comentários  ·  Fonte: FabricMC/yarn

Existem 12 classes com o sufixo 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

Existem 17 classes com o sufixo 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

Existem 5 classes com o sufixo Utils :

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

Provavelmente deveríamos escolher um padrão e cumpri-lo. Eu pessoalmente sou a favor do Utils, mas gostaria de ouvir a opinião de outras pessoas.

discussion

Comentários muito úteis

Eu gosto mais do singular Util . 👍 para Util. 👎 para Ajudante, 😕 para Utilitários

Todos 24 comentários

Eu gosto mais do singular Util . 👍 para Util. 👎 para Ajudante, 😕 para Utilitários

tbh eu poderia ir de qualquer maneira, apenas vamos ser consistentes.

Além disso, se tivermos verbos, podemos usar -ing (gerúndio), por exemplo, Chatting NetworkThreading , ou substantivos no plural, por exemplo, Projectiles Screenshots over Helper Util etc.

Isso dificulta algumas coisas como MathHelper -> Maths ?? Ou Util -> s ??

Eu defendi Maths há muito tempo, já que é uma abreviação válida para Mathematics . https://github.com/FabricMC/yarn/issues/249#issuecomment -446102638

Yarn usa nomes em inglês americano, onde Maths não é uma abreviação válida para Mathematics .

Neste caso em que nem o gerúndio nem o plural se aplicam, sugiro voltar ao sufixo Helper . Caso contrário, prefira ing ou s , como Texts

Além disso DrawableHelper não é uma classe utilitária, mas uma interface funcional ou classe abstrata com muitos métodos de instância convenientes

Meu problema com a proposta do liach com -ing e -s é que torna muito difícil fazer algo consistente, derrotando completamente o propósito do problema. Você pode fazer com que as classes de utilidade de substantivos terminem em -s , mas então você terá exceções: Nbts , RailPlacements , Maps ? Seria impossível tornar consistente.

Devemos adotar um padrão e cumpri-lo. Olhando para a votação, deve ser Helper ou Util , mas não Utils .

Um argumento para Util sobre Helper é que a classe Util si não faz sentido ser chamada Helper . Acho que MathHelper ser chamado MathUtil não seria tão ruim, só que todo mundo já está acostumado a ser chamado MathHelper . Eu trabalhei em projetos onde a classe de utilidade matemática foi chamada MathUtil , e tem sido absolutamente boa, não faz diferença. O nome MathUtil nem foi discutido na questão de renomeação MathHelper .

Existem mais classes Util do que Helper atualmente, mas isso precisa ser ponderado pela frequência com que as classes são realmente usadas, então vou analisar isso agora e relatar os resultados .

Parece que a maioria das pessoas são para o sufixo Helper . Portanto, proponho renomear todas as classes atuais que terminam com Util ou Utils (exceto a classe Util ) para terminar com Helper . Renomeações de outras classes para terminar em Helper podem ser discutidas em edições separadas.

Parece que a maioria das pessoas são para o sufixo Helper .

Não?

votes

Oh, opa, devo ser cego. Então proponho que renomeiemos todas as classes que terminam em Helper para terminarem com Util .

Proponho que os sufixos são obra do diabo e que renomeamos todas as classes que terminam em *elperer e *til para não ter esse sufixo.

MathHelper -> Maths .

PiglinHelper -> Piglins

Yarn usa nomes em inglês americano, onde Maths não é uma abreviação válida para Mathematics .

Eu pensei que Maths era um termo exclusivamente americano?

MathHelper -> Mathinator

Maps ? eu

Observe também que Guava (acho que era Guava?) usa o padrão plural: Maps , Sets , Collections , Streams .

Este foi o meu problema com o uso de plurais. Embora os nomes pareçam bonitos, há muitas exceções. Ou porque a palavra é um substantivo de massa (por exemplo, "matemática") e, portanto, não tem plural, ou porque o plural já é usado por outra biblioteca (por exemplo, "mapa"). Seria muito difícil permanecer consistente, derrotando o ponto de mudá-los em primeiro lugar.

Nomes que ficariam bem no plural:

  • Tampões
  • DataStreams
  • Drawables
  • DefaultSkins
  • Mipmaps
  • Nbts
  • RailPlacements
  • Gera
  • Entradas
  • Modelos
  • Texturas
  • Nomes de arquivo
  • Projéteis
  • LookTargets
  • Testes de estrutura
  • Testes
  • Capturas de tela
  • Alocações de Gl

Nomes que não estão bem porque são substantivos de massa ou não são substantivos:

  • Jsons
  • Matemáticas
  • Als
  • Glfws
  • Suaviza
  • Danos (o plural tem um significado diferente)
  • Redes (há apenas uma rede aqui)
  • NetworkThreads (há apenas um thread de rede)
  • Criptografias de Rede

Nomes que não estão corretos porque já foram usados:

  • Encantamentos
  • Mapas
  • Efeitos de status
  • Poções

Nomes que não são aceitáveis ​​por diversos motivos:

  • Rotation3s (este nome requer mais reflexão)
  • Bate-papos (embora tecnicamente seja o plural de bate-papo, não se encaixa bem como uma classe de utilidade para "o bate-papo", assumindo que é para isso que serve. Se for para componentes de texto, "Textos" seria um bom nome)
  • Utils (não podemos renomear isso para "s" lol, é melhor mantê-lo como "Util")

No total, 18/34 nomes ficariam bem no plural, o que significa que teríamos que encontrar nomes melhores para os outros 16. Tanto para consistência.

Eu ficaria bem em usar plurais onde faz sentido e voltar para um sufixo Util onde não faz sentido. Então, pelo menos, temos uma regra a seguir, em vez de escolher aleatoriamente entre "Helper" e "Util", que é o que fazemos atualmente.

O @Earthcomputer NetworkThreads funciona bem, no entanto. São utilitários para trabalhar com threads de rede. Não importa que haja apenas um deles.

Você pode discordar de mim em um ou dois desses pontos, mas esse não é o ponto, isso não muda muito a proporção geral de 18/34.

Eu argumentaria por Util ou Helper , removê-los inteiramente não faz muito sentido para mim.

A propósito, alguns não podem ser nomeados Util . Por exemplo, DataStreamHelper não é uma classe util, é um objeto que envolve um fluxo de dados.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Runemoro picture Runemoro  ·  3Comentários

altrisi picture altrisi  ·  4Comentários

Runemoro picture Runemoro  ·  4Comentários

Bixilon picture Bixilon  ·  5Comentários

ChloeDawn picture ChloeDawn  ·  6Comentários