-
Notifications
You must be signed in to change notification settings - Fork 1
Description
docker-java-project
This is a project which I am implementing with a colleague during our Wednesday afternoon personal development time.
I have been working on several enterprise level applications using layered architecture, with RESTful endpoints all in Java.
The aim is to create a similar type of applications, but on a much smaller level, with less complex business cases. This will help get used to the ideas I have been implementing in the business sense. Plus I came into the project late, after the initial setup has been done, so it would be good to have a basic understanding of this too.
There is no time frame. I believe that this can be
Approach
Create a simple service in a container with business logic which is accessed via RESTful API. Later this will interact with another service in a container automatically. Where both services interact with a database in a container.
Technologies
First the project will involve the following
- Java 1.8
- Testing
-- Junit (general testing framework - for acceptance/documentation/module/unit/static analysis)
-- Mockito (mocking dependencies at unit level)
-- Yatspec (for acceptance/documentation testing)
-- Findbugs (general bugs)
-- pmd (style guide)
-- pi test (code coverage) - Log4j (logging information when app is running)
- Docker (containers)
- Postman (to manually test calls to the end point)
- SQL (to make queries to database)
Due to being layered, the infrastructure tech is flexible but the time being we will use
- Jetty (web service)
- PostgresSQL (Database)
Other techs to play around with, should be able to plug this in as these will be part of infrastructure (Apart from Kubernetes)
- Kubernetes
- Continous integration (team city/jenkins)
- MongoDB/Cassandra (NoSQL DB)
- business flows
- Spring (handle dependency injection framework, or restful API)
- Hibernate (ORM and not use pure SQL)
- front-end tech (have a website) - ember/HTML/CSS
- Security (encryption across api calls)
- concurrency, multiple threads
General ideas
- Microservices
- Functional programming
- Object oriented programming design
- Design patterns
- RESTful api
- Databases and querying using SQL
- Webservers/servlets
- Event sourcing and CQRS
- Domain driven design (entities/domain values/ aggregates)
- Test driven design
- Behaviour driven design