All Projects → socadk → design-practice-repository

socadk / design-practice-repository

Licence: other
Summaries of artifacts, templates, practices, and techniques for agile architecting (DPR-mm) and service design (SDPR-nn).

Programming Languages

TeX
3793 projects
Jolie
3 projects

Projects that are alternatives of or similar to design-practice-repository

Ddd Tdd Rich Domain Model Dojo Kata
DDD patterns implemented following TDD
Stars: ✭ 91 (+116.67%)
Mutual labels:  agile, ddd
ddd-example-ecommerce
Domain-driven design example in Java with Spring framework
Stars: ✭ 73 (+73.81%)
Mutual labels:  ddd, soa
All Our Aggregates Are Wrong Demos
A microservices powered e-commerce shopping cart sample - based on SOA principles. Demos and sample for my "All our Aggregates are Wrong" talk
Stars: ✭ 130 (+209.52%)
Mutual labels:  ddd, soa
Migration
《系统重构与迁移指南》手把手教你分析、评估现有系统、制定重构策略、探索可行重构方案、搭建测试防护网、进行系统架构重构、服务架构重构、模块重构、代码重构、数据库重构、重构后的架构守护
Stars: ✭ 2,753 (+6454.76%)
Mutual labels:  agile, ddd
tdd-demo-forumphp2020
Live coding examples used during Forum PHP 2020 talk "Too many mocks killed the test: What Hexagonal Architecture has changed"
Stars: ✭ 25 (-40.48%)
Mutual labels:  ddd
OpenSleigh
OpenSleigh is a Saga management library for .NET Core.
Stars: ✭ 198 (+371.43%)
Mutual labels:  ddd
kanboard
Kanban project management software
Stars: ✭ 6,484 (+15338.1%)
Mutual labels:  agile
2020-legacycode-studygroup
Resources for the 2020 legacy code study group
Stars: ✭ 14 (-66.67%)
Mutual labels:  ddd
typescript-ddd-course
🔷🔖 TypeScript DDD Course: Learn Domain-Driven Design in TS lesson by lesson
Stars: ✭ 28 (-33.33%)
Mutual labels:  ddd
matorral
An open-source, very simple & extensible project managent tool written using Django/Python
Stars: ✭ 21 (-50%)
Mutual labels:  agile
doing-cli
CLI tool to simplify the development workflow on azure devops
Stars: ✭ 19 (-54.76%)
Mutual labels:  agile
agilemanager-api
HPE's Agile Manager client API module for NodeJS
Stars: ✭ 15 (-64.29%)
Mutual labels:  agile
retro
Retrospective board for teams, minimal and clean
Stars: ✭ 20 (-52.38%)
Mutual labels:  agile
yurpc
high-performance RPC framework.
Stars: ✭ 59 (+40.48%)
Mutual labels:  soa
apiplatform-ddd-cqrs-es-demo
No description or website provided.
Stars: ✭ 83 (+97.62%)
Mutual labels:  ddd
microservice-template-ddd
Golnag microservice-template by DDD
Stars: ✭ 13 (-69.05%)
Mutual labels:  ddd
order-demo
Axon demo - `Order Management` Information System - A part of the systems landscape https://github.com/fraktalio/courier-demo, https://github.com/fraktalio/restaurant-demo, https://github.com/fraktalio/order-demo
Stars: ✭ 72 (+71.43%)
Mutual labels:  ddd
JirAgileR
User-friendly 🔹JIRA API wrapper. Track projects & issues from within R
Stars: ✭ 22 (-47.62%)
Mutual labels:  agile
game 01
Scalable MMORPG game server based on entity control
Stars: ✭ 19 (-54.76%)
Mutual labels:  ddd
awesome-software-design-ja
日本語でのソフトウェア開発・設計に関する記事や書籍をまとめたリポジトリです
Stars: ✭ 264 (+528.57%)
Mutual labels:  ddd

Design Practice Repository (DPR)

Welcome to Software/Service/API Design Practice Repository (DPR) (pronounced "deeper")!

This public repository collects method elements and practices from various methods (old and new) that are applicable to service-oriented analysis and design (and beyond).

Target Audience

This repository targets the following software engineering roles, ordered from specific to generic:

Overview and Quick Links

DPR is organized around artifacts, templates, activities, and techniques which are applied/performed/used by team members taking one or more software engineering roles:

DPR Concepts (Domain Model)

DPR contains three types of method/practice elements:

The activities and artifacts that we have collected so far are:

DPR Activities, Artifacts and their dependencies

There is an introductory blog post. And the quick start tutorial takes you through the repository structure in a small sample scenario. The deeper API design tutorial (in draft state) is a good starting point if you like to learn by example (and are willing to invest a little more time).

We also provide some background information on methods and practices, including a bibliography.

Status

Version 1.2, released on December 7, 2020, added one activity and one artifact:

Tutorial 1 also was enhanced, as well as several other activity and artifact descriptions. We also added (even) more pointers to background information.

Since then, we have copy edited all content and provided additional references.

Preview: DPR eBook

April 8, 2021: The DPR content also comes as an ebook now. The current draft version is available on Leanpub.

Terminology Clarification

(Micro-)Services and SOA Definitions

According to Martin Fowler, a service is a component with a remote Application Programming Interface (API). And services and their APIs come in different sizes, hence an engineering approach to designing them is required. That's all there is to say!

If you want more conceptual clarifications, see this blog post, this presentation, or this article for a definition of microservices and positioning as an implementation approach to SOA.

The Microservice API Patterns (MAP) website, introduction, and pattern papers go even deeper and introduce terms such as endpoint, operation, and message representations.

Situational Method Engineering

DPR applies a best-of-breed approach. Our metamodel adopts parts of Chapter 2 from "An Architectural Decision Modeling Framework for Service-Oriented Architecture Design"(SOAD):

DPR metamodel (from SOAD PhD thesis)

This terminology maps to that of other method engineers like this:

This repository Agile community (glossary) OMG SPEM 2.0 (PDF) Open Unified Process (UP) and other methods
Role Persona, team member Role Worker, stakeholder
Activity (with steps) n/a (not plan-driven, backlog item types come close) Task (with steps) RUP: activity, OpenUP: task
Artifact No direct pendant (template? documentation?) Work product UP: artifact
Technique (part of activity description) Practice No direct pendant (tool comes close) UP: guidance, guideline

In short, activities describe work to be done, techniques (or practices) help doing so; more than one technique might support an activity. For instance, use case modeling and user story telling are two techniques to elicit functional requirements. Artifacts are deliverables of activities, templates suggest content and structure for them. For example, an architectural decision log (an artifact) may come as a Nygard Architecture Decision Record (ADR), as a Y-Statement, as a Tyree/Akerman table, etc. Techniques and tools support and/or partially automate the activities.

The above terms establish an ubiquitous language (or domain model) of service design and agile architecting — in the (bounded) context of this repository. 😉

Note: Method adoption is eased if you make your methods mighty.

Acknowledgments

The creation and release of DPR was partially supported by the project "Domain-Driven Digital Service Engineering" funded by the Hasler Foundation.

Contributors (input, technical writing, feedback):

Stefan Kapferer and Oliver Kopp reviewed selected repository content and structure. Many members of our professional networks provided input and/or inspiration through discussions, workshops, joint client projects and many other ways. Thank you!

Getting Involved

If you would like to help improve this collection of software/service/API design practices:

  • Feel free to create GitHub issues.
  • Submit pull requests. If you do so, we assume that you own the IP you submit, agree to open source it under the license of this repository, and therefore comply with this Developer Certificate of Origin.
  • Contact us to discuss collaboration and integration opportunities.

More information can be found here.

DPR Metadata

title: Design Practice Repository (DPR)
owner: Olaf Zimmermann (ZIO)
date: "04, 22, 2021"
copyright: Copyright 2020-2021 Olaf Zimmermann (unless noted otherwise). All rights reserved.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].