There is a lot of research and development effort that goes into building enterprise software that serves the customers in achieving their business goals. There are certain techniques to be followed to build the software iteratively and adapt to the changing requirements of the end users. This is where good low-level design architecture helps.
During the course of this project,
- Understood the implementation of the Movie booking problem implementation.
- Built a Hackerrank-like contest application by applying their Core Java + design skills
- Designed & implemented the classes required for a contest framework.
- Implemented the business logic of running a simulated contest.
- Built a JukeBox application based on a problem statement from scratch.
- Get introduced to the components of Clean Architecture.
- Understand entities and identify them with the help of real-world examples.
- Gather requirements and translate them into use cases.
- Understand the need for a datastore.
Clean Architecture
Components of Clean Architecture
- Explore different types of class relationships and their purpose.
- Discover relationships for different scenarios and draw an object diagram.
- Understand the provided Object Relationship Diagram of Movie Booking Problem statement.
- Understand the CodinGame problem statement. Draw Use Case and Object Diagram for the given scenarios
Object Oriented Design
Use Case Diagram for Coding Game
- Understand the entities of the provided implementation of Movie Booking Problem statement.
- For CodinGame Problem Statement
- Implement entities with the identified attributes and their behaviour.
- Implement the relationship between the entities
- Write good quality tests for entitles, which cover all the relevant behaviour.
Java, Unit Testing, Test Driven Development
- Understood the services & repositories layer of the provided implementation of Movie Booking Problem Statement.
- Implemented services & repositories layer of CodinGame adhering to the SOLID principles.
- Followed Test Driven Development to ensure correctness and better code coverage.
Java, Unit Testing, Test Driven Development, Design Patterns, SOLID Principles
- Understand the controller layer of the provided implementation of the Movie Booking Problem Statement.
- Implement all the required commands in the controller layer for the CodinGame problem statement using Test Driven Development.
Java,Unit Testing, Test Driven Development, Design Patterns, SOLID Principles
- Clearly understand the Problem Statement Requirements.
- Identify the Primary Use Cases / Behaviour of the system.
- Identify the Key Objects / Entities from the listed use cases.
- Identify the behaviours / supported operations for Identified objects.
- Identify Interactions between the entities (Class Relationships).
- Implement all the required layers embracing the clean architecture style.
- Implement all the required layers step by step in a Test-driven development style to ensure correctness and better code coverage.
Java, Object Oriented Design, Design Patterns, Test Driven Development, Unit Testing