Отец проекта SQL: быстро генерируйте данные SQL и моделирования, что значительно повышает эффективность разработки и тестирования!
Полный стек фронтенд- и бэкенд-проекта. Автор: Юпи.
Его непросто сделать, пожалуйста, не используйте его для коммерческого использования или перепродажи! ! !
Онлайн-опыт: 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 для просмотра.
Идея проекта заключалась в том, что Юпи хотел решить проблему многократного написания 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
}]
}
Определите каждый тип сборки как Builder (каталог core/builder):
Среди них для генератора кода SQL (SqlBuilder) диалекты используются для поддержки разных типов баз данных (режим стратегии), а режим Singleton + Factory Mode используется для создания экземпляров диалекта.
Для Java генераторы внешнего кода (JavaCodeBuilder, FrontendCodeBuilder) генерируются с использованием механизма шаблонов FreeMarker. Код шаблона следующий:
Каждое правило генерации определяется как генератор, а DataGeneratorFactory (заводской режим) используется для создания и единообразного создания нескольких экземпляров генератора и управления ими.
Используйте библиотеку dataFaker для реализации генерации случайных данных (RandomDataGenerator).
Используйте библиотеку Genex для реализации генерации данных регулярных выражений (RuleDataGenerator).
Используйте шаблон фасада для агрегирования различных типов генерации и предоставления унифицированных методов вызова и проверки генерации:
Включая тезаурус, табличную информацию и совместное использование информации о полях, на самом деле это веб-сервис для добавления, удаления, изменения и запроса этих объектов, поэтому я не буду вдаваться в подробности.
Если вы хотите получить полное и подробное объяснение этого проекта, добро пожаловать на Планету знаний программирования Юпи. Это кружок обучения программированию Юпи. В кружке я поведу каждого анализировать и интерпретировать этот проект от 0 до 1, а также отвечать на вопросы каждого один на один. Вы не только сможете сделать это самостоятельно, но и научитесь указывать этот проект в своем резюме «Опыт работы над проектом + 1».
Все друзья могут внести свой вклад. Пожалуйста, сначала внимательно прочитайте следующее:
Частичный источник словаря: https://github.com/fighting41love/funNLP.
Источник информации об образце таблицы: https://open.yesapi.cn/list1.html.