JAVA-301

Enterprise Java

Download as PDF
Enquire Now

Course Overview

Addresses more advanced techniques for common concerns in Java enterprise development:

  • Integration Testing: efficiency, reliability, repeatability
  • Performance & Data Consistency: especially in high-concurrency systems
  • Migrating Production Versions Safely
  • Architecting for Multiple Teams
  • Web & Database Optimization & Maintainability

Learning Outcomes

  • Domain Driven Design
  • Mock Testing
  • Integration Testing
  • TestContainers
  • POST-GET-Redirect (PRG) Pattern
  • REST
  • Transactions & Concurrency
  • Database Optimization
  • Database Migration
  • Load Testing w/ JMeter
  • Command Query Responsibility Separation (CQRS)
  • UI Testing w/ Selenium

Course Outline

Domain Driven Design (DDD)

  • Ubiquitous Language
  • Layered vs. Hexagonal Architecture
  • Domain Classes
  • Entities
  • Value Objects
  • Services
  • Service Anti-Patterns
  • DDD Package Structure
  • Aggregates
  • Bounded Context
  • Event Storming

Mock Testing

  • Test-Driven Development (TDD) using Mockito

Integration Testing

  • TDD using Spring MockMvc
  • Testcontainers
  • Separating unit tests from integration tests

Testcontainers

  • The Testcontainers library provides lightweight throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container, in support of JUnit tests.
  • Best practices for integration testing using Testcontainers

POST-GET-Redirect (PRG) Pattern

  • The POST-GET-Redirect (PRG) architectural pattern helps prevent users from making duplicate submissions.

RESTful Architecture

  • What does REST mean?
  • Common conventions

Transactions & Concurrency

  • Testing for race conditions
  • How to avoiding them

Database Optimization

  • Profiling & Replication
  • Indexing best practices
  • Optimizing Queries
  • Optimizing Schemas
  • Avoiding Deadlocks
  • Optimization with the Application
  • Archiving & Partitioning
  • Reclaming Storage & Gathering Statistics

Database Schema Migration

  • Using Liquibase to manage changes to database structure

Load Testing with JMeter

  • Performance testing overview
  • HTTP Protocol overview
  • Simulating requests
  • Simulating concurrent users
  • Managing cookies
  • Generating reports
  • Interpreting results
  • Record & playback
  • Using variables & functions
  • Scaling-up tests using master-slave configuration
  • Tips & best practices

Command Query Responsibility Separation (CQRS) Pattern

  • Using different models to handle different requests and responses

User Interface Testing with Selenium

  • Overview of UI Testing
  • Selenium IDE (record & playback)
  • Review of CSS Locators
  • Review of XPath
  • Selenium Web Driver API: Setting Up
  • Navigation
  • Referencing web elements using Id and Name Locators
  • CSS
  • XPath
  • Handling text boxes
  • Handling dropdown/select elements
  • Handling multiple select elements
  • Handling checkboxes and radio buttons
  • Explicit and implicit wait
  • Handling keyboard & mouse events
  • Using actions and action
  • Handling web tables
  • Handling upload and download

Introduction to MongoDB (NoSQL)

  • Overview – history, advantages & disadvantages
  • Using the mongo console
  • Connecting to a database
  • Querying
  • Filters
  • Embedded documents in filters
  • Comparison Operators
  • Pagination
  • Aggregation Framework
  • Creating a Database
  • Creating Collections
  • Inserting Documents
  • Updating
  • Replacing
  • Deleting
  • Analyzing performance of queries Indexing
  • Unique constraint
  • Document validation
  • Java library for MongoDB

Skill Level

Advanced

Suitable For

Java developers who want to write high quality, robust, scalable code for Enterprise or other mission-critical applications. Should have prior experience with HTML, SQL, JUnit, Spring or Java EE, and JPA.

Duration

5

 day

s

Related Topics

Enquire Now
JAVA-301

Enterprise Java

Download as PDF
Enquire Now

Skill Level

Advanced

Suitable For

Java developers who want to write high quality, robust, scalable code for Enterprise or other mission-critical applications. Should have prior experience with HTML, SQL, JUnit, Spring or Java EE, and JPA.

Duration

5

 day

s

Related Topics

Course Overview

Addresses more advanced techniques for common concerns in Java enterprise development:

  • Integration Testing: efficiency, reliability, repeatability
  • Performance & Data Consistency: especially in high-concurrency systems
  • Migrating Production Versions Safely
  • Architecting for Multiple Teams
  • Web & Database Optimization & Maintainability

Learning Outcomes

  • Domain Driven Design
  • Mock Testing
  • Integration Testing
  • TestContainers
  • POST-GET-Redirect (PRG) Pattern
  • REST
  • Transactions & Concurrency
  • Database Optimization
  • Database Migration
  • Load Testing w/ JMeter
  • Command Query Responsibility Separation (CQRS)
  • UI Testing w/ Selenium

Course Outline

Domain Driven Design (DDD)

  • Ubiquitous Language
  • Layered vs. Hexagonal Architecture
  • Domain Classes
  • Entities
  • Value Objects
  • Services
  • Service Anti-Patterns
  • DDD Package Structure
  • Aggregates
  • Bounded Context
  • Event Storming

Mock Testing

  • Test-Driven Development (TDD) using Mockito

Integration Testing

  • TDD using Spring MockMvc
  • Testcontainers
  • Separating unit tests from integration tests

Testcontainers

  • The Testcontainers library provides lightweight throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container, in support of JUnit tests.
  • Best practices for integration testing using Testcontainers

POST-GET-Redirect (PRG) Pattern

  • The POST-GET-Redirect (PRG) architectural pattern helps prevent users from making duplicate submissions.

RESTful Architecture

  • What does REST mean?
  • Common conventions

Transactions & Concurrency

  • Testing for race conditions
  • How to avoiding them

Database Optimization

  • Profiling & Replication
  • Indexing best practices
  • Optimizing Queries
  • Optimizing Schemas
  • Avoiding Deadlocks
  • Optimization with the Application
  • Archiving & Partitioning
  • Reclaming Storage & Gathering Statistics

Database Schema Migration

  • Using Liquibase to manage changes to database structure

Load Testing with JMeter

  • Performance testing overview
  • HTTP Protocol overview
  • Simulating requests
  • Simulating concurrent users
  • Managing cookies
  • Generating reports
  • Interpreting results
  • Record & playback
  • Using variables & functions
  • Scaling-up tests using master-slave configuration
  • Tips & best practices

Command Query Responsibility Separation (CQRS) Pattern

  • Using different models to handle different requests and responses

User Interface Testing with Selenium

  • Overview of UI Testing
  • Selenium IDE (record & playback)
  • Review of CSS Locators
  • Review of XPath
  • Selenium Web Driver API: Setting Up
  • Navigation
  • Referencing web elements using Id and Name Locators
  • CSS
  • XPath
  • Handling text boxes
  • Handling dropdown/select elements
  • Handling multiple select elements
  • Handling checkboxes and radio buttons
  • Explicit and implicit wait
  • Handling keyboard & mouse events
  • Using actions and action
  • Handling web tables
  • Handling upload and download

Introduction to MongoDB (NoSQL)

  • Overview – history, advantages & disadvantages
  • Using the mongo console
  • Connecting to a database
  • Querying
  • Filters
  • Embedded documents in filters
  • Comparison Operators
  • Pagination
  • Aggregation Framework
  • Creating a Database
  • Creating Collections
  • Inserting Documents
  • Updating
  • Replacing
  • Deleting
  • Analyzing performance of queries Indexing
  • Unique constraint
  • Document validation
  • Java library for MongoDB