Kito D. Mann is the Principal Consultant at Virtua, Inc., specializing in enterprise application architecture, training, development, and mentoring with microservices, cloud, Web Components, Angular, and Jakarta/Java EE technologies. He is also the co-host of The Stackd Podcast and the author of JavaServer Faces in Action. Mann has participated in several Java Community Process expert groups (including CDI, JSF, and Portlets) and is an internationally recognized speaker. He is also a Java Champion and Google Developer Expert in Web Technologies. He holds a BA in Computer Science from Johns Hopkins University.
One of the most common reasons for software defects is poor exception handling. The more complex the application, the more difficult it can be to track down the root cause of a bug. An exception at the service or database layer may manifest itself as unpredictable behavior at the user interface level. Simple coding errors or unexpected inputs may result in unnecessary and confusing error messages. The net result is an application that doesn't meet the user's expectations. These types of issues can be avoided by handling exceptions properly.
In this session, we'll look at examples of what happens when exceptions aren't handled, and how you can avoid unexpected defects by following a few key principles and using some discipline. We'll also examine the importance of establishing logging standards, and look at how to properly configure error pages and use the error handling facilities in Spring and Java EE applications.
Outline:
Bad things happen; expect them
Exception defined
Exception handling amorphisms:
if you can recover from it, catch it and tell the user (if necessary)
Use a logging framework
Do not log an exception more than one time
Throw meaningful exceptions
Don’t eat exceptions
Centralize exception handling
Handing exceptions in browsers
If you talk to the most well-known programmers, whether they’re people within your organization or internationally recognized experts, you’ll find something in common: they’re productive. Usually, it isn’t just dumb luck. More often than not, they’ve focused on becoming more productive. There are dozens of methodologies that claim to increase productivity, but there’s a clear winner amongst highly productive software developers: Getting Things Done (GTD). GTD, originally described in productivity guru David Allen’s bestseller of the same title, describes a set of behaviors that, when followed regularly, reduce stress and help you become more productive at the same time.
This session looks at how programmers, architects, and technical managers can apply GTD principles to improve the productivity of individuals and the group as a whole. In addition to discussing the core principles of GTD, this session also examines tools that can be used to implement the methodology as well as similarities to agile software development practices.
The promise of Reactive programming models is that you can free yourself from the constraints of handling one request for each thread and realize increased throughput as a result. The only problem is that it requires a completely different set of APIs that many developers find counter-intuitive. What if you can achieve the same performance using thread-per-request APIs, and let the Java virtual machine handle the hard work of blocking when appropriate, and executing platform threads when the time is right? Enter virtual threads, a key feature of Project Loom, currently available in JDK 19.
In this session, we'll look at how different frameworks, such as Helidon and Quarkus, are using this powerful new feature to increase throughput without requiring reactive programming models.