Pergunta

Eu estou começando em um projeto onde as cordas são escritos no código a maior parte do tempo. Muitas cordas somente pode ser usada em alguns lugares, mas algumas cadeias são comuns ao longo de muitas páginas.

É um bom uso do meu tempo para refatorar os literais em constantes sendo que o aplicativo é muito bem estabelecida e funciona bem? Quais seriam os benefícios de longo prazo para fazê-lo?

Foi útil?

Solução

Só se este projecto precisa de ser apoiado no futuro este é um bom uso do tempo. Se você vai ser regularmente manutenção / expansão deste sistema; no entanto, esta é uma ótima idéia.

1) Há um grande grau de risco associado com strings literais como um único erro ortográfico normalmente só pode ser detectado em tempo de execução. A redução do risco de erros de tempo de execução é uma vantagem séria como eles podem ser embaraçoso / frustrante.

2) Além disso, eles devem precisar ser alterado, por exemplo, quando eles são usados ??para fazer referência a outro sistema (como nomes de tabela, nomes de servidores etc.) que pode ser muito difícil para atualizar quando aqueles outra mudança nomes do sistema. Centralize eles e é uma questão trivial.

Outras dicas

Uma coisa comum a considerar seria i18n . Se você (ou seus muckity-mucks) quiser vender o seu produto no México ou França (etc.) que você vai gostar de ter essas strings literais não cheio durante todo a base de código.

EDIT: Sei que este não responder diretamente sua pergunta, então eu estou votando-se algumas das outras respostas re: regra de três, e assim por diante. Eu entendo que você está falando de uma base de código existente, por isso é um pouco tarde para falar sobre incorporando i18n desde o início. É tão fácil de fazer quando você está no hábito desde o início.

Eu gosto de aplicar a regra de três, quando refatoração. Se isso acontecer três ou mais vezes, em seguida, o código precisa ser atualizado.

Se uma string é usado em mais de um lugar, refatorar-lo. Se ele só é usado em um lugar, deixá-lo sozinho.

Se você já reformulado fora todas as suas cordas comuns, torna-se mais fácil para internacionalizar / traduzi-los. É ainda mais fácil se eles estão todos em arquivos de propriedades, ou qualquer que seja o idioma equivalente é.

É um bom uso do meu tempo para refatorar os literais em constantes sendo que o aplicativo é muito bem estabelecida e funciona bem?

Não, é melhor deixá-lo como ele é.

Quais seriam os benefícios de longo prazo para fazê-lo?

Se ninguém nunca tocar esse código, os benefícios são nenhum.

O que você pode fazer, porém, é evitar a adição de novos literais. Mas eu seria muito bonito licença existente do jeito que são.

Você provavelmente poderia refatorar-los em seu livre para dormir melhor.

Provavelmente existem alguns outros bugs já que precisam de sua atenção. Corrigir aqueles vez.

Por fim, se você conseguir você adicionar "refatoração" a sua lista de tarefas, vá em frente !!!

Eu concordo com JMD, basta ter em mente que não há mais a i18n do que mudar Cordas (moedas, UI deve ser adpated para idiomas da direita para a esquerda, etc.)

Mesmo se você não desejo de 18n sua aplicação seria útil para refatorar suas cordas, uma vez que a cadeia de caracteres que é usado hoje somente uma vez, amanhã talvez reutilizado várias vezes, e se este estiver codificado você pode não ser consciente dele e estrela replicar corda por todo o lugar.

Melhor deixar Sleeping Dogs Lie. Se você precisar alterar uma string que é usado vezes dezoito irregular, sim, vá em frente e transformá-lo em um lugar constante. Se você está trabalhando em um módulo que tem uma cadeia que poderia ser constante-ize, fazê-lo se você sentir como ele. Mas passar por todo o aplicativo mudando todas as cordas para constantes ... que deve estar na parte inferior da lista de coisas a fazer.

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