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

OSCHINA-MIRROR/yyang-dddlib

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

DDDLib

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

  • предоставления базового интерфейса и абстрактного способа для парадигм разработки DDD с высокой согласованностью;
  • поддержки разделения обязанностей между бизнес-кодом и техническим кодом. Позволения доменному слою чисто выражать бизнес-концепции и бизнес-правила и выносить конкретные технологии за его пределы;
  • изоляции бизнес-кода от инфраструктуры в качестве контейнера IoC и репозитория персистентности и т. д.;
  • снижения нагрузки на работу разработчика, облегчения их «понимания». Большинству разработчиков нужно понимать только модуль dddlib-domain и лишь некоторые классы, которые включены в него: Entity, EntityRepository, InstanceFactory и 4 вида классов Query;
  • предоставления некоторых общих утилит для разработки, таких как экспорт/импорт Excel, служба конфигурации, оболочка механизма правил и так далее.

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

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

Почему DDDLib может облегчить наше «понимание» проектов? Потому что большинству разработчиков проекта нужно знать только основной модуль и даже всего несколько интерфейсов и классов.

Основной модуль:

  • dddlib-domain: ядро всей DDDLib. Это зависимость времени компиляции, которую вам нужно реализовать через её интерфейсы и расширяющие классы.

Модуль IoC: предоставляет возможность IoC. Модуль dddlib-ioc — это просто интерфейс IoC. Вы можете выбрать один из них по своему вкусу:

  • dddlib-ioc-spring: использование Spring IoC;
  • dddlib-ioc-guice: использование Google guice;
  • dddlib-ioc-tapestry: использование Tapestry.

Модуль персистентности: предоставляет возможность персистентности. Есть две реализации для dddlib-persistence:

  • dddlib-persistence-jpa: использование JAP в качестве бэкэнда для реализации персистентности;
  • dddlib-persistence-hibernate: использование Hibernate в качестве бэкэнда для реализации персистентности;
  • dddlib-persistence-test: тестовый модуль для других модулей персистентности.

Следующий модуль связан с персистентностью, но находится поверх других модулей персистентности:

  • dddlib-query-channel: обеспечивает точку расширения для постраничного запроса.

Модуль утилит:

  • dddlib-utils: предоставляет некоторые общие утилиты для обработки JavaBean, массива, коллекции, даты, журнала и так далее. Наиболее важным из них является класс Assert;

  • dddlib-configuration: предоставляет унифицированный API и его реализацию для настройки пар ключ-значение. В настоящее время источник конфигурации может быть из системного файла, файла пути к классам, базы данных, удалённого URL. Этот источник конфигурации можно читать/записывать с помощью API dddlib-configuration, за исключением того, что удалённый URL можно только читать;

  • dddlib-cache: предоставляет возможность кэширования, реализованную memcached. В будущем он будет разделён на два модуля: API и некоторые виды модулей реализации, которые могут быть redis, encache и так далее;

  • dddlib-datasource-monitor: мониторинг состояния источника данных во время выполнения;

  • dddlib-datasource-router: предоставляет маршрутизатор для источников данных, который в основном предназначен для SaaS-маршрутизации разных арендаторов на разные серверы или базы данных. Кроме того, я провёл некоторые оптимизации против MySQL, реализующего разделение R/W;

  • dddlib-datasource-saas: новый источник данных SaaS для маршрутизации разных арендаторов к их конкретным базам данных. Предоставляет некоторые стратегии маршрутизации (например, разные базы данных арендаторов с разными IP, портом, именем базы данных, экземпляром, jndi). Одновременно поддерживает множество серверов баз данных и пулов соединений с базами данных;

  • dddlib-db: утилиты для подключения к базе данных, включая BTM, DBUnit, менеджер MySQL и Oracle;

  • dddlib-excel: предоставляет возможность обработки файлов Excel (.xls, .xlsx), реализованную Apache POI;

  • dddlib-i18n: модуль интернационализации и локализации;

  • dddlib-observer: реализация шаблона проектирования наблюдателя на уровне сущности. Когда что-то происходит с отслеживаемой сущностью, она… Наблюдатель получит сообщение о событии.

  • dddlib-rule-engine: Предоставить API и его реализацию для управляемой и неуправляемой службы правил, основанной на JSR94, что является спецификацией механизма правил.

Пример

hrm-demo — это пример проекта с использованием DDDLib.

========= Этот документ представляет собой лишь общее описание DDDLib. Подробные сведения о каждом подмодуле приведены в файле 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