├── .gitkeep ├── .nojekyll ├── 整洁架构 ├── README.md └── 99~参考资料 │ ├── README.md │ ├── 2016~Clean Architecture Example (Java) │ └── codes │ │ ├── .gitignore │ │ ├── docs │ │ └── images │ │ │ ├── example-1.png │ │ │ ├── example-2.png │ │ │ ├── example-domain.png │ │ │ ├── testing-strategy.png │ │ │ ├── clean-architecture-diagram-1.png │ │ │ └── clean-architecture-diagram-2.png │ │ ├── application │ │ ├── core │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── clean │ │ │ │ │ └── example │ │ │ │ │ └── core │ │ │ │ │ ├── entity │ │ │ │ │ └── DeviceType.java │ │ │ │ │ └── usecase │ │ │ │ │ ├── job │ │ │ │ │ ├── OnFailure.java │ │ │ │ │ └── OnSuccess.java │ │ │ │ │ ├── exchange │ │ │ │ │ └── getcapacity │ │ │ │ │ │ ├── ExchangeNotFoundException.java │ │ │ │ │ │ └── DoesExchangeExist.java │ │ │ │ │ └── broadbandaccessdevice │ │ │ │ │ ├── getdetails │ │ │ │ │ └── DeviceNotFoundException.java │ │ │ │ │ └── reconcile │ │ │ │ │ ├── GetSerialNumberFromModel.java │ │ │ │ │ ├── GetSerialNumberFromReality.java │ │ │ │ │ ├── UpdateSerialNumberInModel.java │ │ │ │ │ └── GetAllDeviceHostnames.java │ │ │ └── build.gradle │ │ ├── dataproviders │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── clean │ │ │ │ └── example │ │ │ │ └── dataproviders │ │ │ │ └── network │ │ │ │ └── deviceclient │ │ │ │ ├── DeviceClient.java │ │ │ │ └── DeviceConnectionTimeoutException.java │ │ └── entrypoints │ │ │ └── build.gradle │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ └── settings.gradle │ ├── 2023~Understanding Clean Architecture and Domain-Driven Design (DDD).md │ └── 2020~Clean Architecture Example with Java and Spring Boot │ └── codes │ └── core │ └── src │ └── main │ └── java │ └── com │ └── d4i │ └── sample │ └── movie │ └── category │ └── ports │ └── UpdateCategoryInFilmsEventsGateway.java ├── 六边形架构 ├── UDLMA │ ├── 扩展 │ │ ├── 反应式.md │ │ └── 扩展点.md │ └── RARF │ │ ├── AARF.vsdx │ │ └── 2014~RFDR:基于 REST 风格与分布式资源抽象的全栈应用软件架构模式.doc ├── 99~参考资料 │ ├── 2023~《Designing Hexagonal Architecture with Java》 │ │ └── codes │ │ │ ├── Chapter13 │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── resources │ │ │ │ │ │ └── META-INF │ │ │ │ │ │ │ └── beans.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── davivieira │ │ │ │ │ │ └── topologyinventory │ │ │ │ │ │ └── framework │ │ │ │ │ │ └── adapters │ │ │ │ │ │ └── output │ │ │ │ │ │ └── mysql │ │ │ │ │ │ └── data │ │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ │ ├── SwitchTypeData.java │ │ │ │ │ │ ├── ModelData.java │ │ │ │ │ │ └── VendorData.java │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── Vendor.java │ │ │ │ │ └── Location.java │ │ │ ├── bootstrap │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── module-info.java │ │ │ └── application │ │ │ │ └── src │ │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── dev │ │ │ │ └── davivieira │ │ │ │ └── topologyinventory │ │ │ │ └── application │ │ │ │ ├── switches │ │ │ │ ├── SwitchAdd.feature │ │ │ │ └── SwitchCreate.feature │ │ │ │ └── networks │ │ │ │ ├── NetworkCreate.feature │ │ │ │ └── NetworkAdd.feature │ │ │ ├── Chapter14 │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── resources │ │ │ │ │ │ └── META-INF │ │ │ │ │ │ │ └── beans.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── davivieira │ │ │ │ │ │ └── topologyinventory │ │ │ │ │ │ └── framework │ │ │ │ │ │ └── adapters │ │ │ │ │ │ └── output │ │ │ │ │ │ └── mysql │ │ │ │ │ │ └── data │ │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ │ ├── SwitchTypeData.java │ │ │ │ │ │ ├── ModelData.java │ │ │ │ │ │ └── VendorData.java │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ ├── k8s │ │ │ │ ├── configmap.yaml │ │ │ │ ├── secret.yaml │ │ │ │ └── service.yaml │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ └── Vendor.java │ │ │ ├── bootstrap │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── module-info.java │ │ │ │ │ └── resources │ │ │ │ │ └── application.yaml │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── application │ │ │ │ │ ├── switches │ │ │ │ │ ├── SwitchAdd.feature │ │ │ │ │ └── SwitchCreate.feature │ │ │ │ │ └── networks │ │ │ │ │ ├── NetworkCreate.feature │ │ │ │ │ └── NetworkAdd.feature │ │ │ └── Dockerfile │ │ │ ├── Chapter16 │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── resources │ │ │ │ │ │ └── META-INF │ │ │ │ │ │ │ └── beans.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── davivieira │ │ │ │ │ │ └── topologyinventory │ │ │ │ │ │ └── framework │ │ │ │ │ │ └── adapters │ │ │ │ │ │ └── output │ │ │ │ │ │ └── mysql │ │ │ │ │ │ └── data │ │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ │ ├── SwitchTypeData.java │ │ │ │ │ │ ├── ModelData.java │ │ │ │ │ │ └── VendorData.java │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ ├── k8s │ │ │ │ ├── configmap.yaml │ │ │ │ ├── secret.yaml │ │ │ │ └── service.yaml │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ └── Vendor.java │ │ │ ├── bootstrap │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── module-info.java │ │ │ │ │ └── resources │ │ │ │ │ └── application.yaml │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── application │ │ │ │ │ ├── switches │ │ │ │ │ ├── SwitchAdd.feature │ │ │ │ │ └── SwitchCreate.feature │ │ │ │ │ └── networks │ │ │ │ │ ├── NetworkCreate.feature │ │ │ │ │ └── NetworkAdd.feature │ │ │ └── Dockerfile │ │ │ ├── Chapter17 │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── resources │ │ │ │ │ │ └── META-INF │ │ │ │ │ │ │ └── beans.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── davivieira │ │ │ │ │ │ └── topologyinventory │ │ │ │ │ │ └── framework │ │ │ │ │ │ └── adapters │ │ │ │ │ │ └── output │ │ │ │ │ │ └── mysql │ │ │ │ │ │ └── data │ │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ │ ├── SwitchTypeData.java │ │ │ │ │ │ ├── ModelData.java │ │ │ │ │ │ └── VendorData.java │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ ├── domain │ │ │ │ ├── src │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── module-info.java │ │ │ │ ├── status-sub-domain │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── java │ │ │ │ │ │ └── module-info.java │ │ │ │ └── inventory-core-domain │ │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ └── Vendor.java │ │ │ ├── k8s │ │ │ │ ├── configmap.yaml │ │ │ │ ├── secret.yaml │ │ │ │ └── service.yaml │ │ │ ├── bootstrap │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── module-info.java │ │ │ │ │ └── resources │ │ │ │ │ └── application.yaml │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── application │ │ │ │ │ ├── switches │ │ │ │ │ ├── SwitchAdd.feature │ │ │ │ │ └── SwitchCreate.feature │ │ │ │ │ └── networks │ │ │ │ │ ├── NetworkCreate.feature │ │ │ │ │ └── NetworkAdd.feature │ │ │ └── Dockerfile │ │ │ ├── Chapter11 │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── davivieira │ │ │ │ │ │ └── topologyinventory │ │ │ │ │ │ └── application │ │ │ │ │ │ └── Test.java │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── application │ │ │ │ │ ├── switches │ │ │ │ │ ├── SwitchAdd.feature │ │ │ │ │ └── SwitchCreate.feature │ │ │ │ │ └── networks │ │ │ │ │ ├── NetworkCreate.feature │ │ │ │ │ └── NetworkAdd.feature │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── App.java │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── framework │ │ │ │ │ └── adapters │ │ │ │ │ └── output │ │ │ │ │ └── h2 │ │ │ │ │ └── data │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ └── SwitchTypeData.java │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── Vendor.java │ │ │ │ │ └── Location.java │ │ │ ├── bootstrap │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── module-info.java │ │ │ └── README.md │ │ │ ├── Chapter07 │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ └── java │ │ │ │ │ │ └── module-info.java │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── application │ │ │ │ │ ├── switches │ │ │ │ │ ├── SwitchAdd.feature │ │ │ │ │ └── SwitchCreate.feature │ │ │ │ │ └── networks │ │ │ │ │ ├── NetworkCreate.feature │ │ │ │ │ └── NetworkAdd.feature │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── Vendor.java │ │ │ │ │ └── Location.java │ │ │ └── README.md │ │ │ ├── Chapter01 │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── domain │ │ │ │ │ └── RouterType.java │ │ │ │ │ └── application │ │ │ │ │ └── ports │ │ │ │ │ └── output │ │ │ │ │ └── RouterViewOutputPort.java │ │ │ │ └── resources │ │ │ │ └── routers.txt │ │ │ ├── Chapter02 │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── domain │ │ │ │ │ ├── vo │ │ │ │ │ │ ├── Protocol.java │ │ │ │ │ │ ├── RouterType.java │ │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ │ └── ParsePolicyType.java │ │ │ │ │ └── specification │ │ │ │ │ │ └── Specification.java │ │ │ │ │ └── application │ │ │ │ │ └── ports │ │ │ │ │ └── output │ │ │ │ │ └── RouterViewOutputPort.java │ │ │ │ └── resources │ │ │ │ ├── routers.txt │ │ │ │ └── events.txt │ │ │ ├── Chapter03 │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── domain │ │ │ │ │ ├── vo │ │ │ │ │ │ ├── Protocol.java │ │ │ │ │ │ ├── RouterType.java │ │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ │ └── ParsePolicyType.java │ │ │ │ │ └── specification │ │ │ │ │ │ └── Specification.java │ │ │ │ │ └── application │ │ │ │ │ └── ports │ │ │ │ │ └── output │ │ │ │ │ └── RouterViewOutputPort.java │ │ │ │ └── resources │ │ │ │ ├── routers.txt │ │ │ │ └── events.txt │ │ │ ├── Chapter04 │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── domain │ │ │ │ │ ├── vo │ │ │ │ │ │ ├── Protocol.java │ │ │ │ │ │ ├── RouterType.java │ │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ │ └── ParsePolicyType.java │ │ │ │ │ └── specification │ │ │ │ │ │ └── Specification.java │ │ │ │ │ ├── framework │ │ │ │ │ └── adapters │ │ │ │ │ │ └── output │ │ │ │ │ │ └── h2 │ │ │ │ │ │ └── data │ │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ │ └── SwitchTypeData.java │ │ │ │ │ └── application │ │ │ │ │ └── ports │ │ │ │ │ └── output │ │ │ │ │ └── RouterViewOutputPort.java │ │ │ │ └── resources │ │ │ │ ├── routers.txt │ │ │ │ └── events.txt │ │ │ ├── Chapter05 │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── domain │ │ │ │ │ ├── vo │ │ │ │ │ │ ├── Protocol.java │ │ │ │ │ │ ├── RouterType.java │ │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ │ └── ParsePolicyType.java │ │ │ │ │ └── specification │ │ │ │ │ │ └── Specification.java │ │ │ │ │ ├── application │ │ │ │ │ ├── usecases │ │ │ │ │ │ └── NotifyEventUseCase.java │ │ │ │ │ └── ports │ │ │ │ │ │ └── output │ │ │ │ │ │ ├── NotifyEventOutputPort.java │ │ │ │ │ │ └── RouterViewOutputPort.java │ │ │ │ │ └── framework │ │ │ │ │ └── adapters │ │ │ │ │ └── output │ │ │ │ │ └── h2 │ │ │ │ │ └── data │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ └── SwitchTypeData.java │ │ │ │ ├── resources │ │ │ │ ├── routers.txt │ │ │ │ └── events.txt │ │ │ │ └── web │ │ │ │ ├── images │ │ │ │ └── topology_logo.png │ │ │ │ ├── js │ │ │ │ └── nav.js │ │ │ │ └── includes │ │ │ │ └── menu.html │ │ │ ├── Chapter08 │ │ │ ├── framework │ │ │ │ ├── README.md │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── framework │ │ │ │ │ └── adapters │ │ │ │ │ └── output │ │ │ │ │ └── h2 │ │ │ │ │ └── data │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ └── SwitchTypeData.java │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── Vendor.java │ │ │ │ │ └── Location.java │ │ │ ├── README.md │ │ │ └── application │ │ │ │ └── src │ │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── dev │ │ │ │ └── davivieira │ │ │ │ └── topologyinventory │ │ │ │ └── application │ │ │ │ ├── switches │ │ │ │ ├── SwitchAdd.feature │ │ │ │ └── SwitchCreate.feature │ │ │ │ └── networks │ │ │ │ ├── NetworkCreate.feature │ │ │ │ └── NetworkAdd.feature │ │ │ ├── Chapter09 │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── App.java │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── framework │ │ │ │ │ └── adapters │ │ │ │ │ └── output │ │ │ │ │ └── h2 │ │ │ │ │ └── data │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ └── SwitchTypeData.java │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── Vendor.java │ │ │ │ │ └── Location.java │ │ │ ├── README.md │ │ │ └── application │ │ │ │ └── src │ │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── dev │ │ │ │ └── davivieira │ │ │ │ └── topologyinventory │ │ │ │ └── application │ │ │ │ ├── switches │ │ │ │ ├── SwitchAdd.feature │ │ │ │ └── SwitchCreate.feature │ │ │ │ └── networks │ │ │ │ ├── NetworkCreate.feature │ │ │ │ └── NetworkAdd.feature │ │ │ ├── Chapter10 │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── App.java │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── framework │ │ │ │ │ └── adapters │ │ │ │ │ └── output │ │ │ │ │ └── h2 │ │ │ │ │ └── data │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ └── SwitchTypeData.java │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── Vendor.java │ │ │ │ │ └── Location.java │ │ │ └── application │ │ │ │ └── src │ │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── dev │ │ │ │ └── davivieira │ │ │ │ └── topologyinventory │ │ │ │ └── application │ │ │ │ ├── switches │ │ │ │ ├── SwitchAdd.feature │ │ │ │ └── SwitchCreate.feature │ │ │ │ └── networks │ │ │ │ ├── NetworkCreate.feature │ │ │ │ └── NetworkAdd.feature │ │ │ ├── Chapter12 │ │ │ ├── framework │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ ├── App.java │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── framework │ │ │ │ │ └── adapters │ │ │ │ │ └── output │ │ │ │ │ └── h2 │ │ │ │ │ └── data │ │ │ │ │ ├── ProtocolData.java │ │ │ │ │ ├── RouterTypeData.java │ │ │ │ │ └── SwitchTypeData.java │ │ │ ├── domain │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── topologyinventory │ │ │ │ │ └── domain │ │ │ │ │ └── vo │ │ │ │ │ ├── Protocol.java │ │ │ │ │ ├── RouterType.java │ │ │ │ │ ├── SwitchType.java │ │ │ │ │ ├── Model.java │ │ │ │ │ ├── Vendor.java │ │ │ │ │ └── Location.java │ │ │ ├── bootstrap │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── module-info.java │ │ │ └── application │ │ │ │ └── src │ │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── dev │ │ │ │ └── davivieira │ │ │ │ └── topologyinventory │ │ │ │ └── application │ │ │ │ ├── switches │ │ │ │ ├── SwitchAdd.feature │ │ │ │ └── SwitchCreate.feature │ │ │ │ └── networks │ │ │ │ ├── NetworkCreate.feature │ │ │ │ └── NetworkAdd.feature │ │ │ ├── Chapter15 │ │ │ ├── layered │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── dev │ │ │ │ │ │ └── davivieira │ │ │ │ │ │ └── layered │ │ │ │ │ │ ├── service │ │ │ │ │ │ └── dto │ │ │ │ │ │ │ └── UserDto.java │ │ │ │ │ │ └── App.java │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ └── hexagonal │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── dev │ │ │ │ │ └── davivieira │ │ │ │ │ └── hexagonal │ │ │ │ │ └── framework │ │ │ │ │ └── adapters │ │ │ │ │ └── input │ │ │ │ │ └── dto │ │ │ │ │ └── UserDto.java │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── Chapter06 │ │ │ ├── domain │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── dev │ │ │ │ └── davivieira │ │ │ │ └── topologyinventory │ │ │ │ └── domain │ │ │ │ └── vo │ │ │ │ ├── Protocol.java │ │ │ │ ├── RouterType.java │ │ │ │ ├── SwitchType.java │ │ │ │ ├── Model.java │ │ │ │ ├── Vendor.java │ │ │ │ └── Location.java │ │ │ └── README.md │ ├── 2023~Hexagonal Architecture With Spring Boot │ │ └── codes │ │ │ ├── coffeeshop-infrastructure │ │ │ └── src │ │ │ │ ├── main │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── data │ │ │ │ ├── payment.sql │ │ │ │ └── order.sql │ │ │ ├── settings.gradle │ │ │ ├── coffeeshop-application │ │ │ └── src │ │ │ │ ├── main │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── arhohuttunen │ │ │ │ │ └── coffeeshop │ │ │ │ │ ├── shared │ │ │ │ │ ├── Size.java │ │ │ │ │ ├── Location.java │ │ │ │ │ ├── Milk.java │ │ │ │ │ ├── Drink.java │ │ │ │ │ └── Status.java │ │ │ │ │ └── application │ │ │ │ │ ├── out │ │ │ │ │ └── OrderNotFound.java │ │ │ │ │ └── payment │ │ │ │ │ ├── Receipt.java │ │ │ │ │ ├── Payment.java │ │ │ │ │ └── CreditCard.java │ │ │ │ └── test │ │ │ │ └── resources │ │ │ │ └── data │ │ │ │ ├── payment.sql │ │ │ │ └── order.sql │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ └── .github │ │ │ └── dependabot.yml │ └── Hexagonal Architecture in Java Tutorial │ │ └── codes │ │ └── SvenWoltmann~hexagonal-architecture-java │ │ └── doc │ │ ├── shop-model-iteration-1.plantuml │ │ ├── hexagonal-architecture-modules.png │ │ ├── architecture-components.plantuml │ │ └── shop-model-iteration-2.plantuml └── COLA │ └── 99~参考资料 │ └── 2022~COLA 4.0:应用架构的最佳实践.md ├── 领域驱动设计 ├── 99~参考资料 │ ├── 2021~《复杂软件设计之道:领域渠驱动设计》 │ │ └── README.md │ ├── baiyan_lou~《深入浅出 DDD》 │ │ ├── README.md │ │ └── codes │ │ │ ├── baiyan-ddd-base │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── baiyan │ │ │ │ └── ddd │ │ │ │ └── base │ │ │ │ ├── package-info.java │ │ │ │ └── model │ │ │ │ └── ddd │ │ │ │ ├── MarkerInterface.java │ │ │ │ ├── Ability.java │ │ │ │ ├── Adapter.java │ │ │ │ ├── Entity.java │ │ │ │ ├── Factory.java │ │ │ │ ├── Command.java │ │ │ │ ├── Interface.java │ │ │ │ ├── AggregateRoot.java │ │ │ │ ├── DomainService.java │ │ │ │ ├── Representation.java │ │ │ │ ├── ApplicationService.java │ │ │ │ └── QueryApplicationService.java │ │ │ ├── baiyan-ddd-application │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── baiyan │ │ │ │ └── ddd │ │ │ │ └── application │ │ │ │ ├── ability │ │ │ │ ├── package-info.java │ │ │ │ ├── share │ │ │ │ │ └── package-info.java │ │ │ │ └── user │ │ │ │ │ └── assembler │ │ │ │ │ └── package-info.java │ │ │ │ ├── command │ │ │ │ └── cmd │ │ │ │ │ └── user │ │ │ │ │ └── package-info.java │ │ │ │ └── query │ │ │ │ ├── model │ │ │ │ └── user │ │ │ │ │ ├── qry │ │ │ │ │ └── package-info.java │ │ │ │ │ └── dto │ │ │ │ │ └── package-info.java │ │ │ │ ├── assembler │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ ├── baiyan-ddd-domain │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── baiyan │ │ │ │ └── ddd │ │ │ │ └── domain │ │ │ │ ├── aggregate │ │ │ │ ├── package-info.java │ │ │ │ ├── user │ │ │ │ │ ├── event │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── constant │ │ │ │ │ │ └── package-info.java │ │ │ │ └── role │ │ │ │ │ └── package-info.java │ │ │ │ └── share │ │ │ │ ├── enums │ │ │ │ └── package-info.java │ │ │ │ ├── valueobject │ │ │ │ └── package-info.java │ │ │ │ └── exception │ │ │ │ └── package-info.java │ │ │ ├── baiyan-ddd-interaction │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── baiyan │ │ │ │ └── ddd │ │ │ │ └── interaction │ │ │ │ ├── config │ │ │ │ └── package-info.java │ │ │ │ ├── mq │ │ │ │ └── package-info.java │ │ │ │ ├── controller │ │ │ │ └── package-info.java │ │ │ │ ├── api │ │ │ │ └── package-info.java │ │ │ │ ├── handler │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ ├── baiyan-ddd-infrastructure │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── baiyan │ │ │ │ └── ddd │ │ │ │ └── infrastructure │ │ │ │ ├── config │ │ │ │ └── package-info.java │ │ │ │ ├── constant │ │ │ │ └── package-info.java │ │ │ │ ├── db │ │ │ │ ├── mapper │ │ │ │ │ └── package-info.java │ │ │ │ ├── model │ │ │ │ │ └── package-info.java │ │ │ │ ├── repository │ │ │ │ │ └── package-info.java │ │ │ │ └── converter │ │ │ │ │ └── package-info.java │ │ │ │ ├── mq │ │ │ │ └── producer │ │ │ │ │ └── package-info.java │ │ │ │ └── rpc │ │ │ │ └── package-info.java │ │ │ ├── baiyan-ddd-rpc │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com.baiyan.ddd.rpc │ │ │ │ └── package-info.java │ │ │ └── baiyan-ddd-api │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── baiyan │ │ │ └── ddd │ │ │ └── api │ │ │ └── package-info.java │ ├── mrcode~DDD 实战课 │ │ └── README.md │ ├── 2019~阿里技术专家详解 DDD 系列 │ │ └── codes │ │ │ ├── bank-start │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ ├── README.md │ │ │ ├── bank-domain │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── bank │ │ │ │ ├── exception │ │ │ │ ├── AccountNotFoundException.java │ │ │ │ ├── DailyLimitExceededException.java │ │ │ │ └── InsufficientFundsException.java │ │ │ │ ├── messaging │ │ │ │ └── AuditMessageProducer.java │ │ │ │ ├── external │ │ │ │ └── ExchangeRateService.java │ │ │ │ └── domain │ │ │ │ └── types │ │ │ │ └── AuditMessage.java │ │ │ ├── bank-types │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── bank │ │ │ │ ├── exception │ │ │ │ ├── InvalidCurrencyException.java │ │ │ │ ├── BusinessException.java │ │ │ │ └── MoneyAmoutNotNullException.java │ │ │ │ └── common │ │ │ │ └── Result.java │ │ │ ├── .idea │ │ │ └── vcs.xml │ │ │ └── bank-persistence │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── bank │ │ │ └── persistence │ │ │ └── AccountBuilder.java │ ├── 2023~educational-platform-monolith │ │ ├── security │ │ │ └── config │ │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ └── resources │ │ │ │ │ └── application-security.properties │ │ │ │ └── build.gradle │ │ ├── docs │ │ │ ├── architecture_tests.png │ │ │ ├── integration_events.png │ │ │ ├── bounded_context_map.png │ │ │ ├── global_module_structure.png │ │ │ ├── business_submodules_structure.png │ │ │ └── architecture-decisions │ │ │ │ ├── 0010-use-axon-framework.md │ │ │ │ └── 0009-architecture-tests.md │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── administration │ │ │ ├── web │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── resources │ │ │ │ │ └── insert_data.sql │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ ├── test │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── educational │ │ │ │ │ │ └── platform │ │ │ │ │ │ └── TestApplication.java │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── administration │ │ │ │ │ └── course │ │ │ │ │ └── query │ │ │ │ │ └── ListCourseProposalsQuery.java │ │ │ └── integration-events │ │ │ │ └── build.gradle.kts │ │ ├── courses │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── educational │ │ │ │ │ │ └── platform │ │ │ │ │ │ └── courses │ │ │ │ │ │ └── course │ │ │ │ │ │ ├── LectureType.java │ │ │ │ │ │ ├── query │ │ │ │ │ │ └── ListCourseQuery.java │ │ │ │ │ │ ├── QuestionDTO.java │ │ │ │ │ │ └── PublishStatus.java │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── TestApplication.java │ │ │ ├── web │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── TestApplication.java │ │ │ └── integration-events │ │ │ │ └── build.gradle │ │ ├── .github │ │ │ └── ISSUE_TEMPLATE │ │ │ │ └── custom.md │ │ ├── common │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── common │ │ │ │ │ └── domain │ │ │ │ │ ├── ValueObject.java │ │ │ │ │ └── AggregateRoot.java │ │ │ └── build.gradle.kts │ │ ├── users │ │ │ ├── web │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── TestApplication.java │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ ├── test │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── educational │ │ │ │ │ │ └── platform │ │ │ │ │ │ └── TestApplication.java │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── users │ │ │ │ │ └── RoleDTO.java │ │ │ └── integration-events │ │ │ │ └── build.gradle │ │ ├── course-reviews │ │ │ ├── web │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── educational │ │ │ │ │ │ └── platform │ │ │ │ │ │ └── TestApplication.java │ │ │ │ │ └── resources │ │ │ │ │ └── insert_data.sql │ │ │ ├── application │ │ │ │ └── src │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── TestApplication.java │ │ │ └── integration-events │ │ │ │ └── build.gradle │ │ └── course-enrollments │ │ │ ├── web │ │ │ └── src │ │ │ │ └── test │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── educational │ │ │ │ │ └── platform │ │ │ │ │ └── TestApplication.java │ │ │ │ └── resources │ │ │ │ └── insert_data.sql │ │ │ ├── application │ │ │ └── src │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── educational │ │ │ │ └── platform │ │ │ │ └── TestApplication.java │ │ │ └── integration-events │ │ │ └── build.gradle │ ├── 理念与实践介绍系列文章 │ │ ├── 2024~从腐化严重的 MVC 到 DDD 的轻量化重构.md │ │ ├── 2023~阿里 DDD 大佬:从 0 到 1,带大家精通 DDD.md │ │ └── 2022~领域驱动设计(DDD)架构演进和 DDD 的几种典型架构介绍(图文详解).md │ └── 2003~Eric Evan~《Domain-Driven Design: Tackling Complexity in the Heart of Software》 │ │ └── README.md ├── 04~DDD 框架实践 │ ├── Spring DDD 实战 │ │ └── 领域构建 │ │ │ └── README.md │ ├── 微服务中的 DDD 实践 │ │ └── 99~参考资料 │ │ │ └── 2023~基于 DDD 的微服务设计和开发实战.md │ └── ContextMapper │ │ └── README.md ├── 88~系统案例 │ ├── 2012~ddd-leaven-v2 │ │ └── codes │ │ │ ├── .gitignore │ │ │ ├── .vscode │ │ │ └── settings.json │ │ │ ├── diagrams │ │ │ ├── offer.png │ │ │ ├── invoicing.png │ │ │ ├── payments.png │ │ │ ├── purchase.png │ │ │ ├── equivalent.png │ │ │ ├── reservation.png │ │ │ └── OrderingService.png │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── pl │ │ │ └── com │ │ │ └── bottega │ │ │ └── ecommerce │ │ │ └── sales │ │ │ └── readmodel │ │ │ └── offer │ │ │ ├── OfferedProductDto.java │ │ │ ├── OfferQuery.java │ │ │ └── Offer.java │ ├── 2024~1.2K~ddd-hexagonal-cqrs-es-eda │ │ └── codes │ │ │ └── ddd-hexagonal-cqrs-es-eda │ │ │ ├── .gitignore │ │ │ ├── start.sh │ │ │ ├── telemetry-consumer │ │ │ ├── .gitignore │ │ │ ├── metrics │ │ │ │ └── model.go │ │ │ ├── bl-telemetry.docker.env │ │ │ └── Dockerfile │ │ │ ├── backend │ │ │ ├── .prettierignore │ │ │ ├── .prettierrc │ │ │ ├── src │ │ │ │ ├── api │ │ │ │ │ └── dto │ │ │ │ │ │ ├── update-email.dto.ts │ │ │ │ │ │ ├── complete-todo.dto.ts │ │ │ │ │ │ ├── add-todo.dto.ts │ │ │ │ │ │ └── register.dto.ts │ │ │ │ ├── bounded-contexts │ │ │ │ │ └── marketing │ │ │ │ │ │ └── marketing │ │ │ │ │ │ └── service │ │ │ │ │ │ └── index.ts │ │ │ │ └── lib │ │ │ │ │ └── bounded-contexts │ │ │ │ │ ├── marketing │ │ │ │ │ └── marketing │ │ │ │ │ │ ├── dtos │ │ │ │ │ │ └── increment-todos.dto.ts │ │ │ │ │ │ ├── structs │ │ │ │ │ │ └── send-email-request.struct.ts │ │ │ │ │ │ ├── tests │ │ │ │ │ │ └── __tests__ │ │ │ │ │ │ │ ├── todo-completed-integration │ │ │ │ │ │ │ └── todo-completed-integration.mock.ts │ │ │ │ │ │ │ ├── user-email-changed-integration │ │ │ │ │ │ │ └── user-email-changed.mock.ts │ │ │ │ │ │ │ └── user-registered-integration │ │ │ │ │ │ │ └── user-registered-integration.mock.ts │ │ │ │ │ │ ├── application │ │ │ │ │ │ ├── event-handlers │ │ │ │ │ │ │ └── domain │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── errors │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── ports │ │ │ │ │ │ └── user-write.repo-port.ts │ │ │ │ │ ├── todo │ │ │ │ │ └── todo │ │ │ │ │ │ ├── application │ │ │ │ │ │ ├── event-handlers │ │ │ │ │ │ │ ├── integration │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── query-handlers │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── errors │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── queries │ │ │ │ │ │ └── get-todos.query.ts │ │ │ │ │ └── iam │ │ │ │ │ └── authentication │ │ │ │ │ ├── dtos │ │ │ │ │ ├── register-command.dto.ts │ │ │ │ │ └── change-email-command.dto.ts │ │ │ │ │ ├── application │ │ │ │ │ ├── event-handlers │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── domain │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── command-handlers │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── domain │ │ │ │ │ └── rules │ │ │ │ │ └── index.ts │ │ │ ├── tsconfig.build.json │ │ │ └── nest-cli.json │ │ │ ├── frontend │ │ │ ├── src │ │ │ │ ├── react-app-env.d.ts │ │ │ │ ├── layouts │ │ │ │ │ ├── Auth │ │ │ │ │ │ ├── Layout.css │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── todo │ │ │ │ │ │ ├── Layout.css │ │ │ │ │ │ └── index.ts │ │ │ │ ├── pages │ │ │ │ │ ├── Home │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── page.tsx │ │ │ │ │ ├── Login │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── Register │ │ │ │ │ │ └── index.tsx │ │ │ │ ├── components │ │ │ │ │ ├── Header │ │ │ │ │ │ └── Header.css │ │ │ │ │ ├── Todo │ │ │ │ │ │ ├── Entry │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── Panel │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── Heading │ │ │ │ │ │ └── Heading.css │ │ │ │ ├── infra │ │ │ │ │ └── repositories │ │ │ │ │ │ ├── iam │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── todo │ │ │ │ │ │ └── index.ts │ │ │ │ ├── models │ │ │ │ │ ├── User.ts │ │ │ │ │ └── Todo.ts │ │ │ │ ├── assets │ │ │ │ │ └── bitloops_175x40_transparent.png │ │ │ │ └── config │ │ │ │ │ └── index.ts │ │ │ ├── public │ │ │ │ ├── robots.txt │ │ │ │ └── favicon.ico │ │ │ ├── .prettierrc │ │ │ ├── .vscode │ │ │ │ └── settings.json │ │ │ ├── .eslintignore │ │ │ └── .prettierignore │ │ │ ├── envoy │ │ │ ├── README.md │ │ │ ├── Dockerfile │ │ │ └── package-lock.json │ │ │ ├── k8s │ │ │ ├── namespace-bitloops.yaml │ │ │ ├── configmap-bl-grafana-config.yaml │ │ │ ├── secret-bl-postgres-secret.yaml │ │ │ ├── pvc-bl-mongo-data.yaml │ │ │ ├── pvc-bl-nats-data.yaml │ │ │ ├── pvc-bl-grafana-data.yaml │ │ │ ├── pvc-bl-postgres-data.yaml │ │ │ ├── pvc-bl-prometheus-data.yaml │ │ │ ├── service-bl-envoy.yaml │ │ │ ├── service-bl-grafana.yaml │ │ │ ├── service-bl-mongo.yaml │ │ │ ├── service-bl-postgres.yaml │ │ │ ├── service-bl-prometheus.yaml │ │ │ ├── service-todo-frontend.yaml │ │ │ ├── service-bl-pushgateway.yaml │ │ │ └── service-bl-telemetry-consumer.yaml │ │ │ ├── grafana │ │ │ └── config │ │ │ └── K8s.md │ ├── Modular Monolith with DDD │ │ └── README.md │ ├── 2023~DDD-Clean-Architecture │ │ └── codes │ │ │ └── gsaaraujo~DDD-Clean-Architecture-backend │ │ │ ├── example.env.test │ │ │ ├── src │ │ │ ├── modules │ │ │ │ ├── core │ │ │ │ │ ├── domain │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ └── replace.ts │ │ │ │ │ │ └── errors │ │ │ │ │ │ │ ├── domain-error.ts │ │ │ │ │ │ │ └── application-error.ts │ │ │ │ │ └── tests │ │ │ │ │ │ └── mocks │ │ │ │ │ │ ├── mock-domain-error.ts │ │ │ │ │ │ ├── mock-base-error.ts │ │ │ │ │ │ ├── mock-application-error.ts │ │ │ │ │ │ └── mock-unexpected-error.ts │ │ │ │ └── agreements │ │ │ │ │ ├── application │ │ │ │ │ ├── repositories │ │ │ │ │ │ └── notification-repository.ts │ │ │ │ │ ├── services │ │ │ │ │ │ └── notification-service.ts │ │ │ │ │ └── errors │ │ │ │ │ │ ├── party-not-found-error.ts │ │ │ │ │ │ └── agreement-not-found-error.ts │ │ │ │ │ └── domain │ │ │ │ │ └── errors │ │ │ │ │ ├── characters-limit-error.ts │ │ │ │ │ ├── item-amount-limit-error.ts │ │ │ │ │ └── currency-amount-limit-error.ts │ │ │ ├── app.module.ts │ │ │ └── main.ts │ │ │ ├── example.env.development │ │ │ ├── prisma │ │ │ └── migrations │ │ │ │ ├── 20230201013418_remove_unique_from_user_password │ │ │ │ └── migration.sql │ │ │ │ └── migration_lock.toml │ │ │ ├── tsconfig.build.json │ │ │ ├── .prettierrc │ │ │ ├── nest-cli.json │ │ │ ├── github │ │ │ └── assets │ │ │ │ └── structure.png │ │ │ └── Dockerfile │ ├── Domain-Driven Design Starter Modelling Process │ │ └── README.md │ └── 2024~11.9K~Sairyss~Domain Driven Hexagonal │ │ └── README.md └── 02~DDD 战略设计 │ └── README.md └── .gitattributes /.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /整洁架构/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /六边形架构/UDLMA/扩展/反应式.md: -------------------------------------------------------------------------------- 1 | # 反应点 2 | -------------------------------------------------------------------------------- /六边形架构/UDLMA/扩展/扩展点.md: -------------------------------------------------------------------------------- 1 | # 扩展点 2 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2021~《复杂软件设计之道:领域渠驱动设计》/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /领域驱动设计/04~DDD 框架实践/Spring DDD 实战/领域构建/README.md: -------------------------------------------------------------------------------- 1 | # 领域驱动设计在 Spring 中的实践 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.xmind filter=lfs diff=lfs merge=lfs -text 2 | *.pdf filter=lfs diff=lfs merge=lfs -text 3 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /.settings 3 | /.classpath 4 | /.project 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | */.env 3 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/README.md: -------------------------------------------------------------------------------- 1 | > [原文地址](https://juejin.cn/post/7004002483601145863) 2 | 3 | # DDD 系列文章 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/framework/src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/framework/src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/framework/src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/framework/src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "java.compile.nullAnalysis.mode": "automatic" 3 | } 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/start.sh: -------------------------------------------------------------------------------- 1 | docker compose -p bitloops-todo-app up -d -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-infrastructure/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /六边形架构/UDLMA/RARF/AARF.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/六边形架构/UDLMA/RARF/AARF.vsdx -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/telemetry-consumer/.gitignore: -------------------------------------------------------------------------------- 1 | __debug_bin 2 | .vscode/launch.json 3 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/mrcode~DDD 实战课/README.md: -------------------------------------------------------------------------------- 1 | > [原文地址](https://zq99299.github.io/note-book2/ddd/#%E6%8E%A8%E8%8D%90%E9%98%85%E8%AF%BB) 2 | 3 | # DDD 实战课 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore autogenerated files 2 | **/generated/*.* -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/application/src/main/java/dev/davivieira/topologyinventory/application/Test.java: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /六边形架构/COLA/99~参考资料/2022~COLA 4.0:应用架构的最佳实践.md: -------------------------------------------------------------------------------- 1 | > [原文地址](https://blog.csdn.net/significantfrank/article/details/110934799) TODO! 2 | 3 | # COLA 4.0:应用架构的最佳实践 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/layouts/Auth/Layout.css: -------------------------------------------------------------------------------- 1 | .layout_auth { 2 | margin-top: 50px; 3 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/layouts/todo/Layout.css: -------------------------------------------------------------------------------- 1 | .layout_home { 2 | margin-top: 50px; 3 | } -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-start/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | application: 5 | name: bank -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/Modular Monolith with DDD/README.md: -------------------------------------------------------------------------------- 1 | # Modular Monolith with DDD 2 | 3 | Full Modular Monolith .NET application with Domain-Driven Design approach. 4 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/README.md: -------------------------------------------------------------------------------- 1 | # dddbook 2 | 3 | 领域驱动设计 Demo 4 | 5 | [参考文章](https://yq.aliyun.com/articles/719251?utm_content=g_1000078181) 6 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/security/config/src/main/resources/application-security.properties: -------------------------------------------------------------------------------- 1 | com.educational.platform.security.enabled=true 2 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | /.idea 3 | 4 | .gradle 5 | build 6 | 7 | .classpath 8 | .project 9 | bin/ 10 | .settings -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/envoy/README.md: -------------------------------------------------------------------------------- 1 | # HOW TO 2 | 3 | https://www.envoyproxy.io/docs/envoy/latest/start/docker 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/example.env.test: -------------------------------------------------------------------------------- 1 | DATABASE_URL=postgresql://DB_USER:DB_PASSWORD@yom-db-tests:DB_PORT/DB_NAME -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/namespace-bitloops.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: bitloops -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/security/config/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation 'org.springframework.boot:spring-boot-starter-security' 3 | } 4 | -------------------------------------------------------------------------------- /领域驱动设计/04~DDD 框架实践/微服务中的 DDD 实践/99~参考资料/2023~基于 DDD 的微服务设计和开发实战.md: -------------------------------------------------------------------------------- 1 | # [2023~基于 DDD 的微服务设计和开发实战](https://github.com/burningmyself/burningmyself.github.io/blob/master/docs/micro/ddd.md) 2 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/core/domain/helpers/replace.ts: -------------------------------------------------------------------------------- 1 | export type Replace = Omit & R; 2 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "tabWidth": 2 5 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/api/dto/update-email.dto.ts: -------------------------------------------------------------------------------- 1 | export interface UpdateEmailDTO { 2 | email: string; 3 | } 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/pages/Home/index.tsx: -------------------------------------------------------------------------------- 1 | import HomePage from './page'; 2 | 3 | export default HomePage; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/pages/Login/index.tsx: -------------------------------------------------------------------------------- 1 | import Login from './controller'; 2 | 3 | export default Login; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/example.env.development: -------------------------------------------------------------------------------- 1 | DATABASE_URL=postgresql://DB_USER:DB_PASSWORD@yom-db-development:DB_PORT/DB_NAME -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/api/dto/complete-todo.dto.ts: -------------------------------------------------------------------------------- 1 | export interface CompleteTodoDto { 2 | todoId: string; 3 | } 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/bounded-contexts/marketing/marketing/service/index.ts: -------------------------------------------------------------------------------- 1 | export * from './mock-email.service'; 2 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/pages/Register/index.tsx: -------------------------------------------------------------------------------- 1 | import Register from './controller'; 2 | 3 | export default Register; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/grafana/config: -------------------------------------------------------------------------------- 1 | GF_SECURITY_ADMIN_USER=admin 2 | GF_SECURITY_ADMIN_PASSWORD=changeme 3 | GF_USERS_ALLOW_SIGN_UP=false -------------------------------------------------------------------------------- /六边形架构/UDLMA/RARF/2014~RFDR:基于 REST 风格与分布式资源抽象的全栈应用软件架构模式.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/六边形架构/UDLMA/RARF/2014~RFDR:基于 REST 风格与分布式资源抽象的全栈应用软件架构模式.doc -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/offer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/offer.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/invoicing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/invoicing.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/payments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/payments.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/purchase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/purchase.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/components/Header/Header.css: -------------------------------------------------------------------------------- 1 | .logout_button { 2 | position: absolute; 3 | top: 20px; 4 | right: 20px; 5 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/application/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module application { 2 | requires domain; 3 | requires static lombok; 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/equivalent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/equivalent.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/reservation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/reservation.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/components/Todo/Entry/index.ts: -------------------------------------------------------------------------------- 1 | import TodoEntry from './TodoEntryController'; 2 | 3 | export default TodoEntry; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/components/Todo/Panel/index.ts: -------------------------------------------------------------------------------- 1 | import TodoPanel from './TodoPanelController'; 2 | 3 | export default TodoPanel; 4 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 基础工具包,与业务逻辑毫无关系的工具包 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.base; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'spring-boot-hexagonal-architecture' 2 | include 'coffeeshop-application' 3 | include 'coffeeshop-infrastructure' 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/layouts/todo/index.ts: -------------------------------------------------------------------------------- 1 | import DashboardLayout from './TodoLayoutController'; 2 | 3 | export default DashboardLayout; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/OrderingService.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/diagrams/OrderingService.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/prisma/migrations/20230201013418_remove_unique_from_user_password/migration.sql: -------------------------------------------------------------------------------- 1 | -- DropIndex 2 | DROP INDEX "User_password_key"; 3 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/infra/repositories/iam/index.ts: -------------------------------------------------------------------------------- 1 | import { IamRepository } from './IamRepository'; 2 | 3 | export default IamRepository; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/infra/repositories/todo/index.ts: -------------------------------------------------------------------------------- 1 | import TodoRepository from './TodoRepository'; 2 | 3 | export default TodoRepository; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/models/User.ts: -------------------------------------------------------------------------------- 1 | export type User = { 2 | id: string; 3 | name?: string; 4 | email?: string; 5 | jwt: string; 6 | }; 7 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-domain/src/main/java/com/example/bank/exception/AccountNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.exception; 2 | 3 | public class AccountNotFoundException { 4 | } 5 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter01/src/main/java/dev/davivieira/domain/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE 6 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/layouts/Auth/index.ts: -------------------------------------------------------------------------------- 1 | import AuthLayoutController from './AuthLayoutController'; 2 | 3 | export default AuthLayoutController; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "tabWidth": 2, 4 | "printWidth": 100, 5 | "singleQuote": true, 6 | "trailingComma": "all" 7 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/dtos/increment-todos.dto.ts: -------------------------------------------------------------------------------- 1 | export interface IncrementTodosDTO { 2 | userId: string; 3 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/todo/todo/application/event-handlers/integration/index.ts: -------------------------------------------------------------------------------- 1 | export const StreamingIntegrationEventHandlers = []; 2 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/models/Todo.ts: -------------------------------------------------------------------------------- 1 | type Todo = { 2 | id: string; 3 | title: string; 4 | isCompleted: boolean; 5 | }; 6 | 7 | export default Todo; 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/java/dev/davivieira/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/java/dev/davivieira/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/domain/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module domain { 2 | requires transitive inventory_core_domain; 3 | requires transitive status_sub_domain; 4 | } -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/architecture_tests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/architecture_tests.png -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/integration_events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/integration_events.png -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/ability/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 按照聚合能力进行分包 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.application.ability; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-domain/src/main/java/com/baiyan/ddd/domain/aggregate/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 以业务聚合为划分包的标准进行包的划分 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.domain.aggregate; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-domain/src/main/java/com/baiyan/ddd/domain/share/enums/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 系统的所有枚举应该是共享的 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.domain.share.enums; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-interaction/src/main/java/com/baiyan/ddd/interaction/config/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 用户交互层统一配置 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.interaction.config; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-interaction/src/main/java/com/baiyan/ddd/interaction/mq/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * mq消费者入口,逻辑在应用服务中编排实现 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.interaction.mq; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter01/src/main/resources/routers.txt: -------------------------------------------------------------------------------- 1 | ca23800e-9b5a-11eb-a8b3-0242ac130003;EDGE 2 | 63fdd9ff-242f-4842-993a-7651b5d33e14;EDGE 3 | 81579b05-4b4e-4b9b-91f4-75a5a8561296;CORE -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/java/dev/davivieira/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/java/dev/davivieira/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/java/dev/davivieira/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/java/dev/davivieira/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/framework/README.md: -------------------------------------------------------------------------------- 1 | # Project dev.davivieira/framework 2 | 3 | Build the project and run all tests with `./mvnw package` or `mvnw.cmd package` for Windows. 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/src/main/java/pl/com/bottega/ecommerce/sales/readmodel/offer/OfferedProductDto.java: -------------------------------------------------------------------------------- 1 | package pl.com.bottega.ecommerce.sales.readmodel.offer; 2 | 3 | public class OfferedProductDto { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/nest-cli.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/nest-cli", 3 | "collection": "@nestjs/schematics", 4 | "sourceRoot": "src" 5 | } 6 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-domain/src/main/java/com/example/bank/exception/DailyLimitExceededException.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.exception; 2 | 3 | public class DailyLimitExceededException extends Throwable { 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-domain/src/main/java/com/example/bank/exception/InsufficientFundsException.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.exception; 2 | 3 | public class InsufficientFundsException extends Exception{ 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/bounded_context_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/bounded_context_map.png -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/config/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 通用系统配置 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.infrastructure.config; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/constant/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 系统常量 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.infrastructure.constant; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-interaction/src/main/java/com/baiyan/ddd/interaction/controller/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * web请求 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.interaction.controller; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/resources/routers.txt: -------------------------------------------------------------------------------- 1 | ca23800e-9b5a-11eb-a8b3-0242ac130003;EDGE 2 | 63fdd9ff-242f-4842-993a-7651b5d33e14;EDGE 3 | 81579b05-4b4e-4b9b-91f4-75a5a8561296;CORE 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/resources/routers.txt: -------------------------------------------------------------------------------- 1 | ca23800e-9b5a-11eb-a8b3-0242ac130003;EDGE 2 | 63fdd9ff-242f-4842-993a-7651b5d33e14;EDGE 3 | 81579b05-4b4e-4b9b-91f4-75a5a8561296;CORE 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/resources/routers.txt: -------------------------------------------------------------------------------- 1 | ca23800e-9b5a-11eb-a8b3-0242ac130003;EDGE 2 | 63fdd9ff-242f-4842-993a-7651b5d33e14;EDGE 3 | 81579b05-4b4e-4b9b-91f4-75a5a8561296;CORE 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/resources/routers.txt: -------------------------------------------------------------------------------- 1 | ca23800e-9b5a-11eb-a8b3-0242ac130003;EDGE 2 | 63fdd9ff-242f-4842-993a-7651b5d33e14;EDGE 3 | 81579b05-4b4e-4b9b-91f4-75a5a8561296;CORE 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/envoy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM envoyproxy/envoy-dev:52e6304c2251308d7970d7d8f59216b921772b21 2 | COPY envoy.yaml /etc/envoy/envoy.yaml 3 | RUN chmod go+r /etc/envoy/envoy.yaml -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/global_module_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/global_module_structure.png -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/ability/share/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 共享工具包 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.application.ability.share; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-domain/src/main/java/com/baiyan/ddd/domain/aggregate/user/event/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 用户领域事件 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.domain.aggregate.user.event; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/db/mapper/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * dao层处理 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.infrastructure.db.mapper; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/java/dev/davivieira/domain/vo/ParsePolicyType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum ParsePolicyType { 4 | REGEX, 5 | SPLIT 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/java/dev/davivieira/domain/vo/ParsePolicyType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum ParsePolicyType { 4 | REGEX, 5 | SPLIT; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/domain/vo/ParsePolicyType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum ParsePolicyType { 4 | REGEX, 5 | SPLIT 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/domain/vo/ParsePolicyType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.vo; 2 | 3 | public enum ParsePolicyType { 4 | REGEX, 5 | SPLIT 6 | } 7 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/example-1.png -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/example-2.png -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-types/src/main/java/com/example/bank/exception/InvalidCurrencyException.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.exception; 2 | 3 | public class InvalidCurrencyException extends IllegalArgumentException{ 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/99~参考资料/2023~educational-platform-monolith/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-domain/src/main/java/com/baiyan/ddd/domain/aggregate/role/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 角色聚合仅为了展示领域服务的用法,不过多增加类 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.domain.aggregate.role; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-domain/src/main/java/com/baiyan/ddd/domain/aggregate/user/constant/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 用户领域常量 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.domain.aggregate.user.constant; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-domain/src/main/java/com/baiyan/ddd/domain/share/valueobject/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 值对象无生命周期,仅为数据载体,共享 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.domain.share.valueobject; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/mq/producer/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * mq生产者工具类 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.infrastructure.mq.producer; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/shared/Size.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.shared; 2 | 3 | public enum Size { 4 | SMALL, 5 | LARGE 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/framework/src/main/java/dev/davivieira/App.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira; 2 | 3 | 4 | public class App { 5 | public static void main(String... args){ 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/framework/src/main/java/dev/davivieira/App.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira; 2 | 3 | 4 | public class App { 5 | public static void main(String... args){ 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/framework/src/main/java/dev/davivieira/App.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira; 2 | 3 | 4 | public class App { 5 | public static void main(String... args){ 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/framework/src/main/java/dev/davivieira/App.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira; 2 | 3 | 4 | public class App { 5 | public static void main(String... args){ 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/entity/DeviceType.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.entity; 2 | 3 | public enum DeviceType { 4 | 5 | ADSL, 6 | FIBRE; 7 | 8 | } 9 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/iam/authentication/dtos/register-command.dto.ts: -------------------------------------------------------------------------------- 1 | export interface RegisterCommandDTO { 2 | email: string; 3 | password: string; 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/administration/web/src/test/resources/insert_data.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM course_proposal; 2 | 3 | INSERT INTO course_proposal (uuid, status) VALUES ('123E4567E89B12D3A456426655440001', 'WAITING_FOR_APPROVAL'); 4 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/courses/application/src/main/java/com/educational/platform/courses/course/LectureType.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.courses.course; 2 | 3 | public enum LectureType { 4 | 5 | TEXT 6 | 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/command/cmd/user/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 用户聚合增删改指令包 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.application.command.cmd.user; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-interaction/src/main/java/com/baiyan/ddd/interaction/api/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * rpc实现,很薄的一层,类似于controller,rpc请求方法入口 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.interaction.api; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-interaction/src/main/java/com/baiyan/ddd/interaction/handler/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 其他业务域发布的领域事件,当前业务域需要感知时的入口 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.interaction.handler; -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/example-domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/example-domain.png -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/testing-strategy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/testing-strategy.png -------------------------------------------------------------------------------- /领域驱动设计/04~DDD 框架实践/ContextMapper/README.md: -------------------------------------------------------------------------------- 1 | # ContextMapper 2 | 3 | ContextMapper 是一个开源项目,主要是为 DDD 设计提供 DSL 支持,如 DDD 的战略(Strategic)设计,Context 间映射(Context Mapping),BoundedContext 建模以及服务解耦(Service Decomposition),那么我们就看一下如何基于 ContextMapper 来完成一个项目基于 DDD DSL 的表达。 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (i.e. Git) 3 | provider = "postgresql" -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/iam/authentication/dtos/change-email-command.dto.ts: -------------------------------------------------------------------------------- 1 | export interface ChangeEmailCommandDTO { 2 | email: string; 3 | userId: string; 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "printWidth": 100, 4 | "tabWidth": 2, 5 | "useTabs": false, 6 | "semi": true, 7 | "trailingComma": "es5" 8 | } 9 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/business_submodules_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/business_submodules_structure.png -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/query/model/user/qry/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * CQRS 查询条件 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.application.query.model.user.qry; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter15/layered/src/main/java/dev/davivieira/layered/service/dto/UserDto.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.layered.service.dto; 2 | 3 | public record UserDto (String email, String password) {} 4 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/telemetry-consumer/metrics/model.go: -------------------------------------------------------------------------------- 1 | package metrics 2 | 3 | type MetricEvent struct { 4 | MetricName string `json:"name"` 5 | MetricCategory string `json:"category"` 6 | } 7 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-interaction/src/main/java/com/baiyan/ddd/interaction/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 用户交互层,一切外来影响系统内聚合的均视为用户行为 3 | * mq,web请求,rpc请求均为用户行为 4 | * 5 | * @author baiyan 6 | */ 7 | package com.baiyan.ddd.interaction; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/shared/Location.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.shared; 2 | 3 | public enum Location { 4 | TAKE_AWAY, 5 | IN_STORE 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/shared/Milk.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.shared; 2 | 3 | public enum Milk { 4 | WHOLE, 5 | SKIMMED, 6 | SOY 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/query/assembler/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 查询结果来源于多方服务,最后数据需要解析组合的动作在此执行 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.application.query.assembler; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/query/model/user/dto/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * CQRS 的 Return-DTO 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.application.query.model.user.dto; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/db/model/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 数据库表实体映射,mybatis实体字段与表结构字段一一对应 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.infrastructure.db.model; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/k8s/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: topology-inventory 5 | data: 6 | QUARKUS_DATASOURCE_REACTIVE_URL: "mysql://topology-inventory-mysql:3306/inventory" -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/k8s/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: topology-inventory 5 | data: 6 | QUARKUS_DATASOURCE_REACTIVE_URL: "mysql://topology-inventory-mysql:3306/inventory" -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/k8s/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: topology-inventory 5 | data: 6 | QUARKUS_DATASOURCE_REACTIVE_URL: "mysql://topology-inventory-mysql:3306/inventory" -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/api/dto/add-todo.dto.ts: -------------------------------------------------------------------------------- 1 | import { IsString, IsNotEmpty } from 'class-validator'; 2 | 3 | export class AddTodoDto { 4 | @IsNotEmpty() 5 | @IsString() 6 | title: string; 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/todo/todo/application/query-handlers/index.ts: -------------------------------------------------------------------------------- 1 | import { GetTodosHandler } from './get-todos.handler'; 2 | 3 | export const QueryHandlers = [GetTodosHandler]; 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/shared/Drink.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.shared; 2 | 3 | public enum Drink { 4 | LATTE, 5 | ESPRESSO, 6 | CAPPUCCINO 7 | } 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter06/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter06/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/build.gradle: -------------------------------------------------------------------------------- 1 | description = "Entities (domain objects) and uses cases that implement the business logic" 2 | 3 | dependencies { 4 | compile libs.string_utils 5 | 6 | testCompile libs.unit_tests 7 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/telemetry-consumer/bl-telemetry.docker.env: -------------------------------------------------------------------------------- 1 | PROMETHEUS_URL=http://prometheus:9090 2 | JAEGER_URL=http://jaeger:14268/api/traces 3 | PUSH_GATEWAY_URL=http://pushgateway:9091 4 | NATS_URL=nats:4222 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/MarkerInterface.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 标记接口 5 | * 6 | * @author baiyan 7 | */ 8 | public interface MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/理念与实践介绍系列文章/2024~从腐化严重的 MVC 到 DDD 的轻量化重构.md: -------------------------------------------------------------------------------- 1 | > [原文地址](https://mp.weixin.qq.com/s?src=11×tamp=1723182241&ver=5433&signature=dHKk8xKRcPQZ4p31*t-k6FpBqU95qx7n1I0aK-9iEXWiB0XjYmvT-QFZ7mhI4SLALdS5Rlnp*5kKDhuZGsrIIKzMPwYyhgRnATQp3VE7xj1iBtv4RMCCpXHQdjKnUVxY&new=1) 2 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/application/out/OrderNotFound.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.application.out; 2 | 3 | public class OrderNotFound extends RuntimeException { } 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/application/usecases/NotifyEventUseCase.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.application.usecases; 2 | 3 | public interface NotifyEventUseCase { 4 | 5 | String getEvent(); 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter06/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/clean-architecture-diagram-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/clean-architecture-diagram-1.png -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/clean-architecture-diagram-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/docs/images/clean-architecture-diagram-2.png -------------------------------------------------------------------------------- /领域驱动设计/02~DDD 战略设计/README.md: -------------------------------------------------------------------------------- 1 | # 领域划分 2 | 3 | 在进行业务架构设计时,我们需要进行业务域的划分。能否划分出合理、稳定、可持续发展的业务域对于未来平台的发展可谓至关重要。通过事件风暴建立领域模型,合理划分领域逻辑和物理边界,建立领域对象及服务矩阵和服务架构图,定义符合 DDD 分层架构思想的代码结构模型,保证业务模型与代码模型的一致性。通过上述设计思想、方法和过程,指导团队按照 DDD 设计思想完成微服务设计和开发。梳理业务事件,然后将领域对象、业务事件,根据创建者、单一职责、高内聚和松耦合进行归纳分类,最终确定领域边界。 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/structs/send-email-request.struct.ts: -------------------------------------------------------------------------------- 1 | export type SendEmailRequest = { 2 | origin: string; 3 | destination: string; 4 | content: string; 5 | }; 6 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/common/src/main/java/com/educational/platform/common/domain/ValueObject.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.common.domain; 2 | 3 | /** 4 | * Represents Value Object marker. 5 | */ 6 | public interface ValueObject { 7 | } 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/k8s/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: topology-inventory 5 | type: Opaque 6 | data: 7 | QUARKUS_DATASOURCE_USERNAME: cm9vdAo= 8 | QUARKUS_DATASOUCE_PASSWORD: cGFzc3dvcmQK -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/k8s/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: topology-inventory 5 | type: Opaque 6 | data: 7 | QUARKUS_DATASOURCE_USERNAME: cm9vdAo= 8 | QUARKUS_DATASOUCE_PASSWORD: cGFzc3dvcmQK -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/k8s/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: topology-inventory 5 | type: Opaque 6 | data: 7 | QUARKUS_DATASOURCE_USERNAME: cm9vdAo= 8 | QUARKUS_DATASOUCE_PASSWORD: cGFzc3dvcmQK -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2023~Understanding Clean Architecture and Domain-Driven Design (DDD).md: -------------------------------------------------------------------------------- 1 | > [This article](https://medium.com/bimar-teknoloji/understanding-clean-architecture-and-domain-driven-design-ddd-24e89caabc40) 2 | 3 | # Understanding Clean Architecture and Domain-Driven Design (DDD) 4 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/common/src/main/java/com/educational/platform/common/domain/AggregateRoot.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.common.domain; 2 | 3 | /** 4 | * Represents Aggregate Root marker. 5 | */ 6 | public interface AggregateRoot { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/Ability.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 能力层标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface Ability extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/Adapter.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 适配器标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface Adapter extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/Entity.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 实体标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface Entity extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/Factory.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 工厂类标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface Factory extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/db/repository/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 聚合仓储逻辑,除非特殊业务需求,否则仓储内仅保留save,delete,byId方法 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.infrastructure.db.repository; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/domain/status-sub-domain/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module status_sub_domain { 2 | exports dev.davivieira.topologyinventory.status; 3 | requires inventory_core_domain; 4 | requires static lombok; 5 | } 6 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/job/OnFailure.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.job; 2 | 3 | @FunctionalInterface 4 | public interface OnFailure { 5 | 6 | void auditFailure(); 7 | 8 | } 9 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/job/OnSuccess.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.job; 2 | 3 | @FunctionalInterface 4 | public interface OnSuccess { 5 | 6 | void auditSuccess(); 7 | 8 | } 9 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/tests/__tests__/todo-completed-integration/todo-completed-integration.mock.ts: -------------------------------------------------------------------------------- 1 | export const SUCCESS_CASE = { 2 | userId: '123', 3 | todoId: 'todo1', 4 | }; 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/ability/user/assembler/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 不同能力互相调用时,Command存在互相转化,通过assembler转化 3 | * 4 | * @author baiyan 5 | */ 6 | package com.baiyan.ddd.application.ability.user.assembler; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/Command.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 增删改指令标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface Command extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/Interface.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 灰度层标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface Interface extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter15/hexagonal/src/main/java/dev/davivieira/hexagonal/framework/adapters/input/dto/UserDto.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.hexagonal.framework.adapters.input.dto; 2 | 3 | public record UserDto (String email, String password) {} 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/domain/inventory-core-domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Protocol.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Protocol { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/public/favicon.ico -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/components/Heading/Heading.css: -------------------------------------------------------------------------------- 1 | .logo { 2 | margin-left: auto; 3 | margin-right: auto; 4 | } 5 | 6 | .title { 7 | font-size: 1.4rem; 8 | font-weight: 300; 9 | text-align: center; 10 | } -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/rpc/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 这里仅为demo,无任何实际业务含义,演示为这是依赖的三方的rpc接口,正常这个应该是 3 | * 微服务提供方给出的api包内的方法定义 4 | * 5 | * @author baiyan 6 | */ 7 | package com.baiyan.ddd.infrastructure.rpc; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/domain/inventory-core-domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/RouterType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum RouterType { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/nest-cli.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/nest-cli", 3 | "collection": "@nestjs/schematics", 4 | "sourceRoot": "src", 5 | "compilerOptions": { 6 | "deleteOutDir": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/iam/authentication/application/event-handlers/index.ts: -------------------------------------------------------------------------------- 1 | import { StreamingDomainEventHandlers } from './domain'; 2 | 3 | export const EventHandlers = [...StreamingDomainEventHandlers]; 4 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/tests/__tests__/user-email-changed-integration/user-email-changed.mock.ts: -------------------------------------------------------------------------------- 1 | export const SUCCESS_CASE = { 2 | userId: '123', 3 | email: 'user@bitloops.com', 4 | }; 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/users/web/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-application/src/main/java/com/baiyan/ddd/application/query/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 查询应用服务 3 | * 4 | * 纯DB查询直接在查询应用服务中处理即可,查询逻辑涉及到Mysq,ES,Redis等多个 5 | * 存储介质的则使用查询仓储 6 | * 7 | * @author baiyan 8 | */ 9 | package com.baiyan.ddd.application.query; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/AggregateRoot.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 聚合根标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface AggregateRoot extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/DomainService.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 领域服务标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface DomainService extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/Representation.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 返回实体标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface Representation extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-domain/src/main/java/com/baiyan/ddd/domain/share/exception/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 领域逻辑异常,领域层与应用层都有可能用到的, 3 | * 且不具备业务领域大的特殊含义,仅做领域异常标记, 4 | * 因此不单独放置在应用与领域层 5 | * 6 | * @author baiyan 7 | */ 8 | package com.baiyan.ddd.domain.share.exception; -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/理念与实践介绍系列文章/2023~阿里 DDD 大佬:从 0 到 1,带大家精通 DDD.md: -------------------------------------------------------------------------------- 1 | > [阿里 DDD 大佬:从 0 到 1,带大家精通 DDD](https://mp.weixin.qq.com/s?src=11×tamp=1723182241&ver=5433&signature=1zwxTn9XspAhQJbfLfNBjdrCnurfDM3IFi7rV*cEXBmWkU-bj-ygFpQd*4O3ltWSZBzUH8tucvjb7bWlMKYb8qtyFWa-44Lkivp4d0ouW*h-7naWJVjqcRXEA5swi4QE&new=1) 2 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter06/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter15/hexagonal/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.datasource.db-kind=h2 2 | quarkus.datasource.jdbc.url=jdbc:h2:mem:default;DB_CLOSE_DELAY=-1.;NON_KEYWORDS=user 3 | quarkus.hibernate-orm.database.generation = drop-and-create -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter15/layered/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.datasource.db-kind=h2 2 | quarkus.datasource.jdbc.url=jdbc:h2:mem:default;DB_CLOSE_DELAY=-1.;NON_KEYWORDS=user 3 | quarkus.hibernate-orm.database.generation = drop-and-create -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/domain/inventory-core-domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/SwitchType.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum SwitchType { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/tests/__tests__/user-registered-integration/user-registered-integration.mock.ts: -------------------------------------------------------------------------------- 1 | export const SUCCESS_CASE = { 2 | userId: '123', 3 | email: 'user@bitloops.com', 4 | }; 5 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2003~Eric Evan~《Domain-Driven Design: Tackling Complexity in the Heart of Software》/README.md: -------------------------------------------------------------------------------- 1 | # Domain-Driven Design: Tackling Complexity in the Heart of Software 2 | 3 | - [UML Diagram for the DDD Example in Evans' Book](https://github.com/takaakit/uml-diagram-for-ddd-example-in-evans-book) 4 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/common/build.gradle.kts: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api("org.axonframework", "axon-spring-boot-starter", Versions.axon) { 3 | exclude(group = "org.axonframework", module = "axon-server-connector") 4 | } 5 | 6 | runtimeOnly("com.h2database", "h2") 7 | } -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/courses/web/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-rpc/src/main/java/com.baiyan.ddd.rpc/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * api包对应的rpc定义出,以openFeign为准,可以参考博主的另一个通用框架项目对此包的解释 3 | * 4 | * https://github.com/louyanfeng25/common-frame 5 | * 6 | * @author baiyan 7 | */ 8 | package com.baiyan.ddd.rpc; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/web/images/topology_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/web/images/topology_logo.png -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/exchange/getcapacity/ExchangeNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.exchange.getcapacity; 2 | 3 | public class ExchangeNotFoundException extends RuntimeException { 4 | } 5 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/dataproviders/build.gradle: -------------------------------------------------------------------------------- 1 | description = "Retrieve data from whatever source (db, 3rd party, etc.)" 2 | 3 | dependencies { 4 | compile project(":application:core") 5 | compile libs.database 6 | 7 | testCompile libs.unit_tests 8 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/github/assets/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/github/assets/structure.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/K8s.md: -------------------------------------------------------------------------------- 1 | # Deploying on Kubernetes 2 | 3 | Run the following script after making sure you have added the appropriate secrets to your configuration files located in the k8s folder: 4 | 5 | ```bash 6 | ./apply_k8s_files.sh 7 | ``` 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/configmap-bl-grafana-config.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: bl-grafana-config 5 | namespace: bitloops 6 | # data: 7 | # Add the contents of the Grafana config file here as key-value pairs 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/secret-bl-postgres-secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: bl-postgres-secret 5 | namespace: bitloops 6 | stringData: 7 | POSTGRES_PASSWORD: postgres 8 | POSTGRES_DB: iam 9 | POSTGRES_USER: user -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-domain/src/main/java/com/example/bank/messaging/AuditMessageProducer.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.messaging; 2 | 3 | import com.example.bank.domain.types.AuditMessage; 4 | 5 | public interface AuditMessageProducer { 6 | void send(AuditMessage message); 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-types/src/main/java/com/example/bank/exception/BusinessException.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.exception; 2 | 3 | public class BusinessException extends Exception{ 4 | 5 | public BusinessException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-reviews/web/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/courses/application/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/users/application/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/ApplicationService.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 应用服务标记 5 | * 6 | * @author baiyan 7 | */ 8 | public interface ApplicationService extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/resources/events.txt: -------------------------------------------------------------------------------- 1 | 00:44:06.906367 IP6 casanova.58183 > menuvivofibra.br.domain: 64865+ PTR? 1.0.0.224.in-addr.arpa. (40) 2 | 00:44:06.912775 IP6 menuvivofibra.br.domain > casanova.58183: 64865 1/0/0 PTR all-systems.mcast.net. (75) -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/resources/events.txt: -------------------------------------------------------------------------------- 1 | 00:44:06.906367 IP6 casanova.58183 > menuvivofibra.br.domain: 64865+ PTR? 1.0.0.224.in-addr.arpa. (40) 2 | 00:44:06.912775 IP6 menuvivofibra.br.domain > casanova.58183: 64865 1/0/0 PTR all-systems.mcast.net. (75) -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/resources/events.txt: -------------------------------------------------------------------------------- 1 | 00:44:06.906367 IP6 casanova.58183 > menuvivofibra.br.domain: 64865+ PTR? 1.0.0.224.in-addr.arpa. (40) 2 | 00:44:06.912775 IP6 menuvivofibra.br.domain > casanova.58183: 64865 1/0/0 PTR all-systems.mcast.net. (75) -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/resources/events.txt: -------------------------------------------------------------------------------- 1 | 00:44:06.906367 IP6 casanova.58183 > menuvivofibra.br.domain: 64865+ PTR? 1.0.0.224.in-addr.arpa. (40) 2 | 00:44:06.912775 IP6 menuvivofibra.br.domain > casanova.58183: 64865 1/0/0 PTR all-systems.mcast.net. (75) -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/bootstrap/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module dev.davivieira.bootstrap { 2 | requires domain; 3 | requires framework; 4 | requires application; 5 | requires jakarta.persistence; 6 | requires transitive quarkus.core; 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/bootstrap/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module dev.davivieira.bootstrap { 2 | requires domain; 3 | requires framework; 4 | requires application; 5 | requires jakarta.persistence; 6 | requires transitive quarkus.core; 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/bootstrap/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module dev.davivieira.bootstrap { 2 | requires domain; 3 | requires framework; 4 | requires application; 5 | requires jakarta.persistence; 6 | requires transitive quarkus.core; 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/bootstrap/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module dev.davivieira.bootstrap { 2 | requires domain; 3 | requires framework; 4 | requires application; 5 | requires jakarta.persistence; 6 | requires transitive quarkus.core; 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/bootstrap/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module dev.davivieira.bootstrap { 2 | requires domain; 3 | requires framework; 4 | requires application; 5 | requires jakarta.persistence; 6 | requires transitive quarkus.core; 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/bootstrap/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module dev.davivieira.bootstrap { 2 | requires domain; 3 | requires framework; 4 | requires application; 5 | requires jakarta.persistence; 6 | requires transitive quarkus.core; 7 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/app.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | 3 | import { AgreementsModule } from '@agreements/main/agreements-module'; 4 | 5 | @Module({ 6 | imports: [AgreementsModule], 7 | }) 8 | export class AppModule {} 9 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-enrollments/web/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-api/src/main/java/com/baiyan/ddd/api/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 微服务对外的接口定义包 3 | * 4 | * 具体定义与使用方法请参考我github的另外一个SpringCloud基础架构框架项目 5 | * https://github.com/louyanfeng25/common-frame 6 | * 7 | * @author baiyan 8 | */ 9 | package com.baiyan.ddd.api; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/administration/application/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-reviews/application/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-base/src/main/java/com/baiyan/ddd/base/model/ddd/QueryApplicationService.java: -------------------------------------------------------------------------------- 1 | package com.baiyan.ddd.base.model.ddd; 2 | 3 | /** 4 | * 查询应用服务 5 | * 6 | * @author baiyan 7 | */ 8 | public interface QueryApplicationService extends MarkerInterface { 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/shared/Status.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.shared; 2 | 3 | public enum Status { 4 | PAYMENT_EXPECTED, 5 | PAID, 6 | PREPARING, 7 | READY, 8 | TAKEN 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-enrollments/application/src/test/java/com/educational/platform/TestApplication.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform; 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication; 4 | 5 | @SpringBootApplication 6 | public class TestApplication { 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/理念与实践介绍系列文章/2022~领域驱动设计(DDD)架构演进和 DDD 的几种典型架构介绍(图文详解).md: -------------------------------------------------------------------------------- 1 | > [原文地址](https://mp.weixin.qq.com/s?__biz=MzAwNTQ4MTQ4NQ==&mid=2453586936&idx=1&sn=1ca568242431c8062e744cdcc1106e1a&chksm=8cd1969abba61f8c0061ade10dff086188fd68badfd646c55470cc91b3bc7f5b726363656bb9&scene=27) 2 | 3 | # 领域驱动设计(DDD)架构演进和 DDD 的几种典型架构介绍(图文详解) 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/domain/inventory-core-domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Model.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Model { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/broadbandaccessdevice/getdetails/DeviceNotFoundException.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.broadbandaccessdevice.getdetails; 2 | 3 | public class DeviceNotFoundException extends RuntimeException { 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:18.14-alpine3.16 2 | 3 | WORKDIR /usr/app 4 | 5 | COPY package.json . 6 | 7 | COPY yarn.lock . 8 | 9 | RUN npm install yarn 10 | 11 | RUN yarn install 12 | 13 | COPY . . 14 | 15 | CMD ["yarn", "start:dev"] 16 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/courses/application/src/main/java/com/educational/platform/courses/course/query/ListCourseQuery.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.courses.course.query; 2 | 3 | /** 4 | * Represents course query for retrieving list of courses. 5 | */ 6 | public class ListCourseQuery { 7 | } 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/application/ports/output/NotifyEventOutputPort.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.application.ports.output; 2 | 3 | public interface NotifyEventOutputPort { 4 | 5 | void sendEvent(String Event); 6 | String getEvent(); 7 | } 8 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/exchange/getcapacity/DoesExchangeExist.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.exchange.getcapacity; 2 | 3 | public interface DoesExchangeExist { 4 | 5 | boolean doesExchangeExist(String exchange); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/dataproviders/src/main/java/com/clean/example/dataproviders/network/deviceclient/DeviceClient.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.dataproviders.network.deviceclient; 2 | 3 | public interface DeviceClient { 4 | 5 | String getSerialNumber(String hostname); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/dataproviders/src/main/java/com/clean/example/dataproviders/network/deviceclient/DeviceConnectionTimeoutException.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.dataproviders.network.deviceclient; 2 | 3 | public class DeviceConnectionTimeoutException extends RuntimeException { 4 | } 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/main.ts: -------------------------------------------------------------------------------- 1 | import { NestFactory } from '@nestjs/core'; 2 | import { AppModule } from './app.module'; 3 | 4 | async function bootstrap() { 5 | const app = await NestFactory.create(AppModule); 6 | await app.listen(3000); 7 | } 8 | bootstrap(); 9 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/todo/todo/queries/get-todos.query.ts: -------------------------------------------------------------------------------- 1 | import { Application } from '@bitloops/bl-boilerplate-core'; 2 | 3 | export class GetTodosQuery extends Application.Query { 4 | constructor() { 5 | super('Todo'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/pvc-bl-mongo-data.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: bl-mongo-data 5 | namespace: bitloops 6 | spec: 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/pvc-bl-nats-data.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: bl-nats-data 5 | namespace: bitloops 6 | spec: 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-enrollments/web/src/test/resources/insert_data.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM course_enrollment; 2 | DELETE FROM enroll_course; 3 | DELETE FROM student; 4 | 5 | INSERT INTO enroll_course (uuid) VALUES ('123E4567E89B12D3A456426655440001'); 6 | INSERT INTO student (username) VALUES ('username'); 7 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/users/application/src/main/java/com/educational/platform/users/RoleDTO.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.users; 2 | 3 | /** 4 | * Possible values of roles during registration. 5 | */ 6 | public enum RoleDTO { 7 | 8 | ROLE_STUDENT, 9 | ROLE_TEACHER; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/baiyan_lou~《深入浅出 DDD》/codes/baiyan-ddd-infrastructure/src/main/java/com/baiyan/ddd/infrastructure/db/converter/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 领域模型与数据模型的转换类 3 | * 4 | * 此处也可以替换为mapstruct框架,看自己编码习惯 5 | * 如果转换频繁的话,mapstruct是个不错的选择,性能上比较优秀 6 | * 7 | * @author baiyan 8 | */ 9 | package com.baiyan.ddd.infrastructure.db.converter; -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ProtocolData { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum RouterTypeData { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ProtocolData { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum RouterTypeData { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ProtocolData { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum RouterTypeData { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ProtocolData { 4 | IPV4, 5 | IPV6; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum RouterTypeData { 4 | EDGE, 5 | CORE; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/Hexagonal Architecture in Java Tutorial/codes/SvenWoltmann~hexagonal-architecture-java/doc/shop-model-iteration-1.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | class Cart { 3 | } 4 | 5 | Cart *- CartLineItem 6 | 7 | class CartLineItem { 8 | -quantity : int 9 | } 10 | 11 | CartLineItem -> Product 12 | 13 | class Product { 14 | } 15 | @enduml -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/todo/todo/application/event-handlers/index.ts: -------------------------------------------------------------------------------- 1 | import { StreamingDomainEventHandlers } from './domain'; 2 | 3 | export const StreamingErrorEventHandlers = []; 4 | export const EventHandlers = [...StreamingDomainEventHandlers]; 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/Domain-Driven Design Starter Modelling Process/README.md: -------------------------------------------------------------------------------- 1 | # Domain-Driven Design Starter Modelling Process 2 | 3 | ![Domain-Driven Design Starter Modelling Process](https://s1.ax1x.com/2020/09/13/w0zrdI.md.png) 4 | 5 | # Links 6 | 7 | - https://github.com/ddd-crew/ddd-starter-modelling-process ddd-starter-modelling-process 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter06/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/README.md: -------------------------------------------------------------------------------- 1 | # Chapter 8 - Building the Framework Hexagon 2 | Following are the instructions to compile and run the code samples. 3 | 4 | You need to run these commands from within the chapter 8 directory: 5 | 6 | **To test** 7 | ``` 8 | mvn clean test 9 | ``` 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum SwitchTypeData { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum SwitchTypeData { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum SwitchTypeData { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum SwitchTypeData { 4 | LAYER2, 5 | LAYER3; 6 | } 7 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Mar 16 14:34:23 GMT 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-all.zip 7 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/assets/bitloops_175x40_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/assets/bitloops_175x40_transparent.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/pvc-bl-grafana-data.yaml: -------------------------------------------------------------------------------- 1 | 2 | apiVersion: v1 3 | kind: PersistentVolumeClaim 4 | metadata: 5 | name: bl-grafana-data 6 | namespace: bitloops 7 | spec: 8 | accessModes: 9 | - ReadWriteOnce 10 | resources: 11 | requests: 12 | storage: 1Gi -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/pvc-bl-postgres-data.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: bl-postgres-data 5 | namespace: bitloops 6 | spec: 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/pvc-bl-prometheus-data.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: bl-prometheus-data 5 | namespace: bitloops 6 | spec: 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/README.md: -------------------------------------------------------------------------------- 1 | # Chapter 7 - Building the Application Hexagon 2 | Following are the instructions to compile and run the code samples. 3 | 4 | You need to run these commands from within the chapter 7 directory: 5 | 6 | **To test** 7 | ``` 8 | mvn clean test 9 | ``` 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/README.md: -------------------------------------------------------------------------------- 1 | # Chapter 11 - Leveraging CDI Beans to Manage Ports and Use Cases 2 | Following are the instructions to test the code samples. 3 | 4 | You need to run these commands from within the chapter 11 directory: 5 | 6 | **To test** 7 | ``` 8 | mvn test 9 | ``` 10 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-types/src/main/java/com/example/bank/exception/MoneyAmoutNotNullException.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.exception; 2 | 3 | public class MoneyAmoutNotNullException extends IllegalArgumentException{ 4 | 5 | public MoneyAmoutNotNullException(String message) { 6 | super(message); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-reviews/web/src/test/resources/insert_data.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM course_review; 2 | DELETE FROM reviewable_course; 3 | DELETE FROM reviewer; 4 | 5 | INSERT INTO reviewable_course (original_course_id) VALUES ('123E4567E89B12D3A456426655440001'); 6 | INSERT INTO reviewer (username) VALUES ('username'); 7 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/courses/application/src/main/java/com/educational/platform/courses/course/QuestionDTO.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.courses.course; 2 | 3 | public class QuestionDTO { 4 | 5 | String content; 6 | 7 | public QuestionDTO(String content) { 8 | this.content = content; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "gradle" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | groups: 8 | minor-and-patch-dependencies: 9 | update-types: 10 | - "minor" 11 | - "patch" 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/application/payment/Receipt.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.application.payment; 2 | 3 | import java.math.BigDecimal; 4 | import java.time.LocalDate; 5 | 6 | public record Receipt(BigDecimal amount, LocalDate paid) { } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/Hexagonal Architecture in Java Tutorial/codes/SvenWoltmann~hexagonal-architecture-java/doc/hexagonal-architecture-modules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wx-chevalier/DDD-and-Clean-Architecture-Notes/master/六边形架构/99~参考资料/Hexagonal Architecture in Java Tutorial/codes/SvenWoltmann~hexagonal-architecture-java/doc/hexagonal-architecture-modules.png -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/core/tests/mocks/mock-domain-error.ts: -------------------------------------------------------------------------------- 1 | import { DomainError } from '@core/domain/errors/domain-error'; 2 | 3 | export class MockDomainError extends DomainError { 4 | public constructor() { 5 | super('MockDomainError', 'MockDomainError'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/courses/integration-events/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':common') 3 | implementation 'org.springframework:spring-context' 4 | 5 | compileOnly "org.projectlombok:lombok:${Versions.lombok}" 6 | annotationProcessor "org.projectlombok:lombok:${Versions.lombok}" 7 | } -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/users/integration-events/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':common') 3 | implementation 'org.springframework:spring-context' 4 | 5 | compileOnly "org.projectlombok:lombok:${Versions.lombok}" 6 | annotationProcessor "org.projectlombok:lombok:${Versions.lombok}" 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/framework/adapters/output/h2/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum ProtocolData { 7 | IPV4, 8 | IPV6 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/framework/adapters/output/h2/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum ProtocolData { 7 | IPV4, 8 | IPV6; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter06/README.md: -------------------------------------------------------------------------------- 1 | # Chapter 6 - Building the Domain Hexagon 2 | Following are the instructions to compile and run the code samples. 3 | 4 | You need to run these commands from within the chapter 6 directory: 5 | 6 | **To test Domain hexagon** 7 | ``` 8 | mvn clean test 9 | ``` 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/bootstrap/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | quarkus: 2 | datasource: 3 | username: ${QUARKUS_DATASOURCE_USERNAME:root} 4 | password: ${QUARKUS_DATASOURCE_PASSWORD:password} 5 | reactive: 6 | url: ${QUARKUS_DATASOURCE_REACTIVE_URL:mysql://localhost:3306/inventory} -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/bootstrap/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | quarkus: 2 | datasource: 3 | username: ${QUARKUS_DATASOURCE_USERNAME:root} 4 | password: ${QUARKUS_DATASOURCE_PASSWORD:password} 5 | reactive: 6 | url: ${QUARKUS_DATASOURCE_REACTIVE_URL:mysql://localhost:3306/inventory} -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/bootstrap/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | quarkus: 2 | datasource: 3 | username: ${QUARKUS_DATASOURCE_USERNAME:root} 4 | password: ${QUARKUS_DATASOURCE_PASSWORD:password} 5 | reactive: 6 | url: ${QUARKUS_DATASOURCE_REACTIVE_URL:mysql://localhost:3306/inventory} -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/entrypoints/build.gradle: -------------------------------------------------------------------------------- 1 | description = "Ways to interact with the application (e.g. Rest APIs, Jobs, GUIs, etc.)" 2 | 3 | dependencies { 4 | compile project(":application:core") 5 | 6 | compile libs.rest 7 | compile libs.log 8 | 9 | testCompile libs.unit_tests 10 | } -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/src/main/java/pl/com/bottega/ecommerce/sales/readmodel/offer/OfferQuery.java: -------------------------------------------------------------------------------- 1 | package pl.com.bottega.ecommerce.sales.readmodel.offer; 2 | 3 | public class OfferQuery { 4 | 5 | public boolean isBestBeforeExpired() { 6 | // TODO Auto-generated method stub 7 | return false; 8 | } 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/agreements/application/repositories/notification-repository.ts: -------------------------------------------------------------------------------- 1 | import { Notification } from '@agreements/domain/entities/notification'; 2 | 3 | export interface INotificationRepository { 4 | create(notification: Notification): Promise; 5 | } 6 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/core/tests/mocks/mock-base-error.ts: -------------------------------------------------------------------------------- 1 | import { BaseError } from '@core/domain/errors/base-error'; 2 | 3 | export class MockBaseError extends BaseError { 4 | public constructor() { 5 | super('MockBaseError', 'MockBaseError', 'MockBaseError'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/application/event-handlers/domain/index.ts: -------------------------------------------------------------------------------- 1 | import { TodoCompletionsIncrementedHandler } from './todo-completions-incremented.handler'; 2 | 3 | export const StreamingDomainEventHandlers = [TodoCompletionsIncrementedHandler]; 4 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/framework/adapters/output/h2/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum RouterTypeData { 7 | EDGE, 8 | CORE; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/framework/adapters/output/h2/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum RouterTypeData { 7 | EDGE, 8 | CORE; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/domain/inventory-core-domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Vendor.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public enum Vendor { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2020~Clean Architecture Example with Java and Spring Boot/codes/core/src/main/java/com/d4i/sample/movie/category/ports/UpdateCategoryInFilmsEventsGateway.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package com.d4i.sample.movie.category.ports; 5 | 6 | /** 7 | * @author juanchi 8 | * 9 | */ 10 | public class UpdateCategoryInFilmsEventsGateway { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/iam/authentication/application/command-handlers/index.ts: -------------------------------------------------------------------------------- 1 | import { LogInHandler } from './log-in.handler'; 2 | import { ChangeEmailHandler } from './change-email.handler'; 3 | 4 | export const PubSubCommandHandlers = [LogInHandler, ChangeEmailHandler]; 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/envoy/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "envoy", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "envoy", 9 | "version": "1.0.0", 10 | "license": "ISC" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-bl-envoy.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: bl-envoy 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: bl-envoy 9 | ports: 10 | - protocol: TCP 11 | port: 8080 12 | targetPort: 8080 13 | type: LoadBalancer -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-enrollments/integration-events/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':common') 3 | implementation 'org.springframework:spring-context' 4 | 5 | compileOnly "org.projectlombok:lombok:${Versions.lombok}" 6 | annotationProcessor "org.projectlombok:lombok:${Versions.lombok}" 7 | } -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/course-reviews/integration-events/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':common') 3 | implementation 'org.springframework:spring-context' 4 | 5 | compileOnly "org.projectlombok:lombok:${Versions.lombok}" 6 | annotationProcessor "org.projectlombok:lombok:${Versions.lombok}" 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/application/payment/Payment.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.application.payment; 2 | 3 | import java.time.LocalDate; 4 | import java.util.UUID; 5 | 6 | public record Payment(UUID orderId, CreditCard creditCard, LocalDate paid) { } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/test/resources/data/payment.sql: -------------------------------------------------------------------------------- 1 | insert into payment_entity(id, order_id, card_holder_name, card_number, expiry_month, expiry_year, paid) values ('10fd6267-ea74-4c29-be97-7fc5c81241a5', 'a41c9394-3aa6-4484-b0b4-87de55fa2cf4', 'Michael Faraday', '11223344', 0, 2023, current_timestamp); -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-infrastructure/src/test/resources/data/payment.sql: -------------------------------------------------------------------------------- 1 | insert into payment_entity(id, order_id, card_holder_name, card_number, expiry_month, expiry_year, paid) values ('10fd6267-ea74-4c29-be97-7fc5c81241a5', 'a41c9394-3aa6-4484-b0b4-87de55fa2cf4', 'Michael Faraday', '11223344', 0, 2023, current_timestamp); -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/framework/adapters/output/h2/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum SwitchTypeData { 7 | LAYER2, 8 | LAYER3; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/framework/adapters/output/h2/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum SwitchTypeData { 7 | LAYER2, 8 | LAYER3; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/web/js/nav.js: -------------------------------------------------------------------------------- 1 | function myFunction() { 2 | var x = document.getElementById("myTopnav"); 3 | if (x.className === "topnav neon-input") { 4 | x.className += " responsive topnav-with-background"; 5 | } else { 6 | x.className = "topnav neon-input"; 7 | } 8 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/README.md: -------------------------------------------------------------------------------- 1 | # Chapter 9 - Leveraging Hexagonal Architecture with Java Modules 2 | Following are the instructions to compile and run the code samples. 3 | 4 | You need to run these commands from within the chapter 9 directory: 5 | 6 | **To test** 7 | ``` 8 | mvn clean test 9 | ``` 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ModelData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ModelData { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ModelData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ModelData { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ModelData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ModelData { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/ModelData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum ModelData { 4 | XYZ0001, 5 | XYZ0002, 6 | XYZ0003, 7 | XYZ0004 8 | } 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/Hexagonal Architecture in Java Tutorial/codes/SvenWoltmann~hexagonal-architecture-java/doc/architecture-components.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | [bootstrap]<> 3 | [bootstrap] -> [adapter] 4 | 5 | [adapter]<> 6 | [adapter] -> [application] 7 | 8 | [application]<> 9 | [application] -> [model] 10 | 11 | [model]<> 12 | @enduml -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/broadbandaccessdevice/reconcile/GetSerialNumberFromModel.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.broadbandaccessdevice.reconcile; 2 | 3 | public interface GetSerialNumberFromModel { 4 | 5 | String getSerialNumber(String hostname); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.codeActionsOnSave": { 3 | "source.fixAll.eslint": true 4 | }, 5 | "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"], 6 | "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-bl-grafana.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: bl-grafana 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: bl-grafana 9 | ports: 10 | - protocol: TCP 11 | port: 3003 12 | targetPort: 3000 13 | type: LoadBalancer -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-bl-mongo.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: bl-mongo 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: bl-mongo 9 | ports: 10 | - protocol: TCP 11 | port: 30001 12 | targetPort: 30001 13 | type: LoadBalancer -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~11.9K~Sairyss~Domain Driven Hexagonal/README.md: -------------------------------------------------------------------------------- 1 | # domain-driven-hexagon 2 | 3 | ![Hexagon Diagram](https://github.com/Sairyss/domain-driven-hexagon/raw/master/assets/images/DomainDrivenHexagon.png) 4 | 5 | # Links 6 | 7 | - https://github.com/Sairyss/domain-driven-hexagon Guide on Domain-Driven Design, Hexagonal architecture, best practices etc. 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/administration/integration-events/build.gradle.kts: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation(project(":common")) 3 | implementation("org.springframework", "spring-context") 4 | 5 | compileOnly("org.projectlombok", "lombok", Versions.lombok) 6 | annotationProcessor("org.projectlombok", "lombok", Versions.lombok) 7 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchAdd.feature: -------------------------------------------------------------------------------- 1 | @SwitchAdd 2 | Feature: Can I add a switch to an edge router? 3 | 4 | Scenario: Adding a switch to an edge router 5 | Given I provide a switch 6 | Then I add the switch to the edge router -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/application/src/test/resources/dev/davivieira/topologyinventory/application/switches/SwitchCreate.feature: -------------------------------------------------------------------------------- 1 | @SwitchCreate 2 | Feature: Can I create new switches? 3 | 4 | Scenario: Creating a new switch 5 | Given I provide all required data to create a switch 6 | Then A new switch is created -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/broadbandaccessdevice/reconcile/GetSerialNumberFromReality.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.broadbandaccessdevice.reconcile; 2 | 3 | public interface GetSerialNumberFromReality { 4 | 5 | String getSerialNumber(String hostname); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/core/domain/errors/domain-error.ts: -------------------------------------------------------------------------------- 1 | import { BaseError } from '@core/domain/errors/base-error'; 2 | 3 | export abstract class DomainError extends BaseError { 4 | protected constructor(name: string, message: string) { 5 | super('DomainError', name, message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/iam/authentication/domain/rules/index.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/no-namespace */ 2 | import { ValidEmailRule as ValidEmail } from './valid-email.rule'; 3 | 4 | export namespace Rules { 5 | export class ValidEmailRule extends ValidEmail {} 6 | } 7 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-bl-postgres.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: bl-postgres 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: bl-postgres 9 | ports: 10 | - protocol: TCP 11 | port: 5432 12 | targetPort: 5432 13 | type: LoadBalancer -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/courses/application/src/main/java/com/educational/platform/courses/course/PublishStatus.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.courses.course; 2 | 3 | /** 4 | * Represents Course Publish Status. 5 | */ 6 | public enum PublishStatus { 7 | 8 | DRAFT, 9 | PUBLISHED, 10 | ARCHIVED 11 | 12 | } 13 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/java/dev/davivieira/domain/specification/Specification.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.specification; 2 | 3 | public sealed interface Specification permits AbstractSpecification { 4 | 5 | boolean isSatisfiedBy(T t); 6 | 7 | Specification and(Specification specification); 8 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/java/dev/davivieira/domain/specification/Specification.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.specification; 2 | 3 | public sealed interface Specification permits AbstractSpecification { 4 | 5 | boolean isSatisfiedBy(T t); 6 | 7 | Specification and(Specification specification); 8 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/domain/specification/Specification.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.specification; 2 | 3 | public sealed interface Specification permits AbstractSpecification { 4 | 5 | boolean isSatisfiedBy(T t); 6 | 7 | Specification and(Specification specification); 8 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/domain/specification/Specification.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.domain.specification; 2 | 3 | public sealed interface Specification permits AbstractSpecification { 4 | 5 | boolean isSatisfiedBy(T t); 6 | 7 | Specification and(Specification specification); 8 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:17.0.8_7-jdk-alpine 2 | ENV APP_FILE_RUNNER bootstrap-1.0-SNAPSHOT-runner.jar 3 | ENV APP_HOME /usr/apps 4 | EXPOSE 8080 5 | COPY bootstrap/target/$APP_FILE_RUNNER $APP_HOME/ 6 | WORKDIR $APP_HOME 7 | ENTRYPOINT ["sh", "-c"] 8 | CMD ["exec java -jar $APP_FILE_RUNNER"] 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:17.0.8_7-jdk-alpine 2 | ENV APP_FILE_RUNNER bootstrap-1.0-SNAPSHOT-runner.jar 3 | ENV APP_HOME /usr/apps 4 | EXPOSE 8080 5 | COPY bootstrap/target/$APP_FILE_RUNNER $APP_HOME/ 6 | WORKDIR $APP_HOME 7 | ENTRYPOINT ["sh", "-c"] 8 | CMD ["exec java -jar $APP_FILE_RUNNER"] 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM eclipse-temurin:17.0.8_7-jdk-alpine 2 | ENV APP_FILE_RUNNER bootstrap-1.0-SNAPSHOT-runner.jar 3 | ENV APP_HOME /usr/apps 4 | EXPOSE 8080 5 | COPY bootstrap/target/$APP_FILE_RUNNER $APP_HOME/ 6 | WORKDIR $APP_HOME 7 | ENTRYPOINT ["sh", "-c"] 8 | CMD ["exec java -jar $APP_FILE_RUNNER"] 9 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkCreate.feature: -------------------------------------------------------------------------------- 1 | @NetworkCreate 2 | Feature: Can I create new networks? 3 | 4 | Scenario: Creating a new network 5 | Given I provide all required data to create a network 6 | Then A new network is created -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/api/dto/register.dto.ts: -------------------------------------------------------------------------------- 1 | import { IsEmail, IsString, IsNotEmpty } from 'class-validator'; 2 | 3 | export class RegisterDTO { 4 | @IsEmail() 5 | @IsNotEmpty() 6 | readonly email: string; 7 | 8 | @IsString() 9 | @IsNotEmpty() 10 | readonly password: string; 11 | } 12 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/pages/Home/page.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import TodoPanel from '../../components/Todo/Panel'; 3 | 4 | function HomePage(): JSX.Element { 5 | return ( 6 |
7 | 8 |
9 | ); 10 | } 11 | export default HomePage; 12 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-bl-prometheus.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: bl-prometheus 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: bl-prometheus 9 | ports: 10 | - protocol: TCP 11 | port: 9090 12 | targetPort: 9090 13 | type: LoadBalancer -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-todo-frontend.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: todo-frontend 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: todo-frontend 9 | ports: 10 | - protocol: TCP 11 | port: 3000 12 | targetPort: 3000 13 | type: LoadBalancer -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter01/src/main/java/dev/davivieira/application/ports/output/RouterViewOutputPort.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.application.ports.output; 2 | 3 | import dev.davivieira.domain.Router; 4 | 5 | import java.util.List; 6 | 7 | public interface RouterViewOutputPort { 8 | 9 | List fetchRouters(); 10 | } -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/web/includes/menu.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = "clean-architecture-example" 2 | 3 | // application 4 | include "application:core" 5 | include "application:dataproviders" 6 | include "application:entrypoints" 7 | include "application:configuration" 8 | 9 | // testing 10 | include "acceptance-tests" 11 | include "integration-tests" 12 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/agreements/domain/errors/characters-limit-error.ts: -------------------------------------------------------------------------------- 1 | import { DomainError } from '@core/domain/errors/domain-error'; 2 | 3 | export class CharactersLimitError extends DomainError { 4 | public constructor(message: string) { 5 | super('CharactersLimitError', message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/agreements/domain/errors/item-amount-limit-error.ts: -------------------------------------------------------------------------------- 1 | import { DomainError } from '@core/domain/errors/domain-error'; 2 | 3 | export class ItemAmountLimitError extends DomainError { 4 | public constructor(message: string) { 5 | super('ItemAmountLimitError', message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/src/config/index.ts: -------------------------------------------------------------------------------- 1 | export const AUTH_URL = process.env.AUTH_URL || 'http://localhost:8082/auth/login'; 2 | export const PROXY_URL = process.env.PROXY_URL || 'http://localhost:8080'; 3 | export const REGISTRATION_URL = 4 | process.env.REGISTRATION_URL || 'http://localhost:8082/auth/register'; 5 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-bl-pushgateway.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: bl-pushgateway 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: bl-pushgateway 9 | ports: 10 | - protocol: TCP 11 | port: 9091 12 | targetPort: 9091 13 | type: LoadBalancer -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/telemetry-consumer/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang:1.22-alpine 2 | 3 | WORKDIR /app 4 | 5 | COPY go.mod . 6 | COPY go.sum . 7 | 8 | RUN go mod download 9 | 10 | COPY . . 11 | 12 | RUN go build -o ./bitloops-telemetry-consumer 13 | 14 | EXPOSE 8080 15 | 16 | CMD [ "./bitloops-telemetry-consumer" ] 17 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/Hexagonal Architecture in Java Tutorial/codes/SvenWoltmann~hexagonal-architecture-java/doc/shop-model-iteration-2.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | class Cart { 3 | -id : CustomerId 4 | } 5 | 6 | Cart *- CartLineItem 7 | 8 | class CartLineItem { 9 | -quantity : int 10 | } 11 | 12 | CartLineItem -> Product 13 | 14 | class Product { 15 | -id : ProductId 16 | } 17 | @enduml -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/core/domain/errors/application-error.ts: -------------------------------------------------------------------------------- 1 | import { BaseError } from '@core/domain/errors/base-error'; 2 | 3 | export abstract class ApplicationError extends BaseError { 4 | protected constructor(name: string, message: string) { 5 | super('ApplicationError', name, message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/core/tests/mocks/mock-application-error.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationError } from '@core/domain/errors/application-error'; 2 | 3 | export class MockApplicationError extends ApplicationError { 4 | public constructor() { 5 | super('MockApplicationError', 'MockApplicationError'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/core/tests/mocks/mock-unexpected-error.ts: -------------------------------------------------------------------------------- 1 | import { BaseError } from '@core/domain/errors/base-error'; 2 | 3 | export class MockUnexpectedError extends BaseError { 4 | public constructor() { 5 | super('MockUnexpectedError', 'MockUnexpectedError', 'MockUnexpectedError'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-persistence/src/main/java/com/example/bank/persistence/AccountBuilder.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.persistence; 2 | 3 | import com.example.bank.domain.entity.Account; 4 | 5 | public interface AccountBuilder { 6 | Account toAccount(AccountDO accountDO) throws Exception; 7 | 8 | AccountDO fromAccount(Account account); 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/main/java/com/arhohuttunen/coffeeshop/application/payment/CreditCard.java: -------------------------------------------------------------------------------- 1 | package com.arhohuttunen.coffeeshop.application.payment; 2 | 3 | import java.time.Month; 4 | import java.time.Year; 5 | 6 | public record CreditCard(String cardHolderName, String cardNumber, Month expiryMonth, Year expiryYear) { } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/k8s/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: topology-inventory 5 | labels: 6 | app: topology-inventory 7 | spec: 8 | type: NodePort 9 | ports: 10 | - port: 8080 11 | nodePort: 30080 12 | protocol: TCP 13 | selector: 14 | app: topology-inventory 15 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/k8s/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: topology-inventory 5 | labels: 6 | app: topology-inventory 7 | spec: 8 | type: NodePort 9 | ports: 10 | - port: 8080 11 | nodePort: 30080 12 | protocol: TCP 13 | selector: 14 | app: topology-inventory 15 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/k8s/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: topology-inventory 5 | labels: 6 | app: topology-inventory 7 | spec: 8 | type: NodePort 9 | ports: 10 | - port: 8080 11 | nodePort: 30080 12 | protocol: TCP 13 | selector: 14 | app: topology-inventory 15 | -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/broadbandaccessdevice/reconcile/UpdateSerialNumberInModel.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.broadbandaccessdevice.reconcile; 2 | 3 | public interface UpdateSerialNumberInModel { 4 | 5 | void updateSerialNumber(String hostname, String serialNumber); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/agreements/application/services/notification-service.ts: -------------------------------------------------------------------------------- 1 | export type NotificationDTO = { 2 | recipientPartyId: string; 3 | title: string; 4 | content: string; 5 | }; 6 | 7 | export interface INotificationService { 8 | send(notificationDTO: NotificationDTO): Promise; 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/iam/authentication/application/event-handlers/domain/index.ts: -------------------------------------------------------------------------------- 1 | import { UserUpdatedEmailPublishIntegrationEventHandler } from './updated-email-publish.event-handler'; 2 | 3 | export const StreamingDomainEventHandlers = [ 4 | UserUpdatedEmailPublishIntegrationEventHandler, 5 | ]; 6 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-domain/src/main/java/com/example/bank/external/ExchangeRateService.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.external; 2 | 3 | import com.example.bank.types.Currency; 4 | import com.example.bank.types.ExchangeRate; 5 | 6 | public interface ExchangeRateService { 7 | ExchangeRate getExchangeRate(Currency source, Currency target); 8 | 9 | } 10 | 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-application/src/test/resources/data/order.sql: -------------------------------------------------------------------------------- 1 | insert into order_entity(id, location, status) values ('757d9c0f-400f-4137-9aea-83e64ba3efb2', 1, 1); 2 | insert into line_item_entity(id, order_id, drink, size, milk, quantity) values ('01ddf82a-5bed-4b56-b7e4-69e76b29f1bc', '757d9c0f-400f-4137-9aea-83e64ba3efb2', 1, 1, 1, 1); 3 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~Hexagonal Architecture With Spring Boot/codes/coffeeshop-infrastructure/src/test/resources/data/order.sql: -------------------------------------------------------------------------------- 1 | insert into order_entity(id, location, status) values ('757d9c0f-400f-4137-9aea-83e64ba3efb2', 1, 1); 2 | insert into line_item_entity(id, order_id, drink, size, milk, quantity) values ('01ddf82a-5bed-4b56-b7e4-69e76b29f1bc', '757d9c0f-400f-4137-9aea-83e64ba3efb2', 1, 1, 1, 1); 3 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter02/src/main/java/dev/davivieira/application/ports/output/RouterViewOutputPort.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.application.ports.output; 2 | 3 | import dev.davivieira.domain.entity.Router; 4 | 5 | import java.util.List; 6 | 7 | public interface RouterViewOutputPort { 8 | 9 | List fetchRouters(); 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter03/src/main/java/dev/davivieira/application/ports/output/RouterViewOutputPort.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.application.ports.output; 2 | 3 | import dev.davivieira.domain.entity.Router; 4 | 5 | import java.util.List; 6 | 7 | public interface RouterViewOutputPort { 8 | 9 | List fetchRouters(); 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/framework/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.datasource.db-kind = mysql 2 | quarkus.datasource.jdbc=false 3 | quarkus.datasource.reactive=true 4 | quarkus.hibernate-orm.database.generation=drop-and-create 5 | quarkus.hibernate-orm.sql-load-script=inventory.sql 6 | quarkus.vertx.max-event-loop-execute-time=100 -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/framework/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.datasource.db-kind = mysql 2 | quarkus.datasource.jdbc=false 3 | quarkus.datasource.reactive=true 4 | quarkus.hibernate-orm.database.generation=drop-and-create 5 | quarkus.hibernate-orm.sql-load-script=inventory.sql 6 | quarkus.vertx.max-event-loop-execute-time=100 -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/framework/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.datasource.db-kind = mysql 2 | quarkus.datasource.jdbc=false 3 | quarkus.datasource.reactive=true 4 | quarkus.hibernate-orm.database.generation=drop-and-create 5 | quarkus.hibernate-orm.sql-load-script=inventory.sql 6 | quarkus.vertx.max-event-loop-execute-time=100 -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/framework/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | quarkus.datasource.db-kind = mysql 2 | quarkus.datasource.jdbc=false 3 | quarkus.datasource.reactive=true 4 | quarkus.hibernate-orm.database.generation=drop-and-create 5 | quarkus.hibernate-orm.sql-load-script=inventory.sql 6 | quarkus.vertx.max-event-loop-execute-time=100 -------------------------------------------------------------------------------- /整洁架构/99~参考资料/2016~Clean Architecture Example (Java)/codes/application/core/src/main/java/com/clean/example/core/usecase/broadbandaccessdevice/reconcile/GetAllDeviceHostnames.java: -------------------------------------------------------------------------------- 1 | package com.clean.example.core.usecase.broadbandaccessdevice.reconcile; 2 | 3 | import java.util.List; 4 | 5 | public interface GetAllDeviceHostnames { 6 | 7 | List getAllDeviceHostnames(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/agreements/application/errors/party-not-found-error.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationError } from '@core/domain/errors/application-error'; 2 | 3 | export class PartyNotFoundError extends ApplicationError { 4 | public constructor(message: string) { 5 | super('PartyNotFoundError', message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/.eslintignore: -------------------------------------------------------------------------------- 1 | */proto/* 2 | /src/bitloops/proto/* 3 | */src/bitloops/proto/* 4 | /src/bitloops/proto/todo.ts 5 | */src/bitloops/proto/todo.ts 6 | /src/bitloops/proto/todo_pb.d.ts 7 | */src/bitloops/proto/todo_pb.d.ts 8 | /src/bitloops/proto/TodoServiceClient_Pb.ts 9 | */src/bitloops/proto/TodoServiceClient_Pb.ts -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/frontend/.prettierignore: -------------------------------------------------------------------------------- 1 | */proto/* 2 | /src/bitloops/proto/* 3 | */src/bitloops/proto/* 4 | /src/bitloops/proto/todo.ts 5 | */src/bitloops/proto/todo.ts 6 | /src/bitloops/proto/todo_pb.d.ts 7 | */src/bitloops/proto/todo_pb.d.ts 8 | /src/bitloops/proto/TodoServiceClient_Pb.ts 9 | */src/bitloops/proto/TodoServiceClient_Pb.ts -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/k8s/service-bl-telemetry-consumer.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: bl-telemetry-consumer 5 | namespace: bitloops 6 | spec: 7 | selector: 8 | app: bl-telemetry-consumer 9 | ports: 10 | - protocol: TCP 11 | port: 80 12 | targetPort: 80 13 | type: ClusterIP -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-types/src/main/java/com/example/bank/common/Result.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.common; 2 | 3 | public class Result { 4 | 5 | private T data; 6 | 7 | public Result(T data) { 8 | this.data = data; 9 | } 10 | 11 | public static Result success(boolean data) { 12 | return new Result(data); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter04/src/main/java/dev/davivieira/application/ports/output/RouterViewOutputPort.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.application.ports.output; 2 | 3 | import dev.davivieira.domain.entity.Router; 4 | 5 | import java.util.List; 6 | 7 | public interface RouterViewOutputPort { 8 | 9 | List fetchRelatedRouters(); 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter05/src/main/java/dev/davivieira/application/ports/output/RouterViewOutputPort.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.application.ports.output; 2 | 3 | import dev.davivieira.domain.entity.Router; 4 | 5 | import java.util.List; 6 | 7 | public interface RouterViewOutputPort { 8 | 9 | List fetchRelatedRouters(); 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum ProtocolData { 7 | IPV4, 8 | IPV6; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum ProtocolData { 7 | IPV4, 8 | IPV6; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum ProtocolData { 7 | IPV4, 8 | IPV6; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum ProtocolData { 7 | IPV4, 8 | IPV6; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/ProtocolData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum ProtocolData { 7 | IPV4, 8 | IPV6; 9 | } 10 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2012~ddd-leaven-v2/codes/src/main/java/pl/com/bottega/ecommerce/sales/readmodel/offer/Offer.java: -------------------------------------------------------------------------------- 1 | package pl.com.bottega.ecommerce.sales.readmodel.offer; 2 | 3 | import java.util.List; 4 | 5 | import pl.com.bottega.ddd.annotations.application.Finder; 6 | 7 | @Finder 8 | public interface Offer { 9 | 10 | public List find(OfferQuery query); 11 | } 12 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/agreements/domain/errors/currency-amount-limit-error.ts: -------------------------------------------------------------------------------- 1 | import { DomainError } from '@core/domain/errors/domain-error'; 2 | 3 | export class CurrencyItemAmountLimitError extends DomainError { 4 | public constructor(message: string) { 5 | super('CurrencyItemAmountLimitError', message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/ports/user-write.repo-port.ts: -------------------------------------------------------------------------------- 1 | import { Application, Domain } from '@bitloops/bl-boilerplate-core'; 2 | import { UserEntity } from '../domain/user.entity'; 3 | 4 | export type UserWriteRepoPort = Application.Repo.ICRUDWritePort< 5 | UserEntity, 6 | Domain.UUIDv4 7 | >; 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/todo/todo/application/errors/index.ts: -------------------------------------------------------------------------------- 1 | import { TodoNotFoundError as TodoNotFound } from './todo-not-found.error'; 2 | 3 | // eslint-disable-next-line @typescript-eslint/no-namespace 4 | export namespace ApplicationErrors { 5 | export class TodoNotFoundError extends TodoNotFound {} 6 | } 7 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | Scenario: Adding a network to a switch 5 | Given I have a network 6 | And I have a switch to add a network 7 | Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum RouterTypeData { 7 | EDGE, 8 | CORE; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum RouterTypeData { 7 | EDGE, 8 | CORE; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum RouterTypeData { 7 | EDGE, 8 | CORE; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum RouterTypeData { 7 | EDGE, 8 | CORE; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/RouterTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum RouterTypeData { 7 | EDGE, 8 | CORE; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/VendorData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum VendorData { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/VendorData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum VendorData { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter15/layered/src/main/java/dev/davivieira/layered/App.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.layered; 2 | 3 | import io.quarkus.runtime.Quarkus; 4 | import io.quarkus.runtime.annotations.QuarkusMain; 5 | @QuarkusMain 6 | public class App { 7 | public static void main(String ... args) { 8 | Quarkus.run(args); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/VendorData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum VendorData { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/data/VendorData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.mysql.data; 2 | 3 | public enum VendorData { 4 | CISCO, 5 | NETGEAR, 6 | HP, 7 | TPLINK, 8 | DLINK, 9 | JUNIPER 10 | } 11 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2023~DDD-Clean-Architecture/codes/gsaaraujo~DDD-Clean-Architecture-backend/src/modules/agreements/application/errors/agreement-not-found-error.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationError } from '@core/domain/errors/application-error'; 2 | 3 | export class AgreementNotFoundError extends ApplicationError { 4 | public constructor(message: string) { 5 | super('AgreementNotFoundError', message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/architecture-decisions/0010-use-axon-framework.md: -------------------------------------------------------------------------------- 1 | # 10. Axon Framework. 2 | Date: 2020-07-06 3 | 4 | ## Status 5 | Accepted 6 | 7 | ## Context 8 | Currently, a lot of custom classes are defined for DDD building blocks. It will be better to use DDD library for these goals. 9 | 10 | ## Decision 11 | Axon Framework will be used as DDD library. 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum SwitchTypeData { 7 | LAYER2, 8 | LAYER3; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum SwitchTypeData { 7 | LAYER2, 8 | LAYER3; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum SwitchTypeData { 7 | LAYER2, 8 | LAYER3; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum SwitchTypeData { 7 | LAYER2, 8 | LAYER3; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/h2/data/SwitchTypeData.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.framework.adapters.output.h2.data; 2 | 3 | import jakarta.persistence.Embeddable; 4 | 5 | @Embeddable 6 | public enum SwitchTypeData { 7 | LAYER2, 8 | LAYER3; 9 | } 10 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter14/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter16/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter17/application/src/test/resources/dev/davivieira/topologyinventory/application/networks/NetworkAdd.feature: -------------------------------------------------------------------------------- 1 | @NetworkAdd 2 | Feature: Can I add a network to a switch? 3 | 4 | #Scenario: Adding a network to a switch 5 | # Given I have a network 6 | # And I have a switch to add a network 7 | # Then I add the network to the switch 8 | -------------------------------------------------------------------------------- /领域驱动设计/88~系统案例/2024~1.2K~ddd-hexagonal-cqrs-es-eda/codes/ddd-hexagonal-cqrs-es-eda/backend/src/lib/bounded-contexts/marketing/marketing/application/errors/index.ts: -------------------------------------------------------------------------------- 1 | import { UserNotFoundError as UserNotFound } from './user-not-found.error'; 2 | 3 | // eslint-disable-next-line @typescript-eslint/no-namespace 4 | export namespace ApplicationErrors { 5 | export class UserNotFoundError extends UserNotFound {} 6 | } 7 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2019~阿里技术专家详解 DDD 系列/codes/bank-domain/src/main/java/com/example/bank/domain/types/AuditMessage.java: -------------------------------------------------------------------------------- 1 | package com.example.bank.domain.types; 2 | 3 | import com.example.bank.domain.entity.Account; 4 | import com.example.bank.types.Money; 5 | 6 | public class AuditMessage { 7 | public AuditMessage(Account sourceAccount, Account targetAccount, Money targetMoney) { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/administration/application/src/main/java/com/educational/platform/administration/course/query/ListCourseProposalsQuery.java: -------------------------------------------------------------------------------- 1 | package com.educational.platform.administration.course.query; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * Represents list course proposals query. 7 | */ 8 | @Value 9 | public class ListCourseProposalsQuery { 10 | } 11 | -------------------------------------------------------------------------------- /领域驱动设计/99~参考资料/2023~educational-platform-monolith/docs/architecture-decisions/0009-architecture-tests.md: -------------------------------------------------------------------------------- 1 | # 9. Architecture tests. 2 | Date: 2020-06-27 3 | 4 | ## Status 5 | Accepted 6 | 7 | ## Context 8 | We need to have the mechanism for supporting and validating common architecture principles in all application. 9 | 10 | ## Decision 11 | Architecture tests with using Archunit should be implemented. 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter06/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter07/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter08/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter09/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter10/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter11/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter12/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | -------------------------------------------------------------------------------- /六边形架构/99~参考资料/2023~《Designing Hexagonal Architecture with Java》/codes/Chapter13/domain/src/main/java/dev/davivieira/topologyinventory/domain/vo/Location.java: -------------------------------------------------------------------------------- 1 | package dev.davivieira.topologyinventory.domain.vo; 2 | 3 | public record Location ( 4 | String address, 5 | String city, 6 | String state, 7 | int zipCode, 8 | String country, 9 | float latitude, 10 | float longitude 11 | ) {} 12 | --------------------------------------------------------------------------------