Articles of estilo de codificação

Convenções de codificação – Nomenclatura Enums

Existe uma convenção para nomear enumerações em Java? Minha preferência é que um enum seja um tipo. Então, por exemplo, você tem um enum Fruit{Apple,Orange,Banana,Pear, … } NetworkConnectionType{LAN,Data_3g,Data_4g, … } Eu me oponho a nomeá-lo: FruitEnum NetworkConnectionTypeEnum Eu entendo que é fácil escolher quais arquivos são enums, mas você também teria: NetworkConnectionClass FruitClass Além disso, […]

Preocupações de layout de coluna Vim 80

Eu sinto que a maneira como eu faço a indicação de 80 colunas no Vim está incorreta: set columns=80 . Às vezes, também set textwidth mas gosto de ver e antecipar o estouro de linha com a alternativa de set columns . Isso tem alguns efeitos colaterais infelizes – não posso set number por medo […]

typeof! == “indefinido” vs.! = null

Muitas vezes vejo código JavaScript que verifica parâmetros indefinidos, etc. dessa maneira: if (typeof input !== “undefined”) { // do stuff } Isso parece meio que um desperdício, já que envolve tanto uma pesquisa de tipo quanto uma comparação de string, sem mencionar sua verbosidade. É necessário, porque ‘indefinido’ poderia ser renomeado, no entanto. A […]

para otimização de loop

List flowers = new ArrayList(); Meu loop for atualmente parece com isso … for (int i = 0; i < flowers.size(); i++) { … } OU devo mudar isso para parecer com o código abaixo int size = flowers.size(); for (int i = 0; i < size; i++) { … } Qual é o desempenho […]

Existe uma desvantagem em adicionar um delegado vazio anônimo na declaração de evento?

Eu tenho visto algumas menções dessa expressão (incluindo sobre SO ): // Deliberately empty subscriber public event EventHandler AskQuestion = delegate {}; A vantagem é clara – evita a necessidade de verificar nulos antes de aumentar o evento. No entanto, estou interessado em entender se há alguma desvantagens. Por exemplo, é algo que está em […]

Por que uma function deve ter apenas um ponto de saída?

Eu sempre ouvi falar de uma única function de ponto de saída como uma maneira ruim de codificar porque você perde a legibilidade e a eficiência. Eu nunca ouvi ninguém discutir o outro lado. Eu pensei que isso tinha algo a ver com CS, mas essa questão foi abatida no cstheory stackexchange.

return statement vs exit () em main ()

Devo usar exit() ou apenas return instruções em main() ? Pessoalmente eu sou a favor das declarações de return porque eu sinto que é como ler qualquer outra function e o controle de stream quando eu estou lendo o código é bom (na minha opinião). E mesmo se eu quiser refatorar a function main() , […]

JavaScript: Quais são os perigos em estender o Array.prototype?

O Google JavaScript Style Guide recomenda contra a extensão do Array.prototype . No entanto, usei Array.prototype.filter = Array.prototype.filter || function(…) {…} Array.prototype.filter = Array.prototype.filter || function(…) {…} como uma maneira de tê-lo (e methods similares) em navegadores onde eles não existem. MDN na verdade fornece exemplo semelhante . Estou ciente dos problemas do Object.prototype , […]

Estilos de syntax de conversão de C ++

Uma pergunta relacionada ao lance regular vs. static_cast vs. dynamic_cast : Qual estilo de syntax de conversão você prefere em C ++? Sintaxe de conversão de estilo C: (int)foo Sintaxe de static_cast(foo) estilo C ++: static_cast(foo) syntax de construtor: int(foo) Eles podem não traduzir exatamente as mesmas instruções (não são?), Mas o efeito deles deve […]

Variável de configuração para NULL depois de livre

Na minha empresa há uma regra de codificação que diz, após liberar qualquer memory, redefinir a variável para NULL. Por exemplo … void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Eu sinto que, em casos como o código mostrado acima, a configuração para NULL não tem […]