Pergunta

Eu não tenho certeza se é possível dar conselhos gerais sobre este tema, mas por favor, tente. É difícil de explicar meu caso porque é muito complexo para explicar. E isso é exatamente o problema.

Parece-me constantemente tropeçar em uma situação onde eu tentar projetar alguma parte do meu projeto, mas tem tantas coisas a ter em consideração que eu sou incapaz de obter uma compreensão do mesmo.

Existem algumas dicas gerais ou conselhos sobre a forma de olhar para o meu sistema em pequenos pedaços de cada vez? Como encontrar parcelas menores que poderiam ser projetados separadamente por conta própria?

Foi útil?

Solução

Seus objetivos principais são:

  • High coesão : código (métodos, campos, classes) dentro de uma peça / módulo / partição deve interagir intensamente; deveria faz sentido para esses elementos para saber sobre o outro. Se você achar que alguns deles não interagem muito com o resto, eles provavelmente pertencem somwhere outra pessoa ou deveria formar a sua própria partição. Se você encontrar código fora interagindo intensamente com a partição e saber muito sobre seu funcionamento interno, que provavelmente pertence dentro. O exemplo típico é encontrado em código OO escrito em estilo processual, com "burras" objetos de dados e código "gerente" que atua sobre eles, mas realmente deve ser parte dos objetos de dados.
  • solto acoplamento : Interação entre peças / modules / partições só deve acontecer através bem definidas, APIs estreitas e bem documentados. Tente identificar essas APIs e ver o código é necessário para implementá-las e que o código irá utilizá-los.

Outras dicas

Criar um glossário.

Em outras palavras, identificar os termos que são significativos para o domínio do projecto - não do ponto de vista do programador, mas a partir de um usuário, que está familiarizado com o assunto

.

Em seguida, defina os termos como precisamente e discretamente como você pode. Uma definição bem neste formulário pode servir como uma espécie de pseudo-código.

Desde que você não identificaram ainda o domínio do seu problema, eu vou escolher um exemplo aleatório. Em um sistema de pessoal civil, você pode ter termos como:

  • boleto : um termo de serviço (a partir da data de início até a data final) em um determinado grau e escalão
  • funcionário : uma série de tarugos associados a um SSN especial
  • grau e escalão : linha e coluna no cronograma-geral federal

E assim por diante. Isto não é para identificar unidades funcionais, como parece que você está tentando fazer, mas é um passo boa preparação antes de fazer isso, de modo que você pode expressar seus passos funcionais em termos bem definidos.

É útil para o problema abordagem de decomposição tanto top-down e bottom-up.

Se você está tendo problemas para rachar um grande problema em duas ou mais pequenos problemas, tente pensar das menores possíveis problemas que precisam ser resolvidos. Uma vez que aqueles são tratados, você pode começar a ver formas de combiná-los em problemas maiores quando você se aproxima o seu problema original grande.

Quando eu encontro-me copiando e colando pedaços de código com ajustes mínimos Eu percebo que é uma "partição" e, em seguida, criar uma classe, método, função ou o que quer.

Na verdade, a abordagem orientada para todo objeto é o que é tudo sobre. Tente pensar de sua aplicação como as coisas tangíveis que fazem coisas. código pseudo gravação descrevendo o que as coisas são e o que eles fazem, eu encontrar muitas "partições" desta forma.

Aqui está uma tentativa, tipo de palpite.

As pessoas costumam subestimar o tempo que vai levá-los para fazer o trabalho. Se o seu projeto for grande, então provavelmente você vai precisar de várias pessoas para trabalhar sobre ela, para que possa tentar planejamento com isso em mente. Agora, uma pessoa pode ser esperado para manter apenas uma área na cabeça, então você precisa explicar a ele exatamente o tipo de tarefa que é suposto fazer.

Então, eu diria que você deve tentar escrever uma descrição do trabalho que deve abranger, tanto quanto possível para uma pessoa para se concentrar seriamente sobre. Repita, até que você tenha quebrado o seu projecto em partes que você queria. Como benefício, você está pronto para montar sua equipe. Mas se você descobrir as peças são pequenas, talvez você ainda será capaz de fazê-lo sozinho.

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