والد مشروع SQL: قم بإنشاء بيانات SQL والمحاكاة بسرعة، مما يحسن بشكل كبير كفاءة التطوير والاختبار!
مشروع مكدس كامل للواجهة الأمامية والخلفية بواسطة المبرمج Yupi
ليس من السهل صنعه، يرجى عدم استخدامه للاستخدام التجاري أو إعادة البيع! ! !
التجربة عبر الإنترنت: http://sqlfather.yupi.icu
عرض فيديو (برنامج تعليمي للاستخدام): https://www.bilibili.com/video/BV1eP411N7B7/
إذا كنت تعتقد أن هذا المشروع مفيد، فإن منح مالك UP متابعة وثلاثة روابط متتالية هو أعظم دعم، شكرًا لك!
مستودع أكواد الواجهة الأمامية: https://github.com/liyupi/sql-father-frontend-public
مستودع كود الواجهة الخلفية: https://github.com/liyupi/sql-father-backend-public
⁉️ قدمت لك شرحًا تفصيليًا للأفكار الإبداعية + اختيار التكنولوجيا + تصميم النظام + تفسير الكود المصدري + طريقة كتابة السيرة الذاتية لهذا المشروع في كوكب المعرفة البرمجية الخاص بي إذا كنت تريد كتابة هذا المشروع في سيرتك الذاتية أو دراسته بشكل متعمق ، فنحن نرحب بك للانضمام إلى My Planet للمشاهدة.
كان أصل المشروع هو أن Yupi أراد حل مشكلة كتابة SQL بشكل متكرر لإنشاء الجداول وإنشاء البيانات عند تطوير المشاريع. بالمناسبة، كان مفتوح المصدر للجميع للتعلم والتحسين معًا ~
فقط تخيل: عندما أعمل في مشروع جديد، لا أحتاج إلى كتابة SQL لإنشاء جدول أو إنشاء بيانات، ولكن يمكنني الحصول مباشرة على جدول يحتوي على بيانات مزيفة. ما مدى روعة ذلك؟
تساءل بعض الطلاب لماذا لم يسمى المشروع SQL Mother؟ ثم اسمحوا لي أن أسألك لماذا يسمى الميراث الطبقة الأصل؟
سواء كنت من مستخدمي الواجهة الأمامية، أو الخلفية، أو الاختبار، أو تطوير البيانات، أو علوم البيانات، أو طالب بحث، أعتقد أن هذه الأداة ستكون مفيدة لك!
سيناريوهات التطبيق الرئيسية هي كما يلي:
1) من خلال ملء النماذج المرئية، يمكنك إنشاء بيانات إنشاء الجدول بسرعة ومحاكاة البيانات والأكواد، وقل وداعًا للعمل المتكرر!
2) يدعم طرق الاستيراد السريع المتعددة. على سبيل المثال، إذا كان لديك بالفعل جدول بيانات جاهز، فيمكنك استيراد بيانات إنشاء الجدول مباشرةً وإنشاء بيانات محاكاة بنقرة واحدة؛ ويمكنك أيضًا استيراد جداول Excel مباشرةً لإكمال إنشاء الجدول بسرعة؛ سيتم إنشاء الجدول والبيانات تلقائيًا عن طريق إدخال بضع كلمات!
3) يدعم قواعد متعددة لتوليد بيانات المحاكاة. على سبيل المثال، القيم الثابتة، والقيم العشوائية، والتعبيرات العادية، والقيم التزايدية، وحتى دعم اختيار المفردات لتوليد قيم عشوائية ضمن نطاق معين!
4) دعم المفردات وتصميم الجدول ومشاركة المعلومات الميدانية. يمكنك التعلم أو الرجوع إلى تصميمات جداول المكتبة الخاصة بالطلاب الآخرين، أو استخدام جداول وحقول المكتبة الجاهزة مباشرة لإنشاء أو إجراء تطوير ثانوي بنقرة واحدة.
5) يمكنك استخدام المعجم الجاهز مباشرة لبناء قاموس، أو استخدامه كمجموعة بيانات للبحث، ودعم التحسين الثانوي للمعجم!
يحتوي المشروع نفسه على وظائف كاملة (مقسمة إلى واجهة المستخدم الأمامية والواجهة الخلفية للإدارة)، ويلبي المعايير عبر الإنترنت، وله تصميم معماري واضح وبنية دليل موحدة.
تستخدم الواجهة الأمامية نماذج ومحررات أكواد معقدة متداخلة وديناميكية وقابلة للطي، وتستخدم الواجهة الخلفية مجموعة متنوعة من أنماط التصميم السائدة، ومصادقة جانب AOP، وما إلى ذلك، وهو أمر يستحق التعلم من الأصدقاء.
وأيضا، من فضلك أعطني بعض النصائح من الرجال الكبار؟
التقنيات الرئيسية:
المكتبات التابعة:
التقنيات الرئيسية:
المكتبات التابعة:
تثبيت التبعيات:
npm run install
يجري:
npm run dev
علية:
npm run build
إنه يشترك بشكل أساسي في البنية العامة والتصميم الأساسي للنظام، ولا يقدم الكثير عن الجزء التقليدي لتطوير الويب.
مفهوم التصميم الأساسي: توحيد كل طريقة إدخال في مخطط واضح، وإنشاء أنواع مختلفة من المحتوى بناءً على المخطط.
مخطط التصميم المعماري كما يلي، أي أي إدخال => مخطط موحد => أي إخراج:
وينقسم النظام إلى الوحدات الأساسية التالية، ولكل وحدة مسؤوليات واضحة:
رمز الوحدة الأساسية موجود في الدليل الأساسي للواجهة الخلفية.
الفئة الأساسية: 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. رمز القالب هو كما يلي:
يتم تعريف كل قاعدة إنشاء على أنها مولد، ويتم استخدام DataGeneratorFactory (وضع المصنع) لإنشاء مثيلات Generator المتعددة وإدارتها بشكل موحد.
استخدم مكتبة dataFaker لتنفيذ إنشاء البيانات العشوائية (RandomDataGenerator).
استخدم مكتبة Generex لتنفيذ إنشاء بيانات التعبير العادي (RuleDataGenerator).
استخدم نمط الواجهة لتجميع أنواع الإنشاء المختلفة وتوفير طرق موحدة للاتصال والتحقق من الإنشاء:
بما في ذلك المعجم ومعلومات الجدول ومشاركة المعلومات الميدانية، فهي في الواقع خدمة ويب لإضافة هذه الكيانات وحذفها وتعديلها والاستعلام عنها، لذلك لن أخوض في التفاصيل.
إذا كنت ترغب في الحصول على شرح كامل ومفصل لهذا المشروع، فمرحبًا بك للانضمام إلى كوكب المعرفة البرمجية في Yupi. هذه هي دائرة تعلم البرمجة في Yupi، وسأقود الجميع لتحليل وتفسير هذا المشروع من 0 إلى 1، والإجابة على أسئلة الجميع بشكل فردي. لن تكون قادرًا على القيام بذلك بشكل مستقل فحسب، بل ستعلمك أيضًا كيفية وضع هذا المشروع في سيرتك الذاتية +1.
نرحب بجميع الأصدقاء للمساهمة، ويرجى قراءة ما يلي بعناية أولاً:
مصدر المفردات الجزئية: https://github.com/fighting41love/funNLP
نموذج مصدر معلومات الجدول: https://open.yesapi.cn/list1.html