Qt Project Arquitectura: Diseño de Arquitectura

Excepto en el caso de proyectos muy pequeños a nivel de microdemostración, se recomienda usar pri para almacenar archivos de código en diferentes carpetas para otros proyectos, lo cual es conveniente para la gestión y búsqueda unificadas. Se recomienda juntar las clases con el mismo tipo de función. Si hay demasiados archivos de código en este directorio, también se recomienda dividir varios directorios para el almacenamiento. Por ejemplo, el formulario de configuración del sistema se coloca en un directorio y el formulario de gestión de registros se coloca en uno Bajo contenido.

Múltiples proyectos utilizarán muchas funciones comunes. Puede considerar encapsularlas en módulos de estilo pri, comúnmente conocidos como ruedas, y mejorar constantemente estas ruedas. Múltiples proyectos comparten este módulo. Una vez que encuentre una corrección de errores, solo necesita cambiar un lugar.

Si el proyecto es aún más grande o el equipo del proyecto asigna diferentes funciones, puede considerar la forma de complemento. Generalmente, hay dos tipos de complementos, uno es el complemento en forma de biblioteca dinámica común, que debe estar junto con el programa principal, el otro es el mecanismo de Qt. Complementos, colocados en el directorio especificado. Si solo hay 3-5 proyectos de interfaz, cree un form.pri para almacenar estas interfaces.

La arquitectura se puede dividir en arquitectura comercial, arquitectura de aplicaciones, arquitectura de datos y arquitectura técnica de acuerdo con las diferentes necesidades, desde los requisitos comerciales hasta la implementación del sistema.

1. Estructura empresarial

Principios de diseño de la arquitectura empresarial:

  • Plataformatiza tu negocio. Las plataformas comerciales son independientes entre sí, como plataformas comerciales, plataformas logísticas, plataformas de pago, plataformas publicitarias, etc. El negocio básico se hunde y se puede reutilizar, como usuarios, productos, categorías, promociones, puntualidad, etc.
  • Separación del negocio principal y el negocio secundario. Separar el negocio principal y el negocio secundario del sistema de comercio electrónico, como el servicio de transacción principal y el servicio de transacción general, racionalizar el negocio principal (bueno para la estabilidad) y diversificar el negocio secundario.
  • Segregar diferentes tipos de negocios. La función de la plataforma de negociación es permitir que compradores y vendedores firmen contratos de transacción, por lo que es necesario priorizar la alta disponibilidad para que los usuarios puedan realizar pedidos rápidamente. El negocio de cumplimiento no tiene altos requisitos de disponibilidad, pero se debe dar prioridad a garantizar la coherencia. El negocio seckill tiene altos requisitos para una alta simultaneidad y debe separarse del negocio normal.
  • Distinguir entre procesos principales y auxiliares.

2. Arquitectura de la aplicación

Principios de diseño de la arquitectura de aplicaciones:

  • Estabilizar. Todo gira en torno a la estabilidad. La estructura debe ser lo más simple y clara posible, y la búsqueda de pequeños y hermosos, no grandes y completos. No diseñes en exceso.
  • Desacoplamiento. Separar la parte estable de la parte volátil. Separación del negocio principal del negocio secundario. Separe las aplicaciones de los datos. Separación de servicios y detalles de implementación.
  • abstracto. Abstracción de la aplicación: la aplicación solo depende de la abstracción del servicio, no de los detalles y la ubicación de la implementación del servicio. Abstracción de la base de datos: la aplicación solo depende de la base de datos lógica y no necesita preocuparse por la ubicación y la fragmentación de la base de datos física. Abstracción de servicios: la implementación de la virtualización de aplicaciones no necesita preocuparse por la configuración de la máquina física y asigna los recursos de forma dinámica.
  • débilmente acoplado. Llamadas asíncronas entre dominios: intente desacoplar de forma asíncrona entre diferentes dominios comerciales. Haga que el negocio no central sea lo más asíncrono posible: intente que sea lo más asíncrono posible entre el negocio principal y el negocio no central. Cuando sea necesario llamar sincrónicamente, debe establecer el período de tiempo de espera y la duración de la cola de tareas.
  • diseño tolerante a fallas. Autonomía del servicio: los servicios se pueden modificar, implementar, lanzar y administrar de forma independiente entre sí para evitar reacciones en cadena. Tolerancia a fallas del clúster: implementación del clúster del sistema de aplicaciones, evitando servicios de un solo punto. Recuperación ante desastres de salas de varios ordenadores: implementación de salas de varios ordenadores, multiactivo.

Hay varios tipos principales de arquitecturas de aplicaciones: arquitecturas monolíticas, distribuidas y SOA.

2.1 Aplicación monolítica

El sistema tiene una sola aplicación, que se empaqueta en una aplicación, se implementa en una máquina y almacena datos en una base de datos. La aplicación monolítica adopta una arquitectura en capas, que generalmente incluye la capa de presentación, la capa comercial, la capa de acceso a datos y la capa de base de datos. La capa de presentación es responsable de la experiencia del usuario, la capa comercial es responsable de la lógica comercial y la capa de acceso a datos es responsable para el acceso a datos en la capa DB.

  • Ventajas: desarrollo, compilación y depuración integrales, una aplicación contiene todas las funciones, es fácil de probar e implementar.
  • Desventajas: cuando el sistema crece, la complejidad del código es alta, es difícil de mantener, el nivel de expansión de la aplicación es bajo y la división de responsabilidades comerciales y de módulos no está clara.

2.2 Arquitectura distribuida

En la arquitectura de aplicaciones distribuidas, son independientes entre sí, los códigos se desarrollan de forma independiente, se implementan de forma independiente y se comunican entre sí a través de interfaces API. El protocolo de comunicación generalmente usa HTTP, el formato de datos es JSON y el método de integración de aplicaciones está relativamente simplificado.

  • Ventajas: alta cohesión dentro de la aplicación, desarrollo, prueba e implementación independientes, acoplamiento débil entre aplicaciones, límites comerciales claros, dependencias comerciales claras y soporte para el desarrollo paralelo de grandes proyectos.
  • Desventajas: cuando los requisitos de la interfaz API cambian, la aplicación debe volver a implementarse y la confiabilidad de la comunicación y la encapsulación de datos son relativamente deficientes en comparación con las llamadas en proceso.

2.3 Arquitectura SOA

SOA también es un tipo de arquitectura de aplicaciones distribuidas.La arquitectura SOA brinda apoyo a la gobernanza de servicios, incluido el registro de servicios, el enrutamiento de servicios, la autorización de servicios, la degradación de servicios, la supervisión de servicios, etc.

  • Ventajas: centrarse en la capa de servicio, centrarse en el negocio principal y proporcionar el uso compartido de todo el sistema.El servicio es una aplicación independiente, implementada de forma independiente, con una interfaz clara, y es fácil de realizar pruebas e implementaciones automatizadas. El servicio no tiene estado y es fácil de escalar horizontalmente; a través de la tecnología de virtualización de contenedores, se logra el aislamiento de fallas y la utilización eficiente de los recursos.
  • Desventajas: dependencias complejas del sistema, inconvenientes para el desarrollo/prueba/implementación, dificultades en la consistencia de datos distribuidos y el soporte de transacciones distribuidas, generalmente resuelto simplificando la consistencia final

3. Arquitectura Técnica

La arquitectura técnica es la implementación de soluciones técnicas para las funciones (o servicios) propuestas en la arquitectura empresarial, incluida la implementación del sistema de software, la selección del sistema operativo y el diseño del tiempo de ejecución. Criterios de diseño:

  • sin Estado. Es decir, trate de no guardar los datos de estado en la máquina.
  • Reutilizable. La granularidad de reutilización es un servicio abstracto con lógica comercial, no los detalles de implementación del servicio. Las referencias de servicio solo dependen de la abstracción del servicio.
  • débilmente acoplado. Llame a través de dominios comerciales, desacoplando tanto como sea posible de forma asíncrona. Establezca el tiempo de espera y el tamaño de la cola al llamar sincrónicamente. Separar los servicios básicos relativamente estables de los servicios de procesos volátiles.
  • manejable. Los servicios se pueden degradar, limitar el tráfico, activar y desactivar, monitorear, mecanismo de lista blanca y se pueden formular contratos de servicio.
  • Servicios basicos. Los servicios básicos son de hundimiento y reutilizables, como puntualidad, inventario y cálculo de precios. Los servicios básicos son autónomos y relativamente independientes. La implementación de los servicios básicos debe ser racionalizada y escalable horizontalmente. La implementación de los servicios básicos debe estar físicamente aislada, incluidos los datos relacionados con los servicios básicos.

4. Resumen de la estructura del programa

Arquitectura del programa:
(1) Módulo de interfaz de usuario: responsable de procesar la visualización de datos desde la capa de lógica comercial u otros módulos, y enviar las operaciones del usuario al módulo de lógica comercial.
(2) Módulo de comunicación: TCP, UDP, mqtt, puerto serie, etc., adoptando el modo singleton para ser responsable de la comunicación externa.
(3) Módulo de base de datos: leer y guardar datos.
(4) Módulo de lógica empresarial: procesa los datos devueltos desde el módulo de comunicación y notifica el resultado al módulo de interfaz de usuario.
(5) Capa intermedia: módulo de comunicación asociado y módulo de lógica empresarial.
(6) Módulos independientes (módulo de configuración de inicialización, proceso daemon, módulo de actualización, módulo de recopilación de registros...).

Los beneficios de este artículo, gratis para recibir el paquete de materiales de aprendizaje de desarrollo Qt, video técnico, que incluye (base del lenguaje C ++, introducción a la programación Qt, mecanismo de señal y ranura QT, dibujo de imagen de desarrollo de interfaz QT, red QT, programación de base de datos QT, QT proyecto de combate, QSS, OpenCV, módulo rápido, preguntas de la entrevista, etc.) ↓↓↓↓↓↓Ver abajo↓↓Haga clic en la parte inferior del artículo para recibir la tarifa↓↓

Supongo que te gusta

Origin blog.csdn.net/QtCompany/article/details/131584274
Recomendado
Clasificación