Fluent API Design in Java - A Crash Course
4.4 (12 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
280 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Fluent API Design in Java - A Crash Course to your Wishlist.

Add to Wishlist

Fluent API Design in Java - A Crash Course

A crash course on creating readable, intuitive, and easy-to-understand code.
New
4.4 (12 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
280 students enrolled
Created by Riaan Nel
Last updated 9/2017
English
Current price: $10 Original price: $50 Discount: 80% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 1 hour on-demand video
  • 4 Articles
  • 8 Supplemental Resources
  • 1 Coding exercise
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Design fluent API's.
  • Understand the benefits of using Fluent API's.
  • Understand why API's should be designed well.
  • Add new skills to your programming toolbox.
  • How to write intuitive, easy-to-understand code.
View Curriculum
Requirements
  • You should be familiar with an object-oriented programming language, such as Java or C#.
  • You should have an understanding of object-oriented programming principles.
  • The code examples are in Java - while they aren't mandatory to work through, it will be beneficial if you have a Java development environment (with Maven) configured.
Description

Have you ever looked at code that you needed to use, and thought that it could just be so much easier, better, and cleaner?  Have you ever wondered how tools like the Java™ DSL in Apache Camel or the streaming API's in Java 8 work under the covers?  If so, this course is for you!

Throughout the course, we'll look at what fluent API's are and how we can design them.  We'll look at the benefits of fluent API's, and we'll see real-world examples in practice.  We'll also work through examples where we implement our own fluent API's.  Our examples will be in Java, but the concepts are equally relevant to other object-oriented languages, like C#.

This course is intended to help you become a better programmer, by teaching you how to write code that is incredibly easy to understand.  After all, as programmers, we spend a significant amount of time reading existing code rather than writing new code.  Therefore, the ability to write code that is easy to read and easy to understand is a very important skill for programmers to have.  In this course, I want to help you develop that skill.

Who is the target audience?
  • Junior- to intermediate programmers who use an object-oriented language, such as Java or C#.
  • Anyone who wants to learn how to design fluent API's.
  • Anyone who wants to change the way in which they think about designing API's.
  • Anyone who wants to learn how to write intuitive, easy-to-understand code.
Compare to Other Java Courses
Curriculum For This Course
17 Lectures
01:17:31
+
Introduction
5 Lectures 18:27

In this lecture, we'll learn what API's are, and what some of the things are that make an API good.

Preview 02:40

In this lecture, we'll learn what fluent API's are and what they look like.

Preview 03:26

In this lecture, we'll briefly discuss the refactoring exercise that we'll work through in the next lecture.

Using a Fluent API in Practice
01:36

This lecture will help you to configure a Java development environment that you can use to work through the examples in this course.

Setting up Java and IntelliJ IDEA
05:16

In this lecture, we'll refactor some JUnit test cases to use Hamcrest - a fluent API.

Preview 05:29
+
Designing Fluent API's
10 Lectures 58:29

In this lecture, we'll discuss the next example that we're going to work through - implementing a fluent API by using the Builder design pattern.

Implementing a Fluent API - The Builder Pattern
01:33

In this lecture, we'll take some code that has an issue, and we'll address the issue by refactoring the code to make use of the Builder pattern and a fluent API.

Bank Account Management
09:52

This lecture includes an article the Builder pattern which students can use to review their understanding of the material covered in the previous lecture.

More on the Builder Pattern
04:59

In this lecture, we'll discuss the next example that we're going to work through - using a fluent API to implement a simple scheduler.

Implementing a Fluent API -Simple Scheduler
01:10

In this lecture, we'll use a fluent API to implement a very simple scheduling API.

Simple Scheduler
08:00

In this lecture, we'll discuss the next example that we're going to work through - implementing a framework, similar to the LINQ extension methods in C# .NET for operating on collections.

Implementing a Fluent API - Querying Collections
05:58

This lecture links to further information on generics and lambdas, in case you want to verify your understanding before moving on to the exercise.

Recap - Generics and Lambdas
00:12

In this lecture, we'll build a fluent API for querying collections.

Querying Collections
15:55

In this lecture, we'll expand on our fluent API for querying collections.

Querying Collections, Part 2
08:14

Query Collections, Sets
1 question

In this lecture, I'll share some tips that you can use when you design your own API's.

API Design Tips
02:36

This quiz will test your understanding of the material covered in this course.

Fluent API Design
5 questions
+
Summary
2 Lectures 01:21

In this final lecture, we'll briefly review what we've learnt during this course.

Summary
01:02

In this lecture, you can find the full versions of the coding exercises that we worked through during the course.

Complete Code Examples
00:19
About the Instructor
Riaan Nel
4.5 Average rating
61 Reviews
2,914 Students
3 Courses
Professional Software Developer

I am a professional software developer.  I hold a B.Sc in Business Information Technology with First Class Honours from the University of Greenwich.  

Throughout my career, I've designed and developed software for a number of different industries, I've written about software development, and I've lead and mentored development teams.  I am passionate about software development, craftsmanship, efficient and effective development processes, team culture, and continuous learning.