SQL プロジェクトの父: SQL データとシミュレーション データを迅速に生成し、開発とテストの効率を大幅に向上させます。
フロントエンドとバックエンドのフルスタック プロジェクト プログラマー Yupi 氏による
簡単に作るものではありませんので、商用利用や転売はご遠慮ください。 ! !
オンライン体験: http://sqlfather.yupi.icu
ビデオデモ(使い方チュートリアル):https://www.bilibili.com/video/BV1eP411N7B7/
このプロジェクトが役に立ったと思っていただけましたら、UP主のフォローと3連リンクが最大の応援です、よろしくお願いします!
フロントエンドコードリポジトリ: https://github.com/liyupi/sql-father-frontend-public
バックエンドコードリポジトリ: https://github.com/liyupi/sql-father-backend-public
️ このプロジェクトのクリエイティブなアイデア + テクノロジーの選択 + システム設計 + ソースコードの解釈 + 履歴書の書き方を私自身のプログラミング知識惑星で詳しく説明しました。 このプロジェクトを履歴書に書きたい、または深く勉強したい場合。 、ぜひ My Planet に参加してご視聴ください。
プロジェクトの発端は、ゆぴがプロジェクト開発時に何度もSQLを書いてテーブルを作成したり、データを作成したりする手間を解決したいと思ったことでした。ちなみに、オープンソース化されており、みんなで学び、改善していきます。
想像してみてください。新しいプロジェクトに取り組むときに、テーブルを作成したりデータを作成したりするために SQL を書く必要がなく、偽のデータを含むテーブルを直接取得できるとしたら、どれほど素晴らしいでしょうか。
一部の学生は、なぜこのプロジェクトが SQL Mother と呼ばれなかったのかと尋ねました。では、なぜ継承を親クラスと呼ぶのか聞いてみましょう。
フロントエンド、バックエンド、テスト、データ開発、データ サイエンス、研究生のいずれの分野でも、このツールは役に立つと思います。
主なアプリケーション シナリオは次のとおりです。
1) 視覚的なフォームに入力することで、テーブル作成ステートメント、シミュレートされたデータ、コードをすばやく生成し、繰り返しの作業に別れを告げます。
2) 複数のクイックインポート方法をサポートします。たとえば、既製のデータ テーブルがある場合は、テーブル作成ステートメントを直接インポートして、ワンクリックでシミュレートされたデータを生成できます。また、Excel テーブルを直接インポートして、テーブル作成を迅速に完了することもできます。いくつかの単語を入力するだけでテーブルとデータが自動的に生成されます。
3) シミュレーション データを生成するための複数のルールをサポートします。たとえば、固定値、ランダム値、正規表現、増分値、さらには特定の範囲内でランダムな値を生成するための語彙の選択もサポートしています。
4) 語彙、表の設計、フィールド情報の共有をサポートします。他の学生のライブラリ テーブルのデザインを学習または参照したり、既製のライブラリ テーブルとフィールドを直接使用して、ワンクリックで二次開発を生成または実行したりできます。
5) 既成の辞書をそのまま利用して辞書を構築したり、研究用のデータセットとして利用したり、辞書の二次改良をサポートします!
プロジェクト自体は完全な機能 (ユーザー フロントエンドと管理バックエンドに分割) を備え、オンライン標準を満たし、明確なアーキテクチャ設計と標準化されたディレクトリ構造を備えています。
フロントエンドでは、複雑なネストされた動的で折りたたみ可能なフォームとコード エディターが使用され、バックエンドでは、さまざまな主流のデザイン パターン、AOP アスペクト認証などが使用されており、友人が学ぶ価値があります。
また、偉い人からアドバイスをいただけますか?
主な技術:
依存ライブラリ:
主な技術:
依存ライブラリ:
依存関係をインストールします。
npm run install
走る:
npm run dev
パック:
npm run build
主にシステム全体のアーキテクチャとコア設計を共有しており、従来の Web 開発部分についてはあまり紹介しません。
主要な設計コンセプト: 各入力メソッドを明確なスキーマに統合し、スキーマに基づいてさまざまな種類のコンテンツを生成します。
アーキテクチャ設計図は次のとおりです。つまり、任意の入力 => 統合スキーマ => 任意の出力です。
システムは次のコア モジュールに分割されており、各モジュールには明確な責任があります。
コア モジュールのコードはバックエンド コア ディレクトリにあります。
コア クラス: TableSchemaBuilder。その機能は、さまざまなパラメーターを TableSchema オブジェクトに統合することです。
次のメソッドが含まれます。
このうち、buildFromSql (SQL に基づいてスキーマを生成する) は、Druid データベース接続プールに付属する構文パーサーを使用します。これは非常に強力です。 (一般に、パーサーのようなものは自分で作成すべきではありません。今回はいくつかのプロジェクトを実行できますが、それらの作成は他のプロジェクトほど使用するのは簡単ではありません)
テーブルとフィールドの情報を保存するために使用され、構造は次のとおりです。
{
"dbName" : "库名" ,
"tableName" : " test_table " ,
"tableComment" : "表注释" ,
"mockNum" : 20 ,
"fieldList" : [{
"fieldName" : " username " ,
"comment" : "用户名" ,
"fieldType" : " varchar(256) " ,
"mockType" : "随机" ,
"mockParams" : "人名" ,
"notNull" : true ,
"primaryKey" : false ,
"autoIncrement" : false
}]
}
各ビルド タイプをビルダー (コア/ビルダー ディレクトリ) として定義します。
このうち、SQL コード ジェネレーター (SqlBuilder) では、さまざまなデータベース タイプ (ストラテジ モード) をサポートするために方言が使用され、方言インスタンスの作成にはシングルトン モード + ファクトリ モードが使用されます。
Java の場合、フロントエンド コード ジェネレーター (JavaCodeBuilder、FrontendCodeBuilder) は FreeMarker テンプレート エンジンを使用して生成されます。 テンプレートのコードは次のとおりです。
各生成ルールは Generator として定義され、DataGeneratorFactory (ファクトリ モード) を使用して複数の Generator インスタンスを均一に作成および管理します。
dataFaker ライブラリを使用して、ランダム データ生成 (RandomDataGenerator) を実装します。
Generex ライブラリを使用して正規表現データ生成 (RuleDataGenerator) を実装します。
ファサード パターンを使用して、さまざまな生成タイプを集約し、統合された生成呼び出しおよび検証メソッドを提供します。
シソーラス、テーブル情報、フィールド情報の共有など、実際にはこれらのエンティティを追加、削除、変更、クエリするための Web サービスであるため、詳細については説明しません。
このプロジェクトの完全かつ詳細な説明を知りたい場合は、Yupi のプログラミング ナレッジ プラネットにぜひご参加ください。ゆぴのプログラミング学習サークルです。サークルでは私がこのプロジェクトを0から1まで分析・解釈し、皆さんの質問にマンツーマンで答えていきます。独立してプロジェクトを実行できるようになるだけでなく、このプロジェクトを履歴書にプロジェクト経験 + 1 として記載する方法も学びます。
すべての友人が貢献することを歓迎します。最初に以下をよく読んでください。
部分的な語彙ソース: https://github.com/fighting41love/funNLP
サンプルテーブル情報ソース: https://open.yesapi.cn/list1.html