Production debugging is hard, and it’s getting harder. With architectures becoming more distributed and code more asynchronous, pinpointing and resolving errors in production is no child's game. This session will cover advanced techniques that Java, Scala and Clojure developers can use to debug live servers and resolve critical errors in production quickly.We'll explore five crucial techniques for distributed and reactive logging, and some of the pitfalls that make resolution much more difficult (and even lead to downtime). We'll then dive into more advanced techniques and powerful tools for capturing live state from a production JVM without deploying new code, restarting the application or attaching a debugger.
You’re a software developer with a basic understanding of Java and the Java Virtual Machine (JVM), but you want to write more productive code that is fast and less verbose. This learning path covers the fundamentals of Clojure, a dynamic, generalpurpose programming language for the JVM. You’ll dive into such topics as Java interoperability, concurrency, interacting with data, and working with collections, along with best practices so you can be on your way to writing Clojure code that is simple, maintainable, and fast. Once you’ve added the skills in this learning path to your programming tool belt, you’ll be ready to move on to more advanced Clojure development challenges.