Home

Awesome

Clean Arch Example

An implementation of Clean Architecture in Scala. We will implement a simple blog application using Clean Architecture in Scala. The bellow image is a schematic of our clean architecture style.

Clean Architecture

Subprojects:

I will walk through the following projects to show the process of creating a Scala Application using Clean Architecture and some frameworks:

  1. Clean Architecture
    1. Template
    2. Domain
    3. Contract
    4. Application
  2. Improvements
    1. Handling Exceptions
    2. Future Utils
    3. Update with Action
  3. Test
    1. Test
  4. Dependency Injection
    1. Dependency Injection with Guice
  5. REST Server
    1. REST Server with Play
    2. REST Server with Finatra
    3. REST Server with Akka
  6. Connect to Databases
    1. Connect to Databases using Slick
    2. Connect to Databases using ScalikeJDBC

1. Clean Architecture

1. Template

Directories and abstraction of contract.service.Service.

For more information about this section visit my blog - Clean Architecture in Scala.

2. Domain

Design of classes and implementation of simple class-related use cases.

For more information about this section visit my blog - Implementing a Clean Architecture Application in Scala - Part 1 .

3. Contract

Signature of services and callbacks.

For more information about this section visit my blog - Implementing a Clean Architecture Application in Scala - Part 1 .

4. Application

Implementation of repositories, use cases, and modules.

Here are some tips about config files.

1. Improvements

1. Handling Exceptions

Reserved

2. Future Utils

Reserved

3. Update with Action

Reserved

2. Test

1. Test with ScalaTest

RESERVED

2. Test with ScalaTest and Mockito

RESERVED

3. Dependency Injection

1. Dependency Injection with Guice

Initialized.

4. REST Server

1. REST Server with Play

RESERVED

2. REST Server with Finatra

Initialized.

3. REST Server with Akka

RESERVED

5. Connect to Databases

1. Connect to Databases with Slick

RESERVED

2. Connect to Databases with ScalikeJDBC

RESERVED

Read More

For more information about this repository, visit my blog.

Contributing

Please create an issue to suggest a new concept, framework, or library.

Implement current concepts using mentioned frameworks or libraries, and send a PR. PRs are always welcome.