This course provides the intermediate-level Java programmer with techniques and tools, but more importantly with the ability to recognize coding pitfalls and to take the opportunity to apply a variety of best practices when developing enterprise-class software. We review Java exception handling and logging APIs and discuss best practices for error handling, logging, and tracing in Java. We consider modern Java threading and concurrency solutions such as atomic operations, semaphores, and thread pools. And we look at Java Reflection, especially because it is essential to solving certain problems that arise later in the course, such as isolating test environments, certain factory patterns, and dependency injection.We introduce some common coding pitfalls, for each of which we identify and explore better code-factoring approaches. This leads naturally to a discussion of design patterns, and there is plenty of exercise in "gang of four" patterns - creational, behavioral, and structural.We conclude with chapters on unit testing using JUnit. The programmer is encouraged not only to test, but to write solid, fine-grained, and well-isolated tests, and to consider the design of classes under test to foster the best testability.
3 Days/Lecture & Lab
This course is designed for intermediate-level Java programmers.
There are no prerequisites for this course.