Ferramentas de texto e do dia a dia · Kit de ferramentas de texto
camelCase, snake_case, kebab-case e PascalCase: onde cada um é usado
· Fundo
conversão de caso identificadores fluxo de trabalho do desenvolvedor
Um tour pelas convenções de nomenclatura — de onde elas vieram, quais linguagens e ecossistemas esperam quais e por que nomes de arquivos, URLs, colunas de banco de dados e chaves JSON seguem em uma direção diferente.
Cinco nomes para uma coisa – userProfileId, user_profile_id, user-profile-id, UserProfileId e USER_PROFILE_ID
A frase "ID do perfil do usuário" pode se tornar `userProfileId`, `UserProfileId`, `user_profile_id` ou `user-profile-id` sem alterar suas palavras. A diferença visível é onde os limites aparecem e se a primeira palavra começa com maiúscula. ToolAcre gera esses quatro formulários diretamente da mesma entrada, facilitando a comparação de suas diferenças estruturais.
Um `USER_PROFILE_ID` totalmente maiúsculo é outra convenção de projeto útil, mas não é uma opção combinada separada na fonte do conversor de maiúsculas e minúsculas. O kit de ferramentas expõe transformações de maiúsculas e minúsculas de forma independente. Se uma base de código usar constantes maiúsculas, converta para maiúsculas e minúsculas e, em seguida, coloque-as em maiúsculas, em vez de reivindicar que o menu case execute as duas etapas ao mesmo tempo.
Quatro conversões demonstradas pelo Text Toolkit, além de uma constante maiúscula montada separadamente
`camelCase` começa com uma palavra minúscula e coloca em maiúscula o início de cada palavra seguinte. `PascalCase` aplica o mesmo formato de palavra unida, mas também coloca a primeira palavra em maiúscula. Em ToolAcre, ambas as transformações começam com o mesmo divisor de palavras, portanto, a pontuação e os limites de maiúsculas e minúsculas existentes são interpretados antes da saída ser montada.
Muitas equipes atribuem os dois formulários a diferentes tipos de nomes, mas o repositório não estabelece uma regra de linguagem universal ou um histórico para essa divisão. Trate um guia de estilo local, linter, estrutura API ou código próximo como autoridade. O conversor altera a forma da ortografia; não determina se um nome representa uma classe, função, variável ou componente.
camelCase e PascalCase diferem pela primeira letra; a história da língua deles está fora da evidência do repositório
`snake_case` reduz cada palavra detectada e junta os resultados com sublinhados. Para `User Profile ID`, ToolAcre retorna `user_profile_id`. Os separadores permanecem visíveis, o que pode ajudar quando os nomes passam por sistemas que não preservam a capitalização de forma confiável, mas esse benefício prático não é uma prova de que todo banco de dados, idioma ou serviço espera sublinhados.
Utilize a convenção já definida no destino. Um serviço Python pode ter uma política, um esquema SQL outra e uma carga útil serializada uma terceira. ToolAcre não pode inspecionar esses contratos. Sua promessa confiável é mais restrita: `toSnakeCase` detecta palavras, coloca cada uma em minúscula e insere `_` entre elas sem decidir se o destino permite ou prefere esse resultado.
A saída Snake_case é suportada diretamente; ecossistema e as expectativas de SQL dependem de cada projeto
`kebab-case` usa as mesmas palavras em minúsculas, mas as une com hífens, produzindo `user-profile-id`. Essa forma é visualmente clara em locais onde um hífen é aceito como dados, como um segmento de rota configurado ou um nome de arquivo definido pelo projeto. Não é um identificador JavaScript porque o analisador pode ler um hífen como um operador em vez de parte de um nome.
O esboço lista classes CSS, atributos HTML, sinalizadores de linha de comando e slugs URL, mas a biblioteca de texto não define as regras desses consumidores. Confirme a sintaxe de destino antes de converter. ToolAcre também tem uma função `slugify` separada com dobra acentuada, seleção de separador, corte e manipulação de comprimento opcional, portanto, a conversão de kebab comum não deve ser apresentada como validação completa de URL-slug.
a saída do kebab-case é suportada diretamente; usos válidos dependem da sintaxe circundante
Os limites são onde as convenções de nomenclatura se tornam operacionais, em vez de cosméticas. Um objeto de navegador pode usar uma ortografia enquanto uma carga útil API ou coluna de banco de dados usa outra. Torne esse mapeamento explícito em um adaptador, em vez de espalhar as conversões entre visualizações, consultas e lógica de negócios. Uma borda previsível mantém cada modelo interno consistente e facilita a localização de incompatibilidades.
Evite converter valores arbitrários apenas porque se parecem com identificadores. O divisor de palavras trata a pontuação como limites e reconhece transições selecionadas entre letras minúsculas, maiúsculas e dígitos. Isso é útil para nomes, mas pode alterar chaves cuja ortografia é fixada externamente. Preserve exatamente as chaves do contrato, a menos que a interface receptora documente um mapeamento sob seu controle.
Exemplo resolvido - convertendo um identificador através de todas as convenções e decidindo qual pertence a onde em um projeto pequeno
Considere um pequeno aplicativo com a frase `user profile ID`. ToolAcre produz `userProfileId` para caixa de camelo, `UserProfileId` para caixa Pascal, `user_profile_id` para caixa de cobra e `user-profile-id` para caixa de kebab. Cada saída carrega as mesmas três palavras detectadas, enquanto a capitalização e o separador inserido codificam a forma selecionada.
Um projeto prático pode manter `userProfileId` em um objeto JavaScript, mapeá-lo explicitamente para `user_profile_id` em um limite de persistência e reservar `user-profile-id` para um local cuja gramática aceita hífens. As escolhas exatas pertencem a esse projeto. A parte importante é documentar cada limite e testar o mapeamento, em vez de adivinhar repetidamente pela aparência.
O que isto não cobre – notação húngara e os debates sobre abreviaturas dentro dos identificadores
Esta comparação não resolve a ortografia das abreviaturas. A implementação transforma as palavras detectadas em partes minúsculas antes de reconstruí-las, portanto, uma entrada contendo `HTTP` pode emergir como `Http` dentro da saída Pascal ou camel. Se uma equipe prefere `Http`, `HTTP`, `Id` ou `ID` é uma política de nomenclatura que precisa de uma exceção explícita fora dessas transformações gerais.
Também não cobre o histórico de notação, padrões de linguagem ou todas as gramáticas de identificadores válidas. Essas afirmações requerem fontes além dos arquivos de ferramentas usados neste artigo. ToolAcre demonstra transformações determinísticas de texto e documenta uma limitação importante: um composto escrito sem qualquer limite detectável nem sempre pode ser dividido nas palavras que uma pessoa pretendia.
A política de abreviaturas e o histórico de notação estão fora da evidência do conversor
Nenhum caso é universalmente correto. Um nome é útil quando segue o contrato e permanece reconhecível pelas pessoas que mantêm essa camada. Comece com a convenção já presente, mantenha um formulário dentro de um limite e traduza apenas onde outra interface exigir. A consistência reduz diferenças incidentais sem fingir que cada ecossistema partilha uma regra.
Quando um limite exigir outra forma, cole o identificador no conversor de caso do Text Toolkit e inspecione as quatro saídas antes de aplicar uma. A operação é executada no navegador e o manifesto informa que o texto não é enviado a um servidor nem salvo automaticamente. Use o resultado como um mapeamento deliberado e deixe que os testes do projeto e as verificações de estilo local confirmem a escolha final.