【Projeto de Combate: Plataforma de Detecção de Ácido Nucleico】Capítulo Dois

Objetivos deste capítulo

Projeto completo de design de arquitetura e design de estrutura de banco de dados

Ênfase: é tudo sobre


insira a descrição da imagem aqui

Bom, desde o último capítulo já traçamos os requisitos gerais do projeto, muitos programadores podem começar a trabalhar diretamente neste ponto. De acordo com o processo de desenvolvimento de software em cascata, agora chegamos ao estágio geral de design. Na verdade, mesmo que você realmente faça isso, é impossível pular esta etapa, mas programadores experientes já concluíram o design geral em um instante.

Bem, como um programador bem-educado, você ainda precisa usar documentos para fazer o design geral. é relativamente abrangente. Se você está trabalhando neste projeto comigo, embora eu já tenha feito o design geral, sugiro que você mesmo desenhe a imagem geral do design, porque você definitivamente pensará quando seguir o desenho. Confie em mim, esta coisa irá ajudá-lo.

Projeto geral (projeto de arquitetura)

Muitos alunos não têm ideia sobre o design geral.Na verdade, sempre fiquei confuso no início. Nessa fase todos os sistemas que eu fazia eram bem pequenos, basicamente era feito um Projeto na ferramenta de desenvolvimento, então o desenho geral naquela época nada mais era do que aplicar uma arquitetura de três camadas, arquitetura, etc., nada mesmo MVC. Que diabos. Mas agora este projeto pode ser uma boa ilustração do que é o design geral.

Pela minha experiência, pode incluir várias etapas

  1. Seleção de tecnologia

    Desnecessário dizer que este item é obrigatório para a seleção de tecnologia de projeto de software. Os principais fatores a serem considerados ao realizar esta etapa são cenários de aplicação do projeto, requisitos típicos, capacidades técnicas da equipe, etc.

  2. Projeto da Estrutura de Implantação

    Esta etapa deve considerar principalmente a relação entre cenários de aplicação e módulos

  3. Projeto de estrutura de documento de engenharia

    Muitas pessoas não levam essa etapa a sério, mas acho que fazer isso é a garantia mais básica da qualidade do código.

  4. Seleção de soluções para requisitos pesados ​​e difíceis

    Geralmente, o projeto geral não considera os requisitos específicos, mas se alguns problemas importantes e difíceis não forem considerados, isso pode afetar a estrutura geral. Se houver um instrumento de inspeção de encaixe automático nos requisitos para carregar diretamente os dados do resultado da inspeção, então o projeto é do lado do fiscal Não é possível resolver pela WEB, pois o equipamento de atracação deve estar no modo C/S, e o B/S não pode ser feito na maioria dos casos.

  5. Projeto de estrutura de banco de dados

Antes de falar sobre o design geral, é necessário esclarecer o conceito do projeto. "Projeto" é traduzido para o inglês como Projeto. Em muitas ferramentas de desenvolvimento, você deve primeiro criar um Projeto quando começar a escrever o código. Para o projeto da plataforma de detecção de ácido nucleico, usar um Projeto pode não funcionar.

De fato, se um projeto é mais complexo e requer vários pacotes, muitas ferramentas de desenvolvimento também podem apoiá-lo, como o IDEA. Depois de criar o projeto, você também pode criar outro Módulo no projeto. Seus pacotes independentes podem ser colocados em um Módulo .

Para evitar barreiras na comunicação, vamos primeiro unificar as definições dos termos:

  • Projeto: Refere-se a toda a plataforma de detecção de ácido nucleico
  • Módulo: Refere-se a um pacote em uma ferramenta de desenvolvimento. Se separarmos o front-end e o back-end, haverá um pacote para o front-end e outro para o back-end.
  • Aplicação: refere-se ao pacote de implantação, que pode se referir a um pacote de implantação no servidor ou no celular. APPEste pacote de implantação pode ser o front-end e o back-end juntos, ou o front-end e o back-end podem ser separado. Se os front-ends e back-ends forem separados em dois pacotes de implantação, eles serão dois aplicativos e, se forem um pacote de implantação, serão um único aplicativo.

A parte de definição de termo refere-se aos modelos de muitos documentos técnicos padronizados. Por um tempo, não entendi muito bem por que existe uma definição de termo e não sabia o que escrever na definição de termo. Mais tarde, entendi mais projetos para saber o significado da definição do termo. É para eliminar as barreiras na comunicação e compreensão e evitar a situação em que Zhang San e Li Si têm entendimentos diferentes quando dizem uma palavra.

Em muitos casos, esta parte do projeto e do projeto pode ser concluída com sucesso sem definição de terminologia, mas é preciso dizer que esta parte pode eliminar alguns desvios de entendimento.Como programador confiável, é necessário fazer o trabalho com antecedência. É muito necessário dominar a alfabetização necessária e dominar este método.

Seleção de tecnologia

Vamos fazer a seleção técnica, vamos pensar nas seguintes questões:

  • Quais fins estão envolvidos em todo o projeto?

    Resposta: terminal de PC, terminal móvel

  • Qual é o método de acesso no terminal móvel?

    Na verdade, a plataforma de detecção de ácidos nucleicos em uso já fez uma escolha, ou seja, quando APPpensamos nesse problema, na verdade é para restaurar a ideia de design de arquitetura. As opções geralmente incluem: APP, H5站点, 微信小程序, comparação de vantagens e desvantagens:

    vantagem deficiência
    APP Boa experiência do usuário e desempenho controlável. A atualização é mais problemática, há IOSum problema de plataforma cruzada com o Android e o custo de desenvolvimento é o mais alto, mas o custo pode ser reduzido por meio do modo de desenvolvimento
    H5站点 A implantação da atualização é muito simples, não há diferença de plataforma e o custo de desenvolvimento é o menor Experiência do usuário insatisfatória, muito afetada pela experiência do navegador móvel
    小程序 Não há diferença de plataforma e o custo de desenvolvimento é baixo Uma vez implantado, todos podem usá-lo, com certos riscos. Além disso, a plataforma é implantada com cidades como nós.Se for publicada no lado do programa pequeno, haverá alguns problemas na revisão online.
    • No que diz respeito a este projeto, por se tratar de trabalho, não é adequado para abertura ao público.Em primeiro lugar, pode-se excluir o método de pequenos programas.

    • Em segundo lugar, H5a experiência do usuário ao usar o site é extremamente ruim e também não é adequada para o trabalho, mas é uma boa escolha para projetos práticos.

    • Se for adotado APP, o problema de atualização pode ser usado como um mecanismo de atualização automática para minimizar o problema de implantação de atualização. Além disso, pode IOSser ignorado, porque IOSé mais problemático revisar e ficar online, e APPLEé um pouco odioso use-o para um telefone móvel de trabalho. Portanto, partindo da realidade, adotar APPé o caminho mais adequado.

  • APPQue tecnologia é usada para desenvolver o site?

    As opções disponíveis são: NativeApp, WebApp,HybridApp

    Web App(aplicativo web) Hybrid App(aplicativo híbrido) Native App(aplicativo nativo)
    Custos do desenvolvimento Baixo meio alto
    atualização de manutenção Simples Simples complexo
    experimentar Diferença excelente excelente
    Aprovado pela loja ou mercado negado reconhecido reconhecido
    Instalar desnecessário precisar precisar
    Plataforma cruzada excelente excelente Diferença

    No que diz respeito a este projeto, porque é usado para trabalho APP, ainda há muitas pessoas envolvidas. Ele tem altos requisitos para a estabilidade e usabilidade do programa, e pode até exigir que a coleção normal de ácidos nucléicos não seja afetada mesmo que o servidor esteja fora do ar.A APPlógica de negócios do não é complicada, então NativeApppode ser melhor usá-lo, pelo menos HybridAppnão é recomendado WebApp.

    No entanto, como um projeto para praticar as mãos, podemos considerar WebAppos métodos usados ​​e, mesmo para a conveniência da depuração, H5todos os métodos usados ​​são possíveis.

  • O projeto envolve diferentes tipos de pessoal, entre os quais devem ser utilizados o pessoal de coleta, o pessoal de transbordo e o pessoal de recebimento da agência de testes, APPeles usam o mesmo APP, diferenciam-se em funções ou usam funções diferentes APP.

    Essa questão está relacionada à estrutura de implantação, portanto deve ser levada em consideração.

    Quando muitos iniciantes veem o sistema multifunções, eles irão para o módulo de controle de autoridade. Na verdade, não é o caso. Para este projeto, a lógica de negócios não é complicada e quase não há funções compartilhadas entre as funções. Para esse tipo de projeto, eu pessoalmente recomendo Separar diretamente, não controlar as permissões e funções. Naturalmente separado da entrada de uso. Reduza o impacto do controle de permissão no código comercial.

  • Quais tecnologias os membros da equipe podem dominar

    Isso é muito importante. Qualquer projeto deve considerar a questão do custo, a menos que você esteja envolvido em pesquisa científica. Engenharia e ciência são duas direções de pesquisa. É por isso que a China tem a Academia de Ciências e a Academia de Engenharia. Ao escolher uma pilha de tecnologia, é recomendável considerar os dois pontos a seguir:

    • Escolha a tecnologia com a qual a equipe está mais familiarizada na hora de atender às necessidades
    • Tente escolher uma tecnologia que foi testada pelo mercado

Bem, os itens acima são os fatores a serem considerados ao escolher uma pilha de tecnologia ao realmente fazer este projeto. Agora é relativamente simples para nós praticarmos como um projeto de desenvolvimento primário.

  • O pessoal de cobrança, o pessoal de transferência e o pessoal de recebimento adotam H5páginas de terminais móveis, que podem ser transformadas HybirdAppouWebApp
  • Pessoal de operação, carregue PCWebo aplicativo de coleta de terminal de pessoal
  • Requisitos não funcionais, faça o seguinte
    • A interface é elegante e generosa, sem elementos de entretenimento
    • A velocidade de impacto da página é de 1,5 segundos

Portanto, nossa pilha de tecnologia pode resultar basicamente em:

  • Banco de DadosMySql5.7
  • Back-end: pilha de tecnologia SpringBoot+SSM, ferramentas de desenvolvimento: versão Idea2021
  • Front-end: pilha de tecnologia VUE, versão Vue3.0, ferramentas de desenvolvimento: VsCode ou HBuilder
    • PC: elementUI
    • Terminal móvel: Vant (se quiser transformá-lo em APP, também pode escolher uniapp)

Projeto da Estrutura de Implantação

Conforme mencionado na parte anterior, os aplicativos usados ​​por diferentes funções são abertos de forma independente, portanto, precisamos implantar seus aplicativos de acordo com diferentes funções.

Desenhe o diagrama da estrutura de implantação da seguinte maneira:

insira a descrição da imagem aqui

O motivo dessa implantação tem as seguintes considerações:

  • O desenvolvimento adota a separação dos front-ends e back-ends. Os front-ends e back-ends podem realmente ser implantados juntos durante a implantação, e é relativamente simples. A razão pela qual os front-ends e back-ends são implantados separadamente é realmente um espetáculo, porque pode ser usado durante a implantação Tecnologia de proxy reverso. E se forem implantados juntos, basicamente não há necessidade de um proxy reverso.

  • O front-end e o front-end do pessoal de cobrança são implantados de forma independente, mas o back-end do pessoal de transferência, recebimento e upload não é implantado de forma independente.

    A razão é que a simultaneidade dos coletores é relativamente alta. Essa separação pode reduzir a influência mútua. Se o sistema for distribuído, há uma alta probabilidade de que os serviços de back-end dos coletores sejam expandidos para aumentar o simultaneidade.Em contraste, a freqüência de uso de pessoal de transbordo, pessoal de recebimento e pessoal de carregamento é relativamente muito menor. Claro, você também pode implantar cada tipo de pessoal de forma independente

    Embora estejamos fazendo isso sozinhos, ainda estamos o mais próximo possível da situação real, para que possamos aprender mais experiência, em vez de simplesmente adicionar, excluir, modificar e verificar.

  • Os operadores implantam de forma independente.

    A razão é que a estação do operador pertence a uma categoria com autoridade superior, e a implantação independente reduz os riscos de segurança e não há nada de errado com isso.

Alguns alunos podem pensar depois de ler, é necessário fazer isso? Não há muitas plataformas funcionais.

O fato é que a plataforma de detecção de ácidos nucleicos que está sendo amplamente utilizada provavelmente fará exatamente isso. Talvez as pessoas tenham feito mais nós de implantação. Portanto, não é demais para nós projetar dessa maneira. Em resumo, três tipos de aplicativos precisam ser implantados

  • Banco de dados, usando Mysql 5.7
  • O front-end adota a pilha de tecnologia Vue, o PC é equipado com ElementUI e o terminal móvel é equipado com Vant
    • terminal móvel
      • Lado do coletor
      • Lado do pessoal de trânsito
      • Lado do receptor
    • lado do PC
      • Carregar lado pessoal
      • Lado do operador
  • extremidade traseira
    • Lado do coletor
    • outra equipe
    • Lado do operador

Projeto de estrutura de documento de engenharia

O projeto da estrutura de implantação foi concluído na etapa anterior e a próxima etapa é projetar a estrutura do documento de engenharia. O conteúdo desta etapa é bem simples, ou seja, desenhar a estrutura de pastas do projeto. Especifica qual conteúdo é o arquivo de engenharia do projeto, que está sujeito ao gerenciamento do projeto GIT e qual conteúdo deve ser colocado onde.

É possível que eu seja a única pessoa em toda a rede que mencione esta etapa no mesmo nível do desenho da estrutura de implantação. Esta etapa não parece ser tão importante. Nada mais é do que como nomear a pasta e onde coloque o código.

Em minha prática de engenharia, descobri que, para muitos programadores juniores, a questão da nomenclatura é muito aleatória, o que geralmente traz alguns problemas no estágio posterior, e documentos, scripts e códigos são colocados aleatoriamente, o que levará a arquivos de projeto muito confusos . E para mim, que sou obsessivo-compulsiva, foi insuportável.

Não sei quantas vezes, na metade do projeto, um problema de nomenclatura na fase inicial foi modificado e dezenas ou centenas de documentos foram alterados. Normalmente ousar tomar essa decisão muitas vezes é por causa da transição de nomes que me incomoda a um nível insuportável. Mais tarde, em alguns projetos, desenhei conscientemente a estrutura dos documentos de engenharia no estágio inicial e descobri que alguns problemas poderiam de fato ser evitados.

Esta etapa também pode ser considerada o design de especificação de desenvolvimento do projeto. É diferente da especificação de código.A especificação de código é mais sobre como escrever o código, quais nomes podem ser usados ​​e quais nomes não podem ser usados. Geralmente se refere a coisas dentro do arquivo, e a especificação de desenvolvimento é mais sobre o relacionamento entre arquivos e pastas.

Programadores experientes sabem que muitas vezes a função do código e dos arquivos pode ser julgada aproximadamente pelo nome do pacote, nome da pasta e nome da classe do projeto, mas agora os projetos estão ficando cada vez maiores e custam centenas de milhares de dólares por projeto. Linhas de código, dezenas de milhares de arquivos, sem um bom design de estrutura de documento é realmente uma dor de cabeça.

Esta etapa tem os seguintes passos:

Etapa 1: Nomenclatura do projeto e do módulo

O nome chinês do projeto é Nucleic Acid Testing Platform, e a tradução para o inglês é: Nucleic acid testing platform

Portanto, o codinome em inglês do projeto é: NATPlatform, o diretório raiz do documento geral do projeto desta composição.

Nome do banco de dados: nat_db

A seguir está a nomenclatura de cada módulo

  • front-end
    • Coletor: collect_web
    • Equipe de transferência: transfer_web
    • Destinatário: destinatário_web
    • Carregador: uploader_web
    • Operador: manager_web
  • extremidade traseira
    • Coletor: coletor_servidor
    • Others: other_server (o nome do pacote interno deste módulo ainda precisa ser separado)
    • Operador: manager_server

Etapa 2: Concordar com o conteúdo dos documentos de engenharia do projeto

O conteúdo dos arquivos de projeto inclui não apenas códigos, mas também documentos, protótipos de documentos, scripts, dados de teste, etc. que precisam ser preservados.

Os arquivos de projeto geralmente podem ser divididos nas seguintes categorias:

  1. arquivo de código

    1. código de front-end
    2. código de back-end
  2. Banco de dados (o próprio arquivo de banco de dados MYSQL não é adequado como um arquivo de projeto de projeto, mas o script de construção do banco de dados é possível)

    1. roteiro de construção
    2. Inicializar script de dados
    3. script de dados de teste
  3. Documentação do projeto

    1. Documentos de gestão: podem ser incluídos documentos de aprovação de projetos, atas de reuniões e outros documentos que precisam ser preservados

    2. Documentos de requisitos: Projeto de protótipo, fluxogramas e especificações de requisitos são todos documentos de requisitos, além destes, alguns documentos eletrônicos fornecidos pelo cliente também devem ser incluídos.

    3. Documentos técnicos: documentos de projeto de banco de dados, documentos de interface, documentos de especificação, etc.

      Existem também muitas ferramentas de documentação no desenvolvimento atual, como swigger, ferramentas apipost, etc. Como usar ferramentas como swigger deve explicar como usar a documentação.

      Se um software online como apipost puder exportar, ele pode ser exportado. Se não puder ser exportado, haverá um documento na pasta indicando o endereço, direitos de acesso, etc. desses documentos online.

  4. documento de entrega

    O documento de entrega é diferente do documento de projeto, o documento de projeto é mantido por nós mesmos, e o documento de entrega é o material do documento a ser entregue ao cliente por último.

  5. documento de configuração

    Esse tipo de documento possui certos requisitos de confidencialidade, e o projeto pode envolver senhas, dados de atribuição de permissão, etc. Geralmente não junto com outros documentos.

Para nosso projeto prático, documentos de entrega e documentos de configuração não devem ser necessários. Deve haver alguns documentos de projeto, mas não muitos.

Etapa 3: estrutura do documento de design

De acordo com o conteúdo da etapa anterior, a estrutura do documento é projetada da seguinte forma:

-─NATPlatform												项目根目录,也是代码管理的根目录
    ├─db														存放数据库脚本
    │      initData.sql							初始化数据脚本,部署前要生成下基本数据。
    │      initDb.sql								初始化数据库脚本,可以建库建表后生成,每次修改结构后更新该文档
    │      testData.sql							测试数据脚本,有可能一个文件不够,可以增加
    ├─deploy 存放部署包,不需要被GIT管控,项目的模块比较多,配置好生成部署包的路径,在发布的时候比较方便
    │  ├─server								
    │  └─web
    ├─doc														项目文档
    ├─server												后端代码,idea中项目的根目录,下面的几个文件夹是idea中的模块
    │  ├─collector_server						
    │  ├─manager_server
    │  └─other_server
    └─web						    前端代码,vscode/hbuilder的根目录,省去打开多个项目窗口来回切换的麻烦
        ├─collect_web
        ├─manager_web
        ├─reciever_web
        ├─transfer_web
        └─uploader_web

Que tal, não está muito claro? O design principal também leva em consideração os fatores usados ​​nas ferramentas de desenvolvimento para tornar o desenvolvimento mais conveniente ao máximo.

Uma estrutura de documento bem projetada não é estática.Se o design não for razoável durante o processo de desenvolvimento do projeto, ele pode ser ajustado.

Etapa quatro: escolha uma ferramenta e uma plataforma de controle de origem

As ferramentas de gerenciamento de código fonte mais usadas são git\svn\vss, basta escolher de acordo com a situação de cada equipe, minha escolha deve ser git.

Além das ferramentas, você ainda precisa escolher uma plataforma, a menos que planeje colocar seu código em seu próprio computador.

As plataformas comuns incluem gitee, github, plataforma de desenvolvedor WeChat e plataforma de desenvolvedor Ali . Claro, você também pode construir um servidor git sozinho.

Escolhi a plataforma de desenvolvedor WeChat, a velocidade da rede github é um problema e o gitee tem muitas restrições. Tanto a plataforma de desenvolvedor WeChat quanto a plataforma de desenvolvedor Ali são boas. O motivo para escolher a plataforma de desenvolvedor WeChat é que a plataforma WeChat também possui um cliente git integrado e a integração com a plataforma de desenvolvedor WeChat também é relativamente boa. Eu tentei e funciona bem. O cliente pode escolher de acordo com suas próprias preferências.

Seleção de soluções técnicas difíceis

Não há dificuldades neste projeto. A solução técnica de vários pontos-chave foi mencionada no capítulo anterior. O conteúdo é o seguinte:

  • Imprimir código de barras: lodup, usamos para teste, é improvável que tenha uma impressora de código de barras, mas pode ser impresso diretamente em papel A4 para teste
  • Código de digitalização, html5 -qrcode ou jsqrcode, zxing-js
  • Importação e exportação EXCEL, POI ou EasyExcel
  • Existem muitos códigos de verificação de celular, basta escolher o que você quiser

Projeto de banco de dados

Os alunos que fizeram cursos de estrutura de dados devem saber uma frase: programa = estrutura de dados + algoritmo. Se você não sabe, volte e leia o livro com atenção, é muito, muito importante.

Antes de fazer o desenho do banco de dados, há uma coisa a mencionar. Podemos ver no APP baixado no Capítulo 1 que ao cadastrar um catador, você precisa selecionar a comunidade onde mora. Esta função requer dados da divisão administrativa, embora o APP em Xangai é apenas para Xangai. Mas é bastante complicado criar esses dados manualmente.

Muitas vezes precisamos de alguns dados básicos ao construir um sistema, assim como os dados da divisão administrativa nesta plataforma, não requer pessoal de operação e manutenção ou administradores para manter, mas esses dados devem estar disponíveis.

Os dados das divisões administrativas estão atualmente no site do National Bureau of Statistics (endereço: http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html). pode escrever um rastreador para download. Mas acho que a maioria das pessoas pode ser preguiçosa, tudo bem, coletei para você, ao escrever o documento, a última atualização é 2022, os alunos que precisam podem seguir minha conta oficial do WeChat (sala de entrevista Yao Sir), responder Administrativo divisões podem ser baixadas.

O processo de design não é mais descrito em detalhes e o diagrama de relacionamento do banco de dados é exibido diretamente. Alunos que têm pontos de vista diferentes são bem-vindos para discutir na área de comentários.

insira a descrição da imagem aqui

Até agora, nosso design geral é basicamente o mesmo. Na verdade, eu não criei o sistema quando escrevi este artigo, então os dados podem ser modificados durante o processo. Se houver alguma modificação, ela será mencionada em um artigo posterior.

Alunos impacientes podem dizer que não vi uma linha de código em dois capítulos. Haha, na verdade, definitivamente não é prejudicial pensar nisso antes de iniciar um projeto de software. O próximo capítulo deve ser codificado. Estou classificando Eu gosto disso. Colegas de classe não se perdem em uma fila.

Acho que você gosta

Origin blog.csdn.net/aley/article/details/127981278
Recomendado
Clasificación