Git Product home page Git Product logo

mybank's Introduction

#MyBank Application

This project has has two main goals :

  • to be integrated in a DevOps workflow
  • to use the market current best practices in software development

The domain expressed is the banking one in it's simpliest way.

Consumers should be able to make rest calls to create banking accounts and do some operations like withdrawals, deposits, etc ...)

1 - Integration into a DevOps workflow

What is DevOps ?

DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach.

DevOps emphasizes people (and culture), and seeks to improve collaboration between operations and development teams.

DevOps implementations utilize technology โ€” especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.

The protagonists

  • The "Devs" part represent every people implicated by making the software : the developers, the business and the QAs. Their goal is to add new features, they want changes.

  • The "Ops" represent part every people implicated in managing and maintaining the production : systems, security and networks engineers, and DBAs. Their goal is to easily manage the production, they want stability.

Both parts have antagonist goals

How to achieve this goals

  • feature teams : Biz, Dev, Ops and QA in one team to do the entire life cycle of a feature. Facilitate communications and informations sharing. In terms of size, think pizza shares
  • continuous integration : test, build and deploy at each code modification to see if regressions are presents and fix it the ealier
  • shift left testing : early automated users acceptance tests (UAT) executed in the Continous Integration
  • tests are done on environments similar to production to avoid late surprises
  • short feed back loop, fail fast
  • production monitoring

DevOps principles : C.A.L.M.S

  • Culture
  • Automation
  • Lean
  • Measurement
  • Sharing

DevOps in practice

The "Dev" part

In

2 - Software architecture

DDD

Ubiquitous language

BDD

Cucumber + Tatziki Specifications by examples

TDD

AssertJ + Mockito

Hexagonal architecture

Multi modules: domain (the most important module), infrastructure for the technical and expostion to expose our api

No ORM: MyBatis to manage SQL queries

DBA and Devs can integrate SQL query and fetch the results in domain Objects quite easily

Liquibase

Database version control and deployment

Exposition Rest

Swagger2

mybank's People

Contributors

magierdan avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.