Bapak Proyek SQL: Menghasilkan data SQL dan simulasi dengan cepat, sangat meningkatkan efisiensi pengembangan dan pengujian!
Proyek tumpukan penuh front-end dan back-end Oleh programmer Yupi
Pembuatannya tidak mudah, mohon jangan digunakan untuk tujuan komersial atau dijual kembali! ! !
Pengalaman online: http://sqlfather.yupi.icu
Demonstrasi video (tutorial penggunaan): https://www.bilibili.com/video/BV1eP411N7B7/
Jika menurut Anda proyek ini bermanfaat, memberikan pengikut UP dan tiga tautan berturut-turut kepada pemilik UP adalah dukungan terbesar, terima kasih!
Repositori kode front-end: https://github.com/liyupi/sql-father-frontend-public
Repositori kode backend: https://github.com/liyupi/sql-father-backend-public
️ Saya memberi Anda penjelasan rinci tentang ide kreatif + pemilihan teknologi + desain sistem + interpretasi kode sumber + metode penulisan resume proyek ini di planet pengetahuan pemrograman saya sendiri , sama-sama Bergabunglah dengan My Planet untuk menonton.
Asal usul proyek ini adalah Yupi ingin memecahkan masalah penulisan SQL berulang kali untuk membuat tabel dan membuat data saat mengembangkan proyek. Ngomong-ngomong, ini adalah sumber terbuka untuk dipelajari dan ditingkatkan bersama oleh semua orang~
Bayangkan saja: ketika saya mengerjakan proyek baru, saya tidak perlu menulis SQL untuk membuat tabel atau membuat data, tetapi bisa langsung mendapatkan tabel dengan data palsu.
Beberapa siswa bertanya mengapa proyek ini tidak disebut SQL Mother? Lalu izinkan saya bertanya mengapa warisan disebut kelas induk?
Baik Anda seorang front-end, back-end, pengujian, pengembangan data, ilmu data, atau mahasiswa riset, saya yakin alat ini akan membantu Anda!
Skenario aplikasi utama adalah sebagai berikut:
1) Dengan mengisi formulir visual, segera buat pernyataan pembuatan tabel, data dan kode simulasi, dan ucapkan selamat tinggal pada pekerjaan berulang!
2) Mendukung beberapa metode impor cepat. Misalnya, jika Anda sudah memiliki tabel data yang sudah jadi, Anda bisa langsung mengimpor pernyataan pembuatan tabel dan menghasilkan data simulasi dengan satu klik; Anda juga bisa langsung mengimpor tabel Excel untuk menyelesaikan pembuatan tabel dengan cepat bahkan mendukung impor cerdas, dan tabel dan data akan dihasilkan secara otomatis dengan memasukkan beberapa kata!
3) Mendukung banyak aturan untuk menghasilkan data simulasi. Misalnya, nilai tetap, nilai acak, ekspresi reguler, nilai tambahan, dan bahkan mendukung pemilihan kosakata untuk menghasilkan nilai acak dalam rentang tertentu!
4) Mendukung kosakata, desain tabel, dan berbagi informasi lapangan. Anda dapat mempelajari atau merujuk ke desain tabel perpustakaan siswa lain, atau langsung menggunakan tabel dan bidang perpustakaan yang sudah jadi untuk menghasilkan atau melakukan pengembangan sekunder dengan satu klik.
5) Anda dapat langsung menggunakan leksikon yang sudah jadi untuk membuat kamus, atau menggunakannya sebagai kumpulan data untuk penelitian, dan mendukung peningkatan sekunder leksikon!
Proyek itu sendiri memiliki fungsi yang lengkap (dibagi menjadi frontend pengguna dan backend manajemen), memenuhi standar online, memiliki desain arsitektur yang jelas dan struktur direktori standar.
Front-end menggunakan formulir dan editor kode bersarang & dinamis & dapat dilipat yang kompleks; back-end menggunakan berbagai pola desain utama, otentikasi aspek AOP, dll., yang sangat layak untuk dipelajari oleh teman-teman.
Juga, tolong beri saya saran dari orang-orang besar?
Teknologi utama:
Perpustakaan yang bergantung:
Teknologi utama:
Perpustakaan yang bergantung:
Instal dependensi:
npm run install
berlari:
npm run dev
Mengemas:
npm run build
Ini terutama berbagi keseluruhan arsitektur dan desain inti sistem, dan tidak memperkenalkan terlalu banyak tentang bagian pengembangan web tradisional.
Konsep desain inti: Menyatukan setiap metode masukan ke dalam Skema yang jelas, dan menghasilkan berbagai jenis konten berdasarkan Skema.
Diagram desain arsitekturnya adalah sebagai berikut, yaitu masukan apa pun => Skema terpadu => keluaran apa pun:
Sistem ini dibagi menjadi beberapa modul inti berikut, dengan masing-masing modul memiliki tanggung jawab yang jelas:
Kode modul inti ada di direktori inti backend.
Kelas inti: TableSchemaBuilder, yang fungsinya untuk menggabungkan berbagai parameter ke dalam objek TableSchema.
Berisi metode berikut:
Diantaranya, buildFromSql (menghasilkan Skema berdasarkan SQL) menggunakan parser sintaksis yang disertakan dengan kumpulan koneksi database Druid, yang sangat kuat. (Umumnya, Anda tidak boleh menulis sendiri hal-hal seperti parser. Anda dapat mengerjakan beberapa proyek sekaligus, dan menulisnya tidak semudah yang lain)
Digunakan untuk menyimpan informasi tabel dan field, strukturnya sebagai berikut:
{
"dbName" : "库名" ,
"tableName" : " test_table " ,
"tableComment" : "表注释" ,
"mockNum" : 20 ,
"fieldList" : [{
"fieldName" : " username " ,
"comment" : "用户名" ,
"fieldType" : " varchar(256) " ,
"mockType" : "随机" ,
"mockParams" : "人名" ,
"notNull" : true ,
"primaryKey" : false ,
"autoIncrement" : false
}]
}
Tentukan setiap tipe build sebagai Builder (direktori inti/builder):
Diantaranya, untuk pembuat kode SQL (SqlBuilder), dialek digunakan untuk mendukung tipe database yang berbeda (mode strategi), dan mode tunggal + mode pabrik digunakan untuk membuat instance dialek.
Untuk Java, generator kode front-end (JavaCodeBuilder, FrontendCodeBuilder) dibuat menggunakan mesin template FreeMarker. Kode templatnya adalah sebagai berikut:
Setiap aturan pembangkitan didefinisikan sebagai Generator, dan DataGeneratorFactory (mode pabrik) digunakan untuk membuat dan mengelola beberapa instance Generator secara seragam.
Gunakan perpustakaan dataFaker untuk mengimplementasikan pembuatan data acak (RandomDataGenerator).
Gunakan perpustakaan Generex untuk mengimplementasikan pembuatan data ekspresi reguler (RuleDataGenerator).
Gunakan pola fasad untuk menggabungkan berbagai jenis pembangkitan dan menyediakan metode pemanggilan dan verifikasi pembangkitan terpadu:
Termasuk tesaurus, informasi tabel, dan berbagi informasi lapangan, ini sebenarnya adalah layanan web untuk menambah, menghapus, mengubah, dan menanyakan entitas ini, jadi saya tidak akan menjelaskan secara detail.
Jika Anda ingin mendapatkan penjelasan lengkap dan detail tentang proyek ini, selamat bergabung di Planet Pengetahuan Pemrograman Yupi. Ini adalah lingkaran pembelajaran pemrograman Yupi. Di dalam lingkaran, saya akan mengarahkan semua orang untuk menganalisis dan menafsirkan proyek ini dari 0 hingga 1, dan menjawab pertanyaan semua orang satu lawan satu. Anda tidak hanya dapat melakukannya secara mandiri, tetapi ini juga akan mengajari Anda cara memasukkan proyek ini ke dalam resume Anda.
Teman-teman semua dipersilakan untuk berkontribusi, dan harap membaca terlebih dahulu dengan seksama berikut ini:
Sumber kosakata sebagian: https://github.com/fighting41love/funNLP
Contoh sumber informasi tabel: https://open.yesapi.cn/list1.html