All Projects โ†’ mp911de โ†’ Cleanarchitecture

mp911de / Cleanarchitecture

CleanArchitecture Example

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Cleanarchitecture

Bow Arch
๐Ÿ› Functional Architecture in Swift using Bow
Stars: โœญ 166 (-16.58%)
Mutual labels:  architecture
React Native Boilerplate
A React Native template for building solid applications ๐Ÿ™, using JavaScript ๐Ÿ’› or Typescript ๐Ÿ’™ (you choose).
Stars: โœญ 2,669 (+1241.21%)
Mutual labels:  architecture
Supra Api Nodejs
โค๏ธ Node.js REST API boilerplate
Stars: โœญ 182 (-8.54%)
Mutual labels:  architecture
Remvvm
ReMVVM is an application architecture concept, marriage of Unidirectional Data Flow (Redux) with MVVM.
Stars: โœญ 168 (-15.58%)
Mutual labels:  architecture
Awesome Design Patterns
A curated list of software and architecture related design patterns.
Stars: โœญ 15,579 (+7728.64%)
Mutual labels:  architecture
Spring Boot Plus
๐Ÿ”ฅ Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. ๐Ÿš€
Stars: โœญ 2,198 (+1004.52%)
Mutual labels:  architecture
Clean Architecture Swiftui
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.
Stars: โœญ 2,925 (+1369.85%)
Mutual labels:  architecture
Aks Secure Baseline
This is the Azure Kubernetes Service (AKS) Baseline Cluster reference implementation as produced by the Microsoft Azure Architecture Center.
Stars: โœญ 188 (-5.53%)
Mutual labels:  architecture
Local Db Cache Retrofit Rest Api Mvvm
App that interacts with a REST API using Retrofit. There is a local db cache and architecture is MVVM
Stars: โœญ 171 (-14.07%)
Mutual labels:  architecture
Reactorkit
A library for reactive and unidirectional Swift applications
Stars: โœญ 2,237 (+1024.12%)
Mutual labels:  architecture
Architecture
.NET 6, ASP.NET Core 6, Entity Framework Core 6, C# 10, Angular 13, Clean Code, SOLID, DDD.
Stars: โœญ 2,285 (+1048.24%)
Mutual labels:  architecture
Architecture.taobao Alibaba
ไบ’่”็ฝ‘ๅ…ฌๅธๆžถๆž„: ๆท˜ๅฎๆŠ€ๆœฏๆžถๆž„๏ผŒ้˜ฟ้‡ŒๅทดๅทดๆŠ€ๆœฏๆžถๆž„
Stars: โœญ 2,130 (+970.35%)
Mutual labels:  architecture
Software Engineer Interview Questions
A lot of questions and links to prepare yourself for an interview.
Stars: โœญ 176 (-11.56%)
Mutual labels:  architecture
C4 Builder
This is a documentation builder. You feed it .md and .puml and it exports a site, pdf, or a markdown with navigation.
Stars: โœญ 164 (-17.59%)
Mutual labels:  architecture
Enhanced Rails Architecture
A set of good architectural patterns beyond the pure Ruby on Rails architecture.
Stars: โœญ 185 (-7.04%)
Mutual labels:  architecture
Mmlpx
๐Ÿ˜ mobx model layer paradigm
Stars: โœญ 164 (-17.59%)
Mutual labels:  architecture
Reactor
๐Ÿ”„ Unidirectional data flow in Swift.
Stars: โœญ 174 (-12.56%)
Mutual labels:  architecture
Widgetkit
Compose native apps without a code using JSON and load them as NSBundle into another app dynamicly from local or remote locations.
Stars: โœญ 191 (-4.02%)
Mutual labels:  architecture
Diagrams
๐ŸŽจ Diagram as Code for prototyping cloud system architectures
Stars: โœญ 15,756 (+7817.59%)
Mutual labels:  architecture
Rxpm
Reactive implementation of Presentation Model pattern in Android
Stars: โœญ 176 (-11.56%)
Mutual labels:  architecture

Sampler for Clean Architecture/Onion-Architecture Build Status

Author: Mark Paluch
Technologies: CDI, JSF, JPA, EJB, JPA, JAX-RS
Summary: Example Application built using an Onion-Architecture that incorporates multiple technologies
Source: https://github.com/mp911de/CleanArchitecture

More Information:

What is it?

This simple application consists of a few use cases. The purpose of the application is to show how to apply clean architecture patterns in a Multi-Module Maven/Java environment.

It all starts with the data structures/entities/application model. These models are independent of business logic and delivery mechanisms. The models are specific to your domain, but not necessary specific to your application. They live within the application-model module. Business rules and use cases, the specific things your application does, reside within the use-cases module. They depend on the application-model and perhaps on external things that are represented by boundaries, located in contracts. Those boundaries are an agreement between the use case and the other side that provides a specific implementation. The contracts depend only on the application-model. No ORM entities or external-specific API/entities. ORM, caching implementations, clients to external services implement a contract that is located in external and its sub-modules.

All parts are tied together by the delivery mechanism that integrates the externals and connects the use cases by supplying dependencies to come the system to life.

If you need a different implementation for any external, so you can easily change that specific part without affecting other parts of the system.

These patterns are verified by real life projects.

A word on Clean Architecture

As soon as you dig into the code, you'll notice comments on the one or other class. Subject of these comments is to help to understand the structure and the different styles, which are possible.

You'll notice soon, there are many different styles and ways to approach the Clean Architecture style. There are use cases which are built much more simple, e. g. without input/output boundaries and direct usage of dependency injection and there are use-cases which implement input boundaries and use output boundaries.

In the end it's up to you, how much you're willing to invest in your architecture. This is, however, only a variety of examples to give you an impression, how to express Clean Architecture with Java.

What does it?

The use cases are:

  • CreateOrUpdateItem
  • CreateOrUpdateUser
  • ListItems
  • ListOrders
  • PlaceOrder
  • PlaceOrderValidator

and a few business entities:

  • User
  • OrderItem
  • Order
  • Item

These use cases can be accessed by REST or Web UI (JSF) and are persisted using JPA within an in-memory H2 Database (everything you need is included).

Requirements to run the App

All you need to build this project is Java 6.0 (Java SDK 1.6) or better, Maven 3.0 or better.

The application this project produces is designed to be run on JBoss AS7, WildFly 8 or better. You could easily change the delivery mechanism to a console application with only providing a new delivery mechanism and a different approach how to wire the dependencies.

Build and Deploy the Quickstart

NOTE: The following build command assumes you have configured your Maven user settings. If you have not, you must include Maven setting arguments on the command line.

  1. Open a command line and navigate to the root directory of this project.

  2. Type this command to build and deploy the archive:

     mvn clean package wildfly:run
    
  3. This will start a WildFly 10 instance and deploy target/clean-architecture.war to the newly started instance.

Access the application

The application will be running at the following URL: http://localhost:8080/clean-architecture/.

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].