Платформа разработки Card One
Поддержка технологий для высокопроизводительных, высококонкурентных и расширяемых систем, а также сложных бизнес-процессов.
- Основана на Spring, Spring JdbcTemplate и Spring MVC с минимальной обёрткой.
- Уровень персистентности основан на Spring JdbcTemplate, обеспечивает более удобное использование по сравнению с MyBatis. Его особенности включают:
- поддержку автоматического получения динамического SQL через SQL-маркеры;
- хранение SQL в файлах для удобства последующего обслуживания;
- автоматическую маршрутизацию к различным источникам данных в соответствии с бизнес-правилами (разделение чтения и записи, вертикальное и горизонтальное разделение);
- возможность использования различных типов баз данных одновременно.
- Включает базовые компоненты для разработки корпоративных приложений: конфигурацию, авторизацию, центр пользователей, процессы и обслуживание.
- Безопасное постоянное улучшение:
- запрет межсайтовых форм;
- защита от SQL-инъекций;
- предотвращение внедрения кода через com/css/c.js;
- шифрование критически важных данных.
- Постоянное улучшение функциональности:
- поддержка единого входа как в пределах домена, так и между доменами;
- импорт и экспорт данных из Excel;
- поиск зашифрованных данных;
- поддержка кластеров (загрузка файлов на файловые серверы, FTP-серверы или запись IP-адресов серверов в службу регистрации для облегчения загрузки файлов);
- мониторинг и повторные попытки служб по расписанию;
- соответствие спецификации AMD для решения проблем с зависимостями JS на стороне клиента;
- интеграция с Activiti для управления рабочими процессами;
- управление конфигурацией и историей рабочих процессов.
- Постоянное повышение производительности:
- оптимизация работы с кластерами (избегание одновременного выполнения одних и тех же служб на нескольких серверах, вызов SMS-интерфейсов и других внешних интерфейсов);
- вторичное кэширование шаблонов;
- использование базы данных в памяти для сложных запросов авторизации;
- минимизация нагрузки на клиентскую сторону с помощью seajs от Alibaba для выборочной загрузки JS и CSS;
- другие методы оптимизации.
- В продуктах на основе этой платформы разрабатывается серия открытых продуктов: системы автоматизации офиса (OA), системы управления контентом (CMS) и системы управления человеческими ресурсами (HRM).
- Комплексная поддержка документации, включая полный набор документов на базе PowerDesigner (требования, концепции, физические модели, рабочие процессы) и необходимые руководства по разработке (PDF, HTML, CHM).
- Поддержка генерации кода, позволяющая создавать полезные слои кода, такие как PO, DTO, VO, DAO, Service, Validator и Controller. Разработчикам нужно только определить конкретные бизнес-правила.
Примечание
1. Код использует Lombok для упрощения кода. Перед импортом проекта убедитесь, что Lombok настроен правильно. Официальный сайт: http://projectlombok.org/.
2. Последний исходный код находится в ветке dev-yaoHT. После завершения разработки несколькими разработчиками код объединяется в ветку test для централизованного тестирования. После успешного тестирования код переносится в основную ветку master.
3. Исторические версии доступны в тегах.
Стремление к простоте в решении сложных задач
1. Динамический SQL на уровне персистентности основывается на выражениях Freemarker, которые мощнее выражений OGNL в MyBatis. Это позволяет использовать пользовательские теги или статические методы Java непосредственно в SQL. Можно контролировать права доступа к данным и отображать содержимое полей в SQL. Также можно реализовать повторное использование фрагментов SQL, кэширование и другие функции (Freemarker уже поддерживает эти функции, дополнительная упаковка не требуется).
2. Файлы SQL для уровня персистентности используются как файлы шаблонов Freemarker. Этот подход удобен для совместного использования с различными типами баз данных. При настройке в Spring можно указать несколько путей для templateLoaderPaths, например, classpath:/sql/Oracle и classpath:/sql/MySQL. Если вызывается SQL относительно пути, сначала поиск начинается в каталоге /sql/Oracle. Если файл не найден, поиск автоматически продолжается в каталоге /sql/MySQL.
3. Конфигурация маршрутизации данных позволяет настроить правила маршрутизации после определения нескольких источников данных (различных типов, таких как MySQL и Oracle). Правила маршрутизации поддерживают различные режимы, включая разделение чтения и записи, главный-подчиненный, мультимастер, кластеры баз данных и другие. Увеличение рабочей нагрузки на уровень персистентности не требуется. Для SQL без параметров достаточно указать относительный путь SQL.
Комментарии ( 0 )