Aprendendo arquitetura a partir do histórico 0 e propósito do projeto de arquitetura

Aprendendo arquitetura a partir do histórico 0 e propósito do projeto de arquitetura

A história do desenvolvimento de linguagens de programação

Linguagem de Máquina -> Linguagem Assembly -> Linguagem de Alto Nível.

A escala e a complexidade do software aumentaram muito e houve duas crises de software.

  • A primeira crise do software e a programação estruturada (1960-1970)
  • A Segunda Crise do Software e a Orientação a Objetos (década de 1980)

Antecedentes históricos da arquitetura de software

À medida que o tamanho de um sistema de software aumenta, algoritmos relacionados à computação e estruturas de dados não constituem mais grandes
problemas ; quando um sistema é composto de muitas partes, a organização de todo o sistema, conhecida como "Software Series
New Design Issues.

Sistemas de software de maior escala enfrentam problemas relacionados à arquitetura de software:

  • A escala do sistema é enorme, o acoplamento interno é sério e a eficiência do desenvolvimento é baixa;
  • O acoplamento do sistema é sério, e todo o corpo é mobilizado por uma ação, dificultando modificações e expansões posteriores;
  • A lógica do sistema é complexa, propensa a problemas e é difícil solucionar e reparar após a ocorrência de problemas.

小结:

  • O processo de desenvolvimento de software inclui vários links, como análise, design, implementação, teste, verificação, implantação e operação e manutenção.
  • No processo de design de software, módulos, objetos e componentes são essencialmente metodologias de "divisão" para uma certa escala de software em diferentes granularidades e níveis, e a
    arquitetura de software é um método para "organizar" o software.
  • O projeto arquitetônico não pode ser separado de fatores que nada têm a ver com a tecnologia em si, como negócios, condições reais da empresa, pessoal, orçamento e investimento de tempo, mas são fatores que afetam e até determinam a direção do projeto arquitetônico. Portanto, não há melhor, apenas mais adequado.

Desentendimentos de projeto de arquitetura

  • Como a estrutura é muito importante, o projeto da estrutura também
  • O sistema não pode funcionar sem projeto de arquitetura
  • O projeto de arquitetura pode melhorar a eficiência do desenvolvimento
  • Arquitetura bem projetada pode promover o desenvolvimento de negócios
  • Todo sistema precisa ser arquitetado
  • O processo da empresa exige que haja desenho de arquitetura no processo de desenvolvimento do sistema
  • Para alto desempenho, alta disponibilidade e escalabilidade, é necessário um projeto de arquitetura

O verdadeiro propósito do projeto arquitetônico

架构设计的主要目的是为了解决软件系统复杂度带来的问题。

Como fazer projeto arquitetônico

  • Por meio da familiaridade e compreensão dos requisitos, identifique onde está a complexidade do sistema e, em seguida, projete a arquitetura para esses pontos complexos
  • O desenho da arquitetura não precisa ser abrangente, não é necessário que toda arquitetura tenha as características de alto desempenho, alta disponibilidade e alta escalabilidade, mas sim identificar
    pontos complexos e então resolver os problemas de forma direcionada.
  • Entenda os pontos complexos que precisam ser resolvidos por trás de cada solução arquitetônica e, em seguida, compare os pontos complexos do seu próprio negócio e consulte
    soluções com pontos complexos semelhantes.
  • Se a complexidade do sistema não estiver na parte de performance, de nada adianta atingir 100.000 TPS
  • A arquitetura do Taobao foi projetada para resolver a complexidade dos negócios do Taobao. A complexidade dos negócios do Taobao não é a mesma que a complexidade dos nossos negócios
    . O número de usuários da maioria dos negócios não pode ser tão grande quanto o do Taobao.
  • O Docker não é uma panaceia, ele foi projetado apenas para resolver a reutilização de recursos e a alocação dinâmica.Se a complexidade do nosso sistema
    não estiver nessa área, não faz sentido introduzir o Docker.

小结

A arquitetura de negócios e o nível de negócios são extraídos dos cenários de aplicação reais de cada projeto específico.

A arquitetura de negócios é o refinamento e a abstração dos requisitos de negócios.O desenvolvimento de software deve atender aos requisitos de negócios, caso contrário, é um castelo no ar.
A complexidade do negócio de sistemas de software pode ser resolvida dividindo a interface de trabalho da perspectiva da arquitetura de negócios .

Para projetar a arquitetura de software, a primeira coisa é garantir que ela possa estar alinhada com a arquitetura de negócios.Esse também é o processo de mudança da lógica de negócios para a lógica do código, de modo que o design da arquitetura de software aponte a direção do desenvolvimento.

Além disso, o projeto arquitetônico também estabelece as bases para a subseqüente divisão do trabalho de desenvolvimento.

O nível de negócios se manifesta na capacidade de armazenamento, capacidade de throughput e tolerância a falhas, etc., principalmente devido à complexidade do negócio durante o período de operação e manutenção do software.

Ao fazer o projeto de arquitetura de software, é necessário garantir que o software tenha a capacidade de suportar seus requisitos de nível de negócios.Se o software expirar durante sua vida operacional, todo o trabalho anterior será em vão.

A complexidade da arquitetura de software correspondente é diferente para diferentes níveis de negócios; portanto, para diferentes projetos, o nível de negócios é diferente e o design da arquitetura também é diferente.

A arquitetura de negócios deve corresponder aos cenários de aplicação reais que ela enfrenta. Como os cenários de negócios de cada produto ou projeto são
diferentes , cada vez antes de fazer um novo desenvolvimento de software, a arquitetura de software deve ser projetada primeiro, tentando aplicá-la diretamente sem análise A arquitetura anterior plan , nove em cada dez, fará com que o sistema atual relate um grande problema em um determinado ponto e leve à derrubada e reinicialização, sem falar no uso direto do plano de arquitetura
pronto de outra pessoa.

Portanto, antes de cada software ser desenvolvido, ele deve projetar uma arquitetura de software adequada para si mesmo em combinação com seus próprios cenários de aplicação.As soluções de arquitetura prontas
podem ser usadas apenas para referência e não podem ser aplicadas diretamente.

Além disso, como a arquitetura de negócios e o volume de negócios continuarão a se ajustar ou crescer, a arquitetura de software não é fixa de uma vez por todas e continuará a se
ajustar aos negócios.

Acho que você gosta

Origin blog.csdn.net/qq_35385687/article/details/131552039
Recomendado
Clasificación