Pergunta

C# e Java permitem que praticamente qualquer de caracteres em nomes de classes, nomes de métodos, variáveis locais, etc..É uma prática negativa para usar caracteres não-ASCII, testando os limites dos pobres editores e ferramentas de análise e tornando difícil para algumas pessoas a ler, ou é Americano arrogância o único argumento contra?

Foi útil?

Solução

Eu iria ficar para inglês, simplesmente porque, geralmente, você nunca sabe quem está a trabalhar no código, e porque algumas ferramentas de terceiros utilizados na construção/teste/bugtracking progresso pode ter problemas.Escrever äöüß em um Não-Teclado alemão é simplesmente uma PITA, e eu simplesmente acredito que qualquer pessoa envolvida no desenvolvimento de software deve falar inglês, mas talvez isso é só a minha arrogância como um não-nativo de inglês.

O que você chama de "American arrogância" não é se é ou não o programa utiliza internacional de nomes de variáveis, é quando o seu programa pensa "Währung" e "Wahrung" são as mesmas palavras.

Outras dicas

Eu diria que depende inteiramente de quem está a trabalhar sobre a base de código.

Se você tem um pequeno grupo de desenvolvedores que todos partilham uma língua comum, e você não pretende nunca precisar de alguém que não fala o idioma para trabalhar no código, em seguida, vá em frente e use quaisquer caracteres que você deseja.

Se você precisa ter pessoas de diferentes culturas e línguas de trabalho sobre o código, em seguida, provavelmente é melhor ficar com o inglês, pois é o denominador comum de todos no mundo.

Se o seu negócio são para não-falantes de inglês, e você acha Domain Driven Design tem algo a ele, em seguida, há um outro aspecto:Como é que nós, como desenvolvedores, usar o mesmo domínio de idiomas como o nosso negócio, sem qualquer sobrecarga de conversão?

O que não significa apenas traduções entre línguas, digamos, inglês e norueguês, mas também entre diferentes palavras.Devemos usar as mesmas palavras exatas como o nosso negócio para a nossa entidade e classes de serviços.

Eu achei mais fácil simplesmente dar e usar a minha língua nativa.Agora que o meu código de usar as mesmas palavras, é mais fácil ter uma conversa com o meu especialistas de domínio.E depois de um tempo você se acostuma, assim como você tem usado o código sem notação húngara.

Eu costumava trabalhar em uma equipe de desenvolvimento que felizmente enxugou com os seus jumentos com qualquer nomeação (e para o que importa de qualquer outra codificação de convenções.Acredite ou não, tendo que lidar com ä e ö em que o código foi um fator que contribui de me demitir.Que eu sou finlandês, eu prefiro escrever código com a GENTE configurações do teclado, porque encaracolado e colchetes são uma dor de escrever em um finlandês teclado (tentar né alt e 7 e 0 para curlies).

Então eu disse stick com caracteres ascii.

Aqui está um exemplo de onde eu usei não-ASCII identificadores, porque eu achei mais legível do que substituir as letras gregas com seus nomes em inglês.Apesar de eu não ter θ ou φ no meu teclado (eu invocado copiar-e-colar.)

No entanto, estas são todas as variáveis locais.Gostaria de manter a não-ASCII identificadores fora de interfaces públicas.

Depende:

  • Será que a sua equipa está de acordo com qualquer das normas existentes que necessitam de utilizar ASCII?
  • É o seu código sempre vai ser facilmente reutilizados ou lido por alguém que não fala a sua língua nativa?
  • Você imagina um cenário onde você precisa pedir ajuda on-line e, portanto, não ser capaz de copiar-colar seu código de exemplo em como está?
  • Você está certo de todo o seu conjunto de ferramentas de código de suporte de codificação?

Se você respondeu " sim " para qualquer uma das opções acima, ficar somente ASCII.Se não, vá para a frente a seu próprio risco.

SE você passar os outros pré-requisitos em seguida, você tem um extra (IMHO o mais importante) um - o Quão difícil é o símbolo para o tipo.

No meu regulares en-us teclado, a única maneira que eu conheço para escrever a letra ç é segurar a tecla alt e bater 0227 no teclado numérico, ou copiar e colar.

Este seria um grande obstáculo no caminho de digitar rapidamente.Você não quer diminuir seu codificação para baixo com coisas triviais como este, se você não é forçado.Teclados internacionais pode minimizar isso, mas então o que acontece se você tiver o código em seu laptop que não tem um teclado internacional, etc?

Parte do problema é que o Java/C# linguagem e suas bibliotecas são baseados em palavras em inglês como if e toString().Eu, pessoalmente, não gostaria de alternar entre os idioma inglês e inglês durante a leitura do código.

No entanto, se o seu banco de dados, INTERFACE, lógica de negócio (inclusive metáforas), já estão em alguma língua que não o inglês, não há necessidade de traduzir todos os nomes de método e variáveis para o inglês.

Eu iria ficar para caracteres ASCII porque, se alguém na sua equipe de desenvolvimento está usando um SDK que só suporta ASCII ou você queria ter seu código fonte aberto, um monte de problemas poderiam surgir.Pessoalmente, eu não faria isso, mesmo se você não está pensando em trazer alguém que não fala a língua no projeto, porque você está executando um negócio e parece-me que uma gestão de uma empresa iria querer que sua empresa se expanda, que neste dia e idade, significa transcender as fronteiras nacionais.Minha opinião é de que o inglês é a língua do reino, e mesmo se o nome de suas variáveis em um idioma diferente, há pouco ou nenhum ponto para utilizar quaisquer caracteres não-ASCII em sua programação.Deixar isso para a linguagem de lidar com isso, se você está lidando com dados que é UTF8:meu programa do iPhone (o que envolve toneladas de usuário dados entre o telefone e o servidor) tem total suporte a UTF8, mas não tem UTF8 no código-fonte.Ele apenas parece abrir uma grande lata de vermes para quase nenhum benefício.

Há um outro hazzard para usar caracteres não-ASCII, apesar de, provavelmente, só mordida no obscuro casos.Os caracteres permitidos são definido em termos de métodos de O personagem.isJavaIdentifierStart(int) e O personagem.isJavaIdentifierPart(int), que são definidos em termos de Unicode.No entanto, a versão exata do Unicode utilizado depende da versão da plataforma Java, como especificado na documentação o java.lang.Personagem.

Desde propriedades de caracteres mudar um pouco a partir de uma versão Unicode para a próxima, é possível (mas, provavelmente, muito pouco provável), você pode ter identificadores que são válidos em uma versão do Java, mas não na próxima.

Como já salientado, a menos que os nomes de método, principalmente coincidir com o idioma, que é um pouco estranho constantemente alternar entre os idiomas enquanto a leitura.

Para os Escandinavos línguas e alemão, o que eu posso falar e falar assim, eu teria, pelo menos, recomendamos o uso de padrão de substituições, ou seja,.

ä æ -> ae,, ö ø -> oe, å -> aa, ü -> ue

etc.apenas no caso de como os outros podem achar que é difícil de digitar as letras originais sem teclado/keymap alterações.Acho que se você, de repente, teve que trabalhar com uma base de código, onde os desenvolvedores usaram um terceiro idioma (por exemplo, incluindo o francês ç) e não sei como fazer isso..Alternar entre mais de 2 keymaps para escrever de forma eficiente seria doloroso em minha experiência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top