
Explore faster server-side code with Spring Boot, MVC structure, and Gradle dependency management. Implement Hibernate, Liquibase, and caching while optimizing select queries, string building, and parallel processing.
Explore the Angular 7 client side by bootstrapping a template with ng new my-app, generating faster and library-list components, and wiring a library service to connect to the server.
Demonstrate batch insertion in Liquibase store procedures using db changelog changesets, showing how batching hundreds of thousands of transactions slashes runtime from hours to minutes.
Remove redundant data from queries to cut network time and speed up client display by loading library name, member name, and book name, using a fasterFilter constructor with Lombok.
Compare client-side performance with and without redundant fields using http service calls. The lesson compares execution time for Library A and Library B, showing current code is faster.
Remove redundant null values with a data transfer object for query results. Create a TransactionDTO with memberName, libraryName, and bookTitle; map the query to it on server and improve performance.
Compare client-side performance after implementing a DTO by updating filter result mapping and testing with library A and library B to measure execution time.
Remove redundant joins to optimize query planning cost, leveraging Hibernate's eager fetch and fetch depth to automatically handle related entities like Transaction, Book, Member, and Library.
Assess sql in-expression performance by comparing in, exists, and or; implement between expression on the server side for single or all libraries.
Implement a second level cache with Hibernate to cache library objects across sessions, complementing the first-level cache. Configure EHCache via ehcache.xml and apply strategies such as none, read-only, and read-write.
optimize download performance by replacing string concatenation with StringBuilder in the server-side filter-ids flow, update the query, and compare before-and-after performance across service and controller.
Compare download performance of legacy and optimized code by invoking the service via http and a faster page, then measure execution time to show string builder impact on client-side downloads.
Implement parallel processing in the download method using a parallel stream to compare server-side and client-side performance, building on the earlier StringBuilder approach.
Create a docker image and container for the client and server side, building the Spring Boot jar with Gradle, and launch everything with Docker Compose up.
Test the full application after client and server implementations and docker, comparing slower red before states with faster blue after states to demonstrate performance improvements.
In this cource, we will learn basic and advance optimization codes. We will implement faster codes and we will compare before and after. The common topics which is learned in this cource can be listed like below:
Spring Boot implementatin on example project.
Angular 7 implementation on example project.
SQL optimization. MySQL(as database) will be used.
Docker implementation: Dockerfile, docker-compose, docker commands...
Hibernate implementation.
Liquibase implementation with example code blocks.
Abstract hibernate template interface and implementation.
Faster code blocks.
Code optimization.
String vs StringBuilder
File download optimization.
Liquibase
Lombok @Data Annotation
Caching
Second Level Caching in Hibernate
Query Caching in Hibernate
Parallel processing in Java Lists.
SQL Query Execution Order
You know that performance is important topic for software development so this course is important for it. We will examine some basic concepts, some basic points about sql, caching, java core, java primitives... Caching and parallel processing are also important topic so we will also mention about them in this course. Also, we will check the code cleanness in this course. Also we will use some utility libraries for clean code and effective code. Some examples about them are liquibase, docker... We will also mention them and we will investigate about them for effective, faster code.