Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
Discover a new way of thinking about business applications in light of the massive industry shift toward cloud computing and reactive programming technologies. This book synthesizes technologies and techniques such as event sourcing, command query responsibility segregation (CQRS), property-based testing, and GraphQL into a cohesive guide for modern business applications that benefit every developer.
The book begins with a look at the fundamentals of modern business applications. These fundamentals include business rules and the managing of data over time. The benefits of reactive techniques are explained, including how they are fundamentally aligned with what application developers strive to achieve in their work.
Author Peter Royal equips you with sound guidance to follow as you evolve your existing systems, as well as examples of how to build those systems using modern techniques in Spring, Java, and PostgreSQL.
The Java Virtual Machine (JVM) has proven to be an extremely capable runtime platform for business applications. It has a mature ecosystem of tools for packaging software, debugging, and performance monitoring. There is also a vibrant community of open source development with libraries and frameworks available to assist with many of the tasks you may encounter.
While other languages are available for the JVM, I’ve found the Java language to be my preferred choice. The language designers take a pragmatic approach to adding new features, preferring to think deeply around how they interact with an understanding that code written against them will be in service for many years. I believe this deliberate pace to changes is one reason why alternate languages have sprouted up, such as Groovy, Scala, and Kotlin. While each of these may offer a short- or medium-term productivity boost, I do not think they are the best choices for software systems that may have a lifetime of a decade or more. Java is a pragmatic choice. If you are more comfortable with another language or runtime, implement this system using that. I do implore you to consider the expected lifetime of your work, realizing that it will likely be longer than you think if it ends up being successful. Are you setting at best, your future self, or at worst, someone new entirely, up for a migration off an abandoned language or runtime? It is this line of thinking that keeps me on Java and the JVM. It has a proven track record of being used for over two decades.
What You Will Learn
Architect business applications for cloud-based environments
Design sustainable business applications
Integrate GraphQL best practices into business applications
Use property-based testing to exhaustively test possible system states
Think about business applications in terms of message flows
Relate the benefits of reactive systems to business goals
Model time appropriately for business requirements
Who This Book Is For
Practicing software developers who are building business applications, developers who are being asked to deploy into cloud environments that are more volatile than statically provisioned data centers, developers who want to increase the reliability of their systems and are struggling to find the right paradigms and architectures to achieve their goals, developers who see and use capabilities in software in other areas of their lives and want to bring those capabilities into their own work, and developers with experience designing other types of software who want to learn how to design business applications