El proyecto padre del SQL: genere rápidamente datos de simulación y SQL, lo que mejora enormemente la eficiencia del desarrollo y las pruebas.
Proyecto full-stack front-end y back-end Por el programador Yupi
No es fácil de hacer, ¡no lo utilice para uso comercial ni para reventa! ! !
Experiencia en línea: http://sqlfather.yupi.icu
Demostración en vídeo (tutorial de uso): https://www.bilibili.com/video/BV1eP411N7B7/
Si cree que este proyecto es útil, darle seguimiento al propietario de la UP y tres enlaces consecutivos es el mayor apoyo, ¡gracias!
Repositorio de código front-end: https://github.com/liyupi/sql-father-frontend-public
Repositorio de código backend: https://github.com/liyupi/sql-father-backend-public
️ Te di una explicación detallada de las ideas creativas + selección de tecnología + diseño del sistema + interpretación del código fuente + método de redacción del currículum de este proyecto en mi propio planeta del conocimiento de programación si quieres escribir este proyecto en tu currículum o estudiarlo en profundidad. , eres bienvenido Únete a My Planet para verlo.
El origen del proyecto fue que Yupi quería resolver el problema de escribir SQL repetidamente para crear tablas y datos al desarrollar proyectos. Por cierto, era de código abierto para que todos pudieran aprender y mejorar juntos.
Imagínese: cuando trabajo en un nuevo proyecto, no necesito escribir SQL para crear una tabla o crear datos, pero puedo obtener directamente una tabla con datos falsos.
Algunos estudiantes preguntaron por qué el proyecto no se llamaba SQL Mother. Entonces déjame preguntarte por qué la herencia se llama clase padre.
Ya sea que sea un estudiante de front-end, back-end, pruebas, desarrollo de datos, ciencia de datos o investigación, ¡creo que esta herramienta le será útil!
Los principales escenarios de aplicación son los siguientes:
1) Al completar formularios visuales, genere rápidamente declaraciones de creación de tablas, datos y códigos simulados, ¡y diga adiós al trabajo repetitivo!
2) Admite múltiples métodos de importación rápida. Por ejemplo, si ya tiene una tabla de datos lista para usar, puede importar directamente declaraciones de creación de tablas y generar datos simulados con un solo clic. También puede importar directamente tablas de Excel para completar rápidamente la creación de tablas; incluso admite la importación inteligente; ¡La tabla y los datos se generarán automáticamente ingresando algunas palabras!
3) Admite múltiples reglas para generar datos de simulación. Por ejemplo, valores fijos, valores aleatorios, expresiones regulares, valores incrementales e incluso admiten la selección de vocabulario para generar valores aleatorios dentro de un rango específico.
4) Apoyar el vocabulario, el diseño de tablas y el intercambio de información de campo. Puede aprender o consultar los diseños de tablas de biblioteca de otros estudiantes, o utilizar directamente tablas y campos de biblioteca ya preparados para generar o realizar desarrollo secundario con un solo clic.
5) Puede utilizar directamente el léxico ya preparado para crear un diccionario, o utilizarlo como un conjunto de datos para la investigación y respaldar la mejora secundaria del léxico.
El proyecto en sí tiene funciones completas (divididas en frontend de usuario y backend de administración), cumple con los estándares en línea, tiene un diseño de arquitectura claro y una estructura de directorios estandarizada.
El front-end utiliza formularios y editores de código anidados, dinámicos y plegables complejos; el back-end utiliza una variedad de patrones de diseño convencionales, autenticación de aspectos AOP, etc., lo cual es muy digno de que los amigos lo aprendan.
Además, ¿dame algún consejo de los grandes?
Principales tecnologías:
Bibliotecas dependientes:
Principales tecnologías:
Bibliotecas dependientes:
Instalar dependencias:
npm run install
correr:
npm run dev
Embalar:
npm run build
Comparte principalmente la arquitectura general y el diseño central del sistema, y no introduce demasiado sobre la parte de desarrollo web tradicional.
Concepto de diseño central: unifique cada método de entrada en un esquema claro y genere varios tipos de contenido según el esquema.
El diagrama de diseño de la arquitectura es el siguiente, es decir, cualquier entrada => esquema unificado => cualquier salida:
El sistema está dividido en los siguientes módulos principales, y cada módulo tiene responsabilidades claras:
El código del módulo principal se encuentra en el directorio principal del backend.
Clase principal: TableSchemaBuilder, cuya función es hacer converger diferentes parámetros en objetos TableSchema.
Contiene los siguientes métodos:
Entre ellos, buildFromSql (generador de esquemas basado en SQL) utiliza el analizador de sintaxis que viene con el grupo de conexiones de la base de datos Druid, que es muy poderoso. (En general, no debe escribir cosas como analizadores usted mismo. Puede realizar varios proyectos en este tiempo y escribirlos no es tan fácil de usar como otros).
Se utiliza para guardar información de tablas y campos, la estructura es la siguiente:
{
"dbName" : "库名" ,
"tableName" : " test_table " ,
"tableComment" : "表注释" ,
"mockNum" : 20 ,
"fieldList" : [{
"fieldName" : " username " ,
"comment" : "用户名" ,
"fieldType" : " varchar(256) " ,
"mockType" : "随机" ,
"mockParams" : "人名" ,
"notNull" : true ,
"primaryKey" : false ,
"autoIncrement" : false
}]
}
Defina cada tipo de compilación como un Constructor (directorio principal/constructor):
Entre ellos, para el generador de código SQL (SqlBuilder), los dialectos se utilizan para admitir diferentes tipos de bases de datos (modo de estrategia) y el modo singleton + modo de fábrica se utiliza para crear instancias de dialecto.
Para Java, los generadores de código de front-end (JavaCodeBuilder, FrontendCodeBuilder) se generan utilizando el motor de plantillas FreeMarker. El código de la plantilla es el siguiente:
Cada regla de generación se define como un Generador y DataGeneratorFactory (modo de fábrica) se utiliza para crear y administrar múltiples instancias de Generador de manera uniforme.
Utilice la biblioteca dataFaker para implementar la generación de datos aleatorios (RandomDataGenerator).
Utilice la biblioteca Generex para implementar la generación de datos de expresiones regulares (RuleDataGenerator).
Utilice el patrón de fachada para agregar varios tipos de generación y proporcionar métodos unificados de verificación y llamada de generación:
Incluyendo tesauros, información de tablas e intercambio de información de campos, en realidad es un servicio web para agregar, eliminar, modificar y consultar estas entidades, por lo que no entraré en detalles.
Si desea obtener una explicación completa y detallada de este proyecto, bienvenido a unirse al Planeta del conocimiento de programación de Yupi. Este es el círculo de aprendizaje de programación de Yupi. En el círculo, guiaré a todos a analizar e interpretar este proyecto de 0 a 1 y responderé las preguntas de todos uno a uno. No solo podrás hacer uno de forma independiente, sino que también te enseñará cómo incluir este proyecto en tu currículum. Experiencia en proyectos + 1.
Todos los amigos pueden contribuir y lea atentamente lo siguiente primero:
Fuente de vocabulario parcial: https://github.com/fighting41love/funNLP
Fuente de información de la tabla de muestra: https://open.yesapi.cn/list1.html