Determinar a melhor maneira de quebrar o código em diferentes pastas e namespaces
-
23-08-2019 - |
Pergunta
Eu tenho o seguinte diretórios:
-ui
-BusinessLogic
-DataAccess
-BusinessObjects
Se eu tiver uma classe que é um esboço sobre o cliente para um serviço do lado do servidor que muda de estado em um sistema servidor, onde teria que ir. .
Solução
este código pertence na lixeira; -)
a sério, se você escreveu e não sabe para onde vai, então ou o código é questionável ou o particionamento é questionável; como é que vamos ter mais informações sobre o sistema do que você tem?
Agora, se você quer apenas algumas opiniões desinformadas, aqueles que temos pela petabyte:
- ele vai na interface do usuário porque você disse que é um stub do cliente
- ele vai na lógica de negócios porque ele implementa o efeito de uma regra de negócio
- ele vai na camada de acesso a dados porque ele está acessando um serviço de mudança de estado
- ele vai na camada de objeto de negócios, pois resulta em uma mudança de estado no servidor
seria mais útil se você nos disse que o stub realmente faz; sem especificidades que é difícil saber por onde ele pertence, e / ou é fácil argumentar em um vácuo sobre onde ele "deveria" pertencer
Outras dicas
Eu consideraria isso uma forma de acesso a dados, embora não seja claro para mim que você precisa colocá-lo no mesmo projeto como o resto de suas classes de acesso de dados. Lembre-se que as camadas são principalmente conceitual - para ajudar a manter o design limpo. Separando-os em diferentes projetos de ajuda organizacionalmente, mas não é obrigatório. Se é uma classe stub real, então o projeto de acesso de dados é provavelmente a casa natural para ele, mas se ele é usado apenas na camada de interface do usuário, em seguida, mantê-lo lá, provavelmente seria ok.
Eu não acho que ele pertence a qualquer um desses. Você nem precisa de um novo diretório ou um novo projeto inteiramente. Mas fora daqueles dada, eu teria que dizer BusinessObjects porque certamente não é acessando dados de acordo com sua descrição, e sim é simplesmente agindo como um objeto local (esboço).
Em um repositório de serviços web.