Скульптор Бут: система для быстрой разработки программного обеспечения, ориентированная на программистов
Некоторые точки зрения могут показаться слишком радикальными, поэтому несовершеннолетним рекомендуется читать их в присутствии взрослых:
«Данные — это всё, всё — данные».
Система Скульптор Бут включает в себя:
— Логику базы данных: MySQL и PostgreSQL (в следующей версии будет использоваться PostgreSQL).
— Генератор кода: Java.
— Проект для бэкенда: Spring Boot и Spring Cloud Alibaba (распределённая версия).
— Проект для фронтенда: React и Vue (в следующей версии будет использоваться Vue).
Да, они не могут решить все проблемы. Но они могут решить некоторые из них.
Правила кодирования
Правила для запросов:
— Правила для запросов бэкенда (https://github.com/cdk8s/cdk8s-team-style/blob/master/dev/common/http-request.md).
— Правила для запросов приложения (https://github.com/cdk8s/cdk8s-team-style/blob/master/dev/common/api-request.md).
Соглашение о базе данных (./db-style.md):
— Создание таблиц SQL: enum, tree, foreignKey (один или несколько параметров), возвращающие EntityObject или List, а также поддерживающие удаление параметра.
— oneParam: один параметр запроса, возвращающий List.
— listParam: несколько параметров запроса, возвращающих List.
— likeParam: один параметр запроса с использованием подстановочных знаков, возвращающий List.
Принципы вывода журнала (./log-style.md).
Принципы комментирования кода:
— Разделение комментариев для запросов и операций.
— Отсутствие необходимости в комментариях к параметрам, за исключением сложных случаев.
— Написание комментариев перед кодом для бизнес-логики.
Принципы YApi
Соблюдение правил запросов приложений.
Использование синтаксиса для комментариев.
Git
TKey: Github (https://github.com/cdk8s/tkey) и Gitee (https://gitee.com/cdk8s/tkey).
sculptor-boot-generator: Github (https://github.com/cdk8s/sculptor-boot-generator) и Gitee (https://gitee.com/cdk8s/sculptor-boot-generator).
sculptor-boot-backend: Github (https://github.com/cdk8s/sculptor-boot-backend) и Gitee (https://gitee.com/cdk8s/sculptor-boot-backend).
sculptor-boot-frontend: Github (https://github.com/cdk8s/sculptor-boot-frontend) и Gitee (https://gitee.com/cdk8s/sculptor-boot-frontend).
sculptor-boot-test: Github (https://github.com/cdk8s/sculptor-boot-test) и Gitee (https://gitee.com/cdk8s/sculptor-boot-test).
sculptor-boot-docs: Github (https://github.com/cdk8s/sculptor-boot-docs) и Gitee (https://gitee.com/cdk8s/sculptor-boot-docs).
Live Demo
Обратите внимание: пропускная способность составляет всего 1 Мбайт, что может замедлить доступ.
Для нормального доступа и перенаправления на страницу входа необходимо добавить следующие хосты:
182.61.44.40 sculptor.cdk8s.com.
Доступ по адресу: CDK8S Sculptor Boot (http://sculptor.cdk8s.com/sculptor-boot-frontend/).
Демонстрация GIF (генерация CURD для одной таблицы)
Объяснение: GIF был ускорен для уменьшения размера.
Процесс генерации кода (http://img.gitnavi.com/sculptor-boot/sculptor-boot-gen.gif).
Процесс модульного тестирования (http://img.gitnavi.com/sculptor-boot/sculptor-boot-junit.gif).
Шаги демонстрации:
— Инициализация скрипта базы данных.
— Выполнение операции генерации.
— Добавление сгенерированных файлов в систему контроля версий.
— Вставка SQL-кода разрешений в базу данных.
— Запуск модульных тестов:
mvn clean test -Dtest=SysDemoMapperTest,SysDemoServiceTest,SysDemoControllerTest.
— Запустить приложение бэкенда и выполнить тестирование интерфейса:
mvn gatling:test -Dgatling.simulationClass=test.load.cdk8s.SysDemoPage.
— Запустите приложение фронтенда и продемонстрируйте операции CURD.
Видео на Bilibili
Sculptor-Boot-генератор кода-CDK8S (https://www.bilibili.com/video/av79864146/).
Графические изображения, связанные с развёртыванием и производительностью:
Часть изображений была взята из проекта TKey, который имеет аналогичную архитектуру. Для получения дополнительной информации о развёртывании и конфигурационных файлах рекомендуется обратиться к проекту TKey: TKey: Github (https://github.com/cdk8s/tkey) и Gitee (https://gitee.com/cdk8s/tkey).
JProfiler: изменение нагрузки (http://img.gitnavi.com/tkey/tkey-jprofiler.gif).
Вход в систему: основное изображение (https://upload-images.jianshu.io/upload_images/19119711-cd483cefb50eb763.gif) и дополнительное изображение (http://img.gitnavi.com/tkey/tkey-sso-login.gif).
Grafana: мониторинг большого экрана (основное изображение: https://upload-images.jianshu.io/upload_images/19119711-af9b3d3411db1da1.gif, дополнительное изображение: http://img.gitnavi.com/tkey/actuator-prometheus-grafana.gif).
GoAccess: мониторинг большого экрана (основное изображение: https://upload-images.jianshu.io/upload_images/19119711-b3bcc4edcf0df007.gif, дополнительное изображение: http://img.gitnavi.com/tkey/goaccess-data.gif).
Postman: вызов API (основное изображение: https://upload-images.jianshu.io/upload_images/19119711-a8316b794bf4bf56.gif, дополнительное изображение: http://img.gitnavi.com/tkey/postman-request-api.gif).
Docker: управление контейнерами (основное изображение: https://upload-images.jianshu.io/upload_images/19119711-281dd6b40f2d7fc7.gif, дополнительное изображение: http://img.gitnavi.com/tkey/portainer-docker.gif).
Jenkins: конвейер развёртывания (основное изображение: https://upload-images.jianshu.io/upload_images/19119711-2d20e2fba98ddbbd.gif, дополнительное изображение: http://img.gitnavi.com/tkey/tkey-jenkins.gif).
JProfiler: изменения нагрузки (изображение: АПИ). Перевод текста на русский язык:
Разработка ведётся в среде, где проектная документация подробно описывает процесс создания продукта с точки зрения таких аспектов, как стандарты, разработка, тестирование, развёртывание и мониторинг. Рекомендуется сначала ознакомиться с этой документацией.
TKey использует протокол OAuth, поэтому процесс входа может показаться сложным и запутанным. Это связано с тем, что вместо простой проверки имени пользователя и пароля используется авторизация через код доступа.
Кроме того, поддержка TKey OAuth обеспечивает хорошую расширяемость системы, что позволяет быстро подключать других пользователей. Поэтому, если вы хотите изучить процесс входа, рекомендуется обратиться к проекту TKey, который представляет собой наиболее простой вариант для изучения.
Использование Shiro и Spring Security не требуется благодаря применению TKey. Вы можете настроить процесс аутентификации по своему усмотрению, учитывая различные требования заказчика.
Что касается использования JPA или MyBatis, я склоняюсь к использованию MyBatis с XML-конфигурацией. Не рекомендую использовать аннотации и блоки кода классов, так как:
Если Spring Data R2DBC станет зрелым решением, единственным вариантом будет использование JPA, чтобы обеспечить реактивность. На данный момент это ещё рано обсуждать.
Видеоуроки для начинающих разработчиков веб-приложений (авторские права принадлежат автору)
Если вы не знакомы со Spring Boot, рекомендуется сначала изучить следующие материалы перед использованием:
Управление проектами: логика (Университет Цинхуа):
Git & Github:
Веб-протоколы и анализ трафика:
Эффективное использование IntelliJ IDEA:
Упрощённые уроки IntelliJ IDEA на китайском языке:
Основы MySQL:
Базовые уроки Spring Boot:
Коммуникация и сотрудничество в команде с помощью UML (не обязательно, но рекомендуется):
Стандарты команды CDK8S (необязательно, можно использовать в качестве примера):
Для удобства управления и доступа к документации рекомендуется создать отдельный проект.
Ссылки на документацию:
Все права на систему Sculptor Boot и TKey были переданы в виде заявок на авторские права. Исходный код Sculptor Boot открыт под лицензией GPL. Для коммерческого использования с закрытым исходным кодом необходимо быть партнёром.
Партнёрство отличается от коммерческого лицензирования. Партнёрство основано на субъективном личном взаимодействии, которое выражает признание моих ценностей и принципов. Оно не требует чтения прав или прав на исходный код, а просто предполагает, что люди, разделяющие мои ценности и принципы, могут присоединиться к игре. Мы готовимся к будущему 5G и искусственного интеллекта.
Чтобы стать партнёрами, необходимо признать мои ценности и идеи, а затем выразить свою признательность.
Мои ценности и принципы включают:
Моя философия в отношении веб-технологий и искусственного интеллекта:
Эта серия систем не стремится оптимизировать пакеты, уменьшать размер, ускорять запуск или реагировать быстрее. Мой приоритет — ясность, лёгкость сотрудничества, удобство обслуживания и возможность расширения.
Возможно, я преувеличиваю, но веб-технологии становятся всё менее ценными, особенно для разработчиков, работающих с обычными CRUD-системами. Если вы ещё не создали полноценную веб-систему, мне остаётся только пожелать вам терпения и готовности к изменениям.
На текущем этапе я планирую отложить разработку до тех пор, пока Service Mesh не станет широко распространённым, и не буду ждать, пока Micronaut, Quarkus, Helidon, Payara, Thorntail и Javalin станут доминирующими фреймворками. Я хочу использовать зрелый и обширный Spring для сбора данных и изучения возможностей искусственного интеллекта.
Обычные веб-технологии становятся всё более зрелыми, порог входа снижается, и я больше не хочу спорить об этом. Конечно, всегда будут существовать высококлассные специалисты и проекты, но это зависит от судьбы.
Я разрабатываю эту систему не для того, чтобы заработать деньги, а для того, чтобы дать другим разработчикам больше свободного времени для изучения пользовательских исследований, сбора данных, анализа данных и искусственного интеллекта.
Веб — это лишь один из входов в мир данных. Он будет существовать, но не стоит уделять ему слишком много внимания. Вместо этого мы должны лучше понимать мир данных.
Сколько лет потребовалось для распространения 4G? Сколько лет потребуется для распространения 5G? Готовы ли вы к этому?
Почему бы нам не объединиться и не учиться вместе? Делиться материалами, данными, методами и даже небольшими возможностями сотрудничества?
Большинство людей просто хотят прокормить свои семьи и заработать немного денег. Их врагами являются те, кто намного сильнее их, в сотни или тысячи раз. Рядом с ними могут быть только друзья, потому что они не достойны дружбы с теми, кто сильнее.
Будущее, наполненное научной фантастикой, предоставляет уникальные возможности для изучения пользовательских исследований, сбора данных, анализа данных и искусственного интеллекта. Преимущество искусственного интеллекта заключается в его способности лучше количественно оценивать каждого человека, будь то самооценка, оценка других или общества. Что, если у вас нет математических способностей? Просто делайте то, что можете.
Для любителей научной фантастики это уникальная возможность. Сможем ли мы ускорить колонизацию космоса, зависит от будущего искусственного интеллекта. Развитие.
Мне нравится научная фантастика, нравится мир будущего. Кстати, недавно вышел четвёртый сезон сериала «Пространство» («The Expanse»), рекомендую к просмотру.
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.