O líder da equipe da minha empresa \ arquiteto argumenta que um projeto em larga escala é mais fácil de entender se "entidades conectadas pela lógica" forem colocadas em um arquivo .cs.
Eu cito:
"Toda a estrutura da lógica, da interface e da classe pode ser vista em um só lugar, este é um argumento que não pode ser refutado. Para ver a mesma coisa, mas com vários arquivos, você precisa usar as ferramentas, classe diagrama, R # para navegação etc. "
"Seguindo a teoria pobre, posso gritar que um exército de arquivos separados é legal, mas quando se trata de fazer alterações no código existente, especialmente se você não foi um escritor desse código, é muito difícil entender muitos arquivos dispersos. Assim, nos fóruns, você pode escrever "um arquivo enum-one", mas na prática essa abordagem nunca deve ser usada "
"... Quanto à separação da base de código entre os desenvolvedores, atualmente não é um problema editar simultaneamente o mesmo arquivo. A mesclagem não é um problema."
Ouvi e li muitas vezes que precisamos criar um arquivo .cs por enum, classe e assim por diante, e essa é a melhor prática.
Mas não posso convencê-lo. Ele diz que não confia em nenhum programador conhecido como Jon Skeet. A propósito, aqui está a opinião de Skeet sobre este tópico: Onde é o melhor lugar para localizar tipos de enum?
O que você acha? Existe um problema real? Ou é uma questão de gosto e deve ser regulamentada pelo padrão de codificação da organização?
fonte
Respostas:
Existem algumas falhas no argumento do seu líder de equipe:
Classes e enums bem projetadas devem ser usadas em qualquer lugar do seu projeto, não apenas onde possam fazer sentido logicamente.
Classes e enumerações devidamente documentadas com comentários XML são muito autoexplicativas, apenas passando o mouse sobre o item que faz referência a ele.
Você sempre pode chegar a uma definição de classe ou enum clicando com o botão direito do mouse na referência e selecionando "Ir para definição", para que realmente não importe onde você a coloca.
Juntar objetos de uma maneira "lógica" é arbitrário (ou seja, você precisa pensar no que significa "lógica". Prefiro gastar esses ciclos de relógio realizando a programação).
A configuração de cada definição de objeto em seu próprio arquivo cria uma expectativa uniforme e disciplinada de organização e estrutura e não levanta questões como "por que isso está aqui?" É uma coisa muito agradável de se ter.
Se dois ou mais objetos estiverem logicamente relacionados, basta colocá-los em sua própria pasta no Project Explorer.
fonte
Provavelmente, o líder da equipe cortou os dentes em uma época anterior, quando clicar com o botão direito do mouse e escolher "ir para a definição" não era uma opção. Sei que, quando estou no modo de desenvolvimento de pico pesado, aumentarei arquivos de classe bastante grandes até que eu permita que o novo afiador o conserte.
De qualquer forma, se você quiser levar a liderança da equipe à tarefa, pergunte a ele por que essas classes e enumerações não são classes e enumerações filho - não há razão para declara-las como entidades independentes, se são entidades verdadeiramente dependentes. Isso pode ajudá-lo a pensar um pouco sobre a fatwa.
fonte