Der Vater des SQL-Projekts: Generieren Sie schnell SQL- und Simulationsdaten und verbessern Sie so die Entwicklungs- und Testeffizienz erheblich!
Front-End- und Back-End-Full-Stack-Projekt vom Programmierer Yupi
Es ist nicht einfach herzustellen, bitte verwenden Sie es nicht für kommerzielle Zwecke oder zum Weiterverkauf! ! !
Online-Erfahrung: http://sqlfather.yupi.icu
Videodemonstration (Nutzungsanleitung): https://www.bilibili.com/video/BV1eP411N7B7/
Wenn Sie der Meinung sind, dass dieses Projekt hilfreich ist, ist es die größte Unterstützung, dem UP-Besitzer einen Follow und drei aufeinanderfolgende Links zu geben. Vielen Dank!
Front-End-Code-Repository: https://github.com/liyupi/sql-father-frontend-public
Backend-Code-Repository: https://github.com/liyupi/sql-father-backend-public
️ Ich habe Ihnen in meinem eigenen Programmierwissensplaneten eine detaillierte Erklärung der kreativen Ideen + Technologieauswahl + Systemdesign + Quellcode-Interpretation + Lebenslauf-Schreibmethode gegeben. Wenn Sie dieses Projekt in Ihren Lebenslauf schreiben oder eingehend studieren möchten , Sie sind herzlich eingeladen, sich „Join My Planet“ anzusehen.
Der Ursprung des Projekts lag darin, dass Yupi das Problem lösen wollte, bei der Entwicklung von Projekten wiederholt SQL zum Erstellen von Tabellen und Daten zu schreiben. Übrigens war es Open Source, damit alle gemeinsam lernen und sich verbessern konnten
Stellen Sie sich vor: Wenn ich an einem neuen Projekt arbeite, muss ich kein SQL schreiben, um eine Tabelle oder Daten zu erstellen, sondern kann direkt eine Tabelle mit gefälschten Daten erhalten.
Einige Studenten fragten, warum das Projekt nicht SQL Mother hieß? Dann möchte ich Sie fragen, warum die Vererbung als übergeordnete Klasse bezeichnet wird.
Ganz gleich, ob Sie ein Front-End-, Back-End-, Test-, Datenentwicklungs-, Datenwissenschafts- oder Forschungsstudent sind, ich glaube, dass dieses Tool für Sie hilfreich sein wird!
Die Hauptanwendungsszenarien sind wie folgt:
1) Durch das Ausfüllen visueller Formulare können Sie schnell Tabellenerstellungsanweisungen, simulierte Daten und Codes generieren und sich von der sich wiederholenden Arbeit verabschieden!
2) Unterstützt mehrere Schnellimportmethoden. Wenn Sie beispielsweise bereits über eine vorgefertigte Datentabelle verfügen, können Sie Tabellenerstellungsanweisungen direkt importieren und simulierte Daten mit einem Klick generieren. Sie können auch Excel-Tabellen direkt importieren, um die Tabellenerstellung schnell abzuschließen Tabelle und Daten werden durch die Eingabe einiger weniger Wörter automatisch generiert!
3) Unterstützt mehrere Regeln zum Generieren von Simulationsdaten. Zum Beispiel feste Werte, Zufallswerte, reguläre Ausdrücke, inkrementelle Werte und sogar die Auswahl von Vokabeln, um Zufallswerte innerhalb eines bestimmten Bereichs zu generieren!
4) Unterstützen Sie den Wortschatz, die Tabellengestaltung und den Austausch von Feldinformationen. Sie können die Bibliothekstabellenentwürfe anderer Studenten lernen oder darauf zurückgreifen oder direkt vorgefertigte Bibliothekstabellen und -felder verwenden, um mit einem Klick eine Sekundärentwicklung zu generieren oder durchzuführen!
5) Sie können das fertige Lexikon direkt zum Erstellen eines Wörterbuchs verwenden oder es als Datensatz für die Forschung verwenden und so die sekundäre Verbesserung des Lexikons unterstützen!
Das Projekt selbst verfügt über vollständige Funktionen (aufgeteilt in Benutzer-Frontend und Management-Backend), entspricht den Online-Standards, verfügt über ein klares Architekturdesign und eine standardisierte Verzeichnisstruktur.
Das Front-End verwendet komplexe verschachtelte, dynamische und zusammenklappbare Formulare und Code-Editoren. Das Back-End verwendet eine Vielzahl gängiger Designmuster, AOP-Aspektauthentifizierung usw., was es sehr wert ist, von Freunden gelernt zu werden.
Bitte geben Sie mir auch ein paar Ratschläge von den Großen?
Haupttechnologien:
Abhängige Bibliotheken:
Haupttechnologien:
Abhängige Bibliotheken:
Abhängigkeiten installieren:
npm run install
laufen:
npm run dev
Pack:
npm run build
Es teilt hauptsächlich die Gesamtarchitektur und das Kerndesign des Systems und stellt nicht zu viel über den traditionellen Teil der Webentwicklung vor.
Kernkonzept des Designs: Vereinheitlichen Sie jede Eingabemethode in einem klaren Schema und generieren Sie verschiedene Arten von Inhalten basierend auf dem Schema.
Das Architekturdesigndiagramm sieht wie folgt aus: jede Eingabe => einheitliches Schema => jede Ausgabe:
Das System ist in die folgenden Kernmodule unterteilt, wobei jedes Modul klare Verantwortlichkeiten hat:
Der Code des Kernmoduls befindet sich im Backend-Kernverzeichnis.
Kernklasse: TableSchemaBuilder, deren Funktion darin besteht, verschiedene Parameter in TableSchema-Objekten zusammenzuführen.
Enthält die folgenden Methoden:
Unter anderem verwendet buildFromSql (das auf SQL basierende Schemas generiert) den Syntaxparser, der mit dem Druid-Datenbankverbindungspool geliefert wird und sehr leistungsstark ist. (Im Allgemeinen sollten Sie Dinge wie Parser nicht selbst schreiben. Sie können in dieser Zeit mehrere Projekte durchführen, und das Schreiben dieser Projekte ist nicht so einfach wie andere.)
Die zum Speichern von Tabellen- und Feldinformationen verwendete Struktur ist wie folgt:
{
"dbName" : "库名" ,
"tableName" : " test_table " ,
"tableComment" : "表注释" ,
"mockNum" : 20 ,
"fieldList" : [{
"fieldName" : " username " ,
"comment" : "用户名" ,
"fieldType" : " varchar(256) " ,
"mockType" : "随机" ,
"mockParams" : "人名" ,
"notNull" : true ,
"primaryKey" : false ,
"autoIncrement" : false
}]
}
Definieren Sie jeden Build-Typ als Builder (Core/Builder-Verzeichnis):
Unter anderem werden für den SQL-Codegenerator (SqlBuilder) Dialekte zur Unterstützung verschiedener Datenbanktypen (Strategiemodus) und der Singleton-Modus + Factory-Modus zum Erstellen von Dialektinstanzen verwendet.
Für Java werden Front-End-Codegeneratoren (JavaCodeBuilder, FrontendCodeBuilder) mithilfe der FreeMarker-Vorlagen-Engine generiert. Der Vorlagencode lautet wie folgt:
Jede Generierungsregel ist als Generator definiert und DataGeneratorFactory (Werksmodus) wird zum einheitlichen Erstellen und Verwalten mehrerer Generatorinstanzen verwendet.
Verwenden Sie die dataFaker-Bibliothek, um die Zufallsdatengenerierung (RandomDataGenerator) zu implementieren.
Verwenden Sie die Generex-Bibliothek, um die Generierung regulärer Ausdrucksdaten (RuleDataGenerator) zu implementieren.
Verwenden Sie das Fassadenmuster, um verschiedene Generierungstypen zu aggregieren und einheitliche Aufruf- und Überprüfungsmethoden für die Generierung bereitzustellen:
Einschließlich Thesaurus, Tabelleninformationen und Feldinformationsfreigabe handelt es sich tatsächlich um einen Webdienst zum Hinzufügen, Löschen, Ändern und Abfragen dieser Entitäten, daher werde ich nicht auf Details eingehen.
Wenn Sie eine vollständige und detaillierte Erklärung dieses Projekts erhalten möchten, sind Sie herzlich willkommen, sich Yupis Programming Knowledge Planet anzuschließen. Dies ist Yupis Programmier-Lernkreis. In diesem Kreis werde ich jeden dazu anleiten, dieses Projekt von 0 bis 1 zu analysieren und zu interpretieren und alle Fragen einzeln zu beantworten. Sie werden nicht nur in der Lage sein, ein Projekt selbstständig durchzuführen, sondern lernen auch, wie Sie dieses Projekt in Ihren Lebenslauf aufnehmen können. Projekterfahrung + 1.
Alle Freunde sind herzlich willkommen, einen Beitrag zu leisten. Bitte lesen Sie Folgendes zuerst sorgfältig durch:
Teilvokabularquelle: https://github.com/fighting41love/funNLP
Informationsquelle für Beispieltabellen: https://open.yesapi.cn/list1.html