Le projet père du SQL : générez rapidement des données SQL et de simulation, améliorant considérablement l'efficacité du développement et des tests !
Projet full stack front-end et back-end Par le programmeur Yupi
Ce n’est pas facile à réaliser, veuillez ne pas l’utiliser à des fins commerciales ou pour la revente ! ! !
Expérience en ligne : http://sqlfather.yupi.icu
Démonstration vidéo (tutoriel d'utilisation) : https://www.bilibili.com/video/BV1eP411N7B7/
Si vous pensez que ce projet est utile, donner un suivi au propriétaire de l'UP et trois liens consécutifs est le plus grand soutien, merci !
Dépôt de code frontal : https://github.com/liyupi/sql-father-frontend-public
Dépôt de code backend : https://github.com/liyupi/sql-father-backend-public
️ Je vous ai donné une explication détaillée des idées créatives + sélection de la technologie + conception du système + interprétation du code source + méthode de rédaction de CV de ce projet dans ma propre planète de connaissances en programmation Si vous souhaitez écrire ce projet sur votre CV ou l'étudier en profondeur. , vous êtes invités à rejoindre My Planet pour regarder.
L'origine du projet était que Yupi voulait résoudre le problème de l'écriture répétée de SQL pour créer des tables et créer des données lors du développement de projets. D'ailleurs, il était open source pour que tout le monde puisse apprendre et s'améliorer ensemble ~.
Imaginez : lorsque je travaille sur un nouveau projet, je n'ai pas besoin d'écrire du SQL pour créer une table ou créer des données, mais je peux directement obtenir une table avec de fausses données.
Certains étudiants ont demandé pourquoi le projet ne s'appelait pas SQL Mother ? Alors laissez-moi vous demander pourquoi l'héritage est appelé la classe parent ?
Que vous soyez un étudiant front-end, back-end, test, développement de données, science des données ou chercheur, je pense que cet outil vous sera utile !
Les principaux scénarios d'application sont les suivants :
1) En remplissant des formulaires visuels, générez rapidement des instructions de création de tableaux, des données et des codes simulés, et dites adieu au travail répétitif !
2) Prend en charge plusieurs méthodes d'importation rapide. Par exemple, si vous disposez déjà d'un tableau de données prêt à l'emploi, vous pouvez importer directement des instructions de création de tableau et générer des données simulées en un seul clic ; vous pouvez également importer directement des tableaux Excel pour terminer rapidement la création de tableau ; il prend même en charge l'importation intelligente ; le tableau et les données seront automatiquement générés en entrant quelques mots !
3) Prend en charge plusieurs règles pour générer des données de simulation. Par exemple, des valeurs fixes, des valeurs aléatoires, des expressions régulières, des valeurs incrémentielles, et prennent même en charge la sélection de vocabulaire pour générer des valeurs aléatoires dans une plage spécifique !
4) Prise en charge du vocabulaire, de la conception des tableaux et du partage d'informations sur le terrain. Vous pouvez apprendre ou vous référer aux conceptions de tables de bibliothèque d'autres étudiants, ou utiliser directement des tables et des champs de bibliothèque prêts à l'emploi pour générer ou effectuer un développement secondaire en un seul clic. Vive la collaboration !
5) Vous pouvez utiliser directement le lexique prêt à l'emploi pour créer un dictionnaire, ou l'utiliser comme ensemble de données pour la recherche, et soutenir l'amélioration secondaire du lexique !
Le projet lui-même a des fonctions complètes (divisées en front-end utilisateur et back-end de gestion), répond aux normes en ligne, a une conception d'architecture claire et une structure de répertoires standardisée.
Le front-end utilise des formulaires et des éditeurs de code complexes imbriqués, dynamiques et pliables ; le back-end utilise une variété de modèles de conception courants, d'authentification d'aspect AOP, etc., ce qui mérite d'être appris par des amis.
Aussi, s'il vous plaît, donnez-moi quelques conseils des grands ?
Principales technologies :
Bibliothèques dépendantes :
Principales technologies :
Bibliothèques dépendantes :
Installer les dépendances :
npm run install
courir:
npm run dev
Paquet:
npm run build
Il partage principalement l'architecture globale et la conception de base du système, et n'introduit pas grand-chose sur la partie développement Web traditionnelle.
Concept de conception de base : unifiez chaque méthode de saisie dans un schéma clair et générez différents types de contenu basés sur le schéma.
Le schéma de conception de l'architecture est le suivant, c'est-à-dire n'importe quelle entrée => Schéma unifié => n'importe quelle sortie :
Le système est divisé en modules de base suivants, chaque module ayant des responsabilités claires :
Le code du module principal se trouve dans le répertoire principal du backend.
Classe principale : TableSchemaBuilder, dont la fonction est de faire converger différents paramètres vers des objets TableSchema.
Contient les méthodes suivantes :
Parmi eux, buildFromSql (génération de schéma basé sur SQL) utilise l'analyseur de syntaxe fourni avec le pool de connexions à la base de données Druid, qui est très puissant. (En général, vous ne devriez pas écrire vous-même des choses comme des analyseurs. Vous pouvez réaliser plusieurs projets en même temps, et les écrire n'est pas aussi facile à utiliser que d'autres)
Utilisée pour enregistrer les informations des tables et des champs, la structure est la suivante :
{
"dbName" : "库名" ,
"tableName" : " test_table " ,
"tableComment" : "表注释" ,
"mockNum" : 20 ,
"fieldList" : [{
"fieldName" : " username " ,
"comment" : "用户名" ,
"fieldType" : " varchar(256) " ,
"mockType" : "随机" ,
"mockParams" : "人名" ,
"notNull" : true ,
"primaryKey" : false ,
"autoIncrement" : false
}]
}
Définissez chaque type de build en tant que Builder (répertoire core/builder) :
Parmi eux, pour le générateur de code SQL (SqlBuilder), les dialectes sont utilisés pour prendre en charge différents types de bases de données (mode stratégie), et le mode singleton + mode usine est utilisé pour créer des instances de dialectes.
Pour Java, les générateurs de code front-end (JavaCodeBuilder, FrontendCodeBuilder) sont générés à l'aide du moteur de modèles FreeMarker. Le code du modèle est le suivant :
Chaque règle de génération est définie comme un générateur et DataGeneratorFactory (mode usine) est utilisé pour créer et gérer plusieurs instances de générateur de manière uniforme.
Utilisez la bibliothèque dataFaker pour implémenter la génération de données aléatoires (RandomDataGenerator).
Utilisez la bibliothèque Generex pour implémenter la génération de données d'expressions régulières (RuleDataGenerator).
Utilisez le modèle de façade pour regrouper différents types de génération et fournir des méthodes d'appel et de vérification de génération unifiées :
Y compris le thésaurus, les informations de table et le partage d'informations sur les champs, il s'agit en fait d'un service Web permettant d'ajouter, de supprimer, de modifier et d'interroger ces entités, je n'entrerai donc pas dans les détails.
Si vous souhaitez obtenir une explication complète et détaillée de ce projet, n'hésitez pas à rejoindre la Programming Knowledge Planet de Yupi. Il s'agit du cercle d'apprentissage de la programmation de Yupi. Dans le cercle, j'amènerai tout le monde à analyser et interpréter ce projet de 0 à 1, et à répondre individuellement aux questions de chacun. Non seulement vous pourrez en réaliser un de manière autonome, mais cela vous apprendra également comment mettre ce projet sur votre CV Expérience projet + 1.
Tous les amis sont invités à contribuer, et veuillez d’abord lire attentivement ce qui suit :
Source de vocabulaire partiel : https://github.com/fighting41love/funNLP
Source d'informations sur un exemple de tableau : https://open.yesapi.cn/list1.html