Executando verificação de segurança...
1

Sobre PascalCase, pensei que fosse uma nomenclatura antiga da Microsoft, por conta das pastas de arquivos do Windows, serem desse jeito. Isso influenciou até numa boa visibilidade, pois no lançamento do Java, por conta dos processos talvez MS gostaria de fazer diferente.

Sobre I na interface, achei uma ótima ideia por questões que voce sabe quando será uma Interface por causa da visibilidade, ao contrario do Java que voce precisa abrir a documentação do método/atributo e verificar se é uma interface, etc.

Carregando publicação patrocinada...
1

Sobre I na interface, achei uma ótima ideia por questões que voce sabe quando será uma Interface por causa da visibilidade, ao contrario do Java que voce precisa abrir a documentação do método/atributo e verificar se é uma interface, etc.

Não faz muito sentido né? Se você vai usar uma classe ou interface o mínimo que você precisa saber é o que ela oferece, normalmente lendo a documentação. Começar com I ou não, nesse caso não ajuda em nada.

Por exemplo, o que mudaria para você saber que IDbConnectioné uma interface? Se você não conhece-la, não ajudar muito de qualquer forma.

Agora imagina uma classe chamada DbConnection, não existem variações no seu sistema então DbConnection é a única classe que implementa o que você precisa. Se por ventura você precisar de variações, você pode converter a classe para uma interface sem mudar seu nome, e gerar classes derivadas como MySQLDbConnection e PostgreSQLDbConnection que implementem a interface DbConnection e tudo continuará funcionando.

Usar o I para interface me lembra a notação húngara que era usada muitos anos atrás, onde variáveis de texto começam como str, txt ou s, por exemplo:

  • strNomeCliente
  • txtEndereco
  • sEmail
  • intIdade
  • iDia
  • dtNascimento
  • ... e por aí vai

Se você precisa do I para diferenciar uma interface, então precisaria do A para uma classe abstrata (ADbConnection) certo? E do S para uma struct (SPessoa) não é?

Percebe que o I é só um ruído de um passado onde as IDEs não ofereciam tantas informações e a documentação não era tão acessível?