1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yyang-dddlib

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 9.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 11:10 833e380

DDDLib

DDDLib — это библиотека для разработки на основе доменно-ориентированного подхода (Domain Driven Design, DDD). Её цель:

  • предоставить базовые интерфейсы и абстракции для DDD-разработки, обеспечивая согласованность;
  • разделить бизнес-код и технический код;
  • изолировать бизнес-код от зависимостей от IoC-контейнеров и фреймворков персистентности;
  • облегчить работу разработчиков, снизив «концептуальную нагрузку».

Большинство разработчиков должны понимать только модуль dddlib-domain и несколько классов в нём: Entity, EntityRepository, InstanceFactory и четыре вида объектов запросов.

Также библиотека предоставляет инструменты, часто используемые в программировании, такие как импорт и экспорт данных из Excel, системная конфигурация и инкапсуляция механизма правил.

Структура модулей

DDDLib представляет собой многомодульный проект Maven с более чем десятью модулями, которые можно разделить на три категории: основные модули, модули IoC и модули персистентности. Пользователи проекта должны напрямую зависеть от основного модуля при кодировании и выбирать модуль IoC и модуль персистентности при развёртывании.

Основные модули включают:

  • dddlib-domain — ядро DDDLib. Используется как зависимость времени компиляции в пользовательских проектах.

Модули IoC включают:

  • dddlib-ioc-spring — инкапсулирует Spring IoC контейнер и предоставляет возможности внедрения зависимостей. Используется как необязательная зависимость времени выполнения в пользовательских проектах;
  • dddlib-ioc-guice — инкапсулирует Google Guice IoC контейнер и обеспечивает внедрение зависимостей. Используется как дополнительная зависимость времени выполнения в пользовательских проектах;
  • dddlib-ioc-tapestry — инкапсулирует TapestryIoC контейнер и предлагает возможности внедрения зависимостей. Используется как дополнительная зависимость времени выполнения в пользовательских проектах.

Модули персистентности включают:

  • dddlib-persistence — модуль персистентности, содержащий следующие подмодули:
    • dddlib-persistence-jpa — использует JPA в качестве технологии персистентности и предоставляет функции сохранения. Используется как дополнительная зависимость времени выполнения в пользовательских проектах;
    • dddlib-persistence-hibernate — использует Hibernate в качестве технологии персистентности и обеспечивает сохранение данных. Используется как дополнительная зависимость времени выполнения в пользовательских проектах;
    • dddlib-persistence-test — тестовый модуль для поддержки других модулей персистентности.

Другие модули:

  • dddlib-query-channel — модуль канала запросов, предоставляющий расширенные функции для постраничного запроса. Если проект нуждается в этой функции, модуль должен быть добавлен как зависимость времени компиляции;
  • dddlib-utils — модуль общих инструментов, предлагающий различные удобные инструменты для работы с JavaBeans, массивами, коллекциями, датами, журналами и т. д. Наиболее важным классом является класс утверждений Assert, который позволяет использовать защитное программирование для повышения надёжности и устойчивости системы. Этот модуль зависит от dddlib-domain, поэтому пользовательские проекты имеют зависимость времени компиляции от него;
  • dddlib-configuration — предоставляет унифицированный интерфейс и реализацию для чтения конфигурационной информации из различных источников, таких как файлы файловой системы, файлы пути к классам, базы данных и удалённые URL. За исключением реализации в форме URL, которая доступна только для чтения, другие реализации доступны для чтения и записи, позволяя записывать изменённые данные конфигурации обратно в их источник;
  • dddlib-cache — модуль кеширования, обеспечивающий поддержку кеша для пользовательских систем. В настоящее время используется реализация memcached, планируется разделение на общий API-модуль и несколько реализаций модулей, использующих различные технологии кеширования;
  • dddlib-datasource-monitor — модуль мониторинга источника данных, отслеживающий состояние работы источника данных;
  • dddlib-datasource-router — модуль маршрутизации источника данных, предназначенный для SaaS-приложений, маршрутизирующий доступ к базам данных разных арендаторов на разные серверы или базы данных. Модуль оптимизирован для MySQL и дополнительно реализует разделение чтения и записи;
  • dddlib-datasource-saas — новая версия модуля источника данных SaaS, маршрутизирующая доступ к базам данных различных арендаторов в их собственные базы данных. Поддерживает различные стратегии маршрутизации, такие как арендаторы с разными IP-адресами, портами, именами баз данных, экземплярами и JNDI;
  • ddblib-db — предоставляет специализированные инструменты для доступа к базе данных, включая менеджер транзакций BTM, DBUnit, менеджеры баз данных MySQL и Oracle и т.д. Основной целью является поддержка интеграционного тестирования баз данных;
  • dddlib-excel — обеспечивает поддержку чтения и записи содержимого файлов Excel с использованием технологии Apache POI и поддерживает форматы Excel .xls и .xlsx;
  • dddlib-i18n — обеспечивает поддержку интернационализации и локализации;
  • dddlib-observer — реализует паттерн наблюдателя на уровне сущностей, уведомляя зарегистрированных наблюдателей-сущностей о событиях, происходящих в сущности;
  • dddlib-rule-engine — предоставляет интерфейсы и реализации для сервисов с состоянием и без состояния на основе спецификации движка правил jsr94.

Для получения подробной информации о каждом подмодуле рекомендуется обратиться к файлу README.md соответствующего модуля.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yyang-dddlib.git
git@api.gitlife.ru:oschina-mirror/yyang-dddlib.git
oschina-mirror
yyang-dddlib
yyang-dddlib
master