Designing Distributed SystemsIn the race to compete in today's fast-moving markets, large enterprises are busy adopting new technologies for creating new products, processes, and business models. But one obstacle on the road to digital transformation is placing too much emphasis on technology, and not enough on the types of processes technology enables. What if different lines of business could build their own services and applications - and decision-making was distributed rather than centralized?
This report explores the concept of a digital business platform as a way of empowering individual business sectors to act on data in real time. Much innovation in a digital enterprise will increasingly happen at the edge, whether it involves business users (from marketers to data scientists) or IoT devices. To facilitate the process, your core IT team can provide these sectors with the digital tools they need to innovate quickly.
This report explores: Key cultural and organizational changes for developing business ...
Elemental Design PatternsEven experienced software professionals find it difficult to apply patterns in ways that deliver substantial value to their organizations. In Elemental Design Patterns Jason McC. Smith addresses this problem head-on, helping developers harness the true power of patterns map them to real software implementations more cleanly and directly, and achieve far better results. Part tutorial, part example-rich cookbook, this resource will help developers, designers, architects, and analysts successfully use patterns with a wide variety of languages, environments, and problem domains. Every bit as important, it will give them a deeper appreciation for the work they've chosen to pursue.
Smith presents the crucial missing link that patterns practitioners have needed: a foundational collection of simple core patterns that are broken down to their core elements. If you work in software, you may already be using some of these elemental design patterns ...
Adaptive Code, 2nd EditionBy applying this book's principles, you can create code that accommodates new requirements and unforeseen scenarios without significant rewrites. Gary McLean Hall describes Agile best practices, principles, and patterns for designing and writing code that can evolve more quickly and easily, with fewer errors, because it doesn't impede change.
Now revised, updated, and expanded, Adaptive Code, Second Edition adds indispensable practical insights on Kanban, dependency inversion, and creating reusable abstractions. Drawing on over a decade of Agile consulting and development experience, McLean Hall has updated his best-seller with deeper coverage of unit testing, refactoring, pure dependency injection, and more.
Master powerful new ways to: Write code that enables and complements Scrum, Kanban, or any other Agile framework; Develop code that can survive major changes in requirements; Plan for adaptability by using dependencies, layering, interfaces, and design patterns; Perfo ...
Reactive Design PatternsModern web applications serve potentially vast numbers of users - and they need to keep working as servers fail and new ones come online, users overwhelm limited resources, and information is distributed globally. A Reactive application adjusts to partial failures and varying loads, remaining responsive in an ever-changing distributed environment. The secret is message-driven architecture - and design patterns to organize it.
Reactive Design Patterns presents the principles, patterns and best practices of Reactive application design. You'll learn how to keep one slow component from bogging down others with the Circuit Breaker pattern, how to shepherd a many-staged transaction to completion with the Saga pattern, how to divide datasets by Sharding, and more. You'll even see how to keep your source code readable and the system testable despite many potential interactions and points of failure. ...
Advanced Analytics with Spark, 2nd EditionIn the second edition of this practical book, four Cloudera data scientists present a set of self-contained patterns for performing large-scale data analysis with Spark. The authors bring Spark, statistical methods, and real-world data sets together to teach you how to approach analytics problems by example. Updated for Spark 2.1, this edition acts as an introduction to these techniques and other best practices in Spark programming.
You'll start with an introduction to Spark and its ecosystem, and then dive into patterns that apply common techniques - including classification, clustering, collaborative filtering, and anomaly detection - to fields such as genomics, security, and finance.
If you have an entry-level understanding of machine learning and statistics, and you program in Java, Python, or Scala, you'll find the book's patterns useful for working on your own data applications.
Familiarize yourself with the Spark programming model; Become comfortabl ...
Java 9 ModularityThe upcoming Java 9 module system will affect existing applications and offer new ways of creating modular and maintainable applications. With this hands-on book, Java developers will learn not only about the joys of modularity, but also about the patterns needed to create truly modular and reliable applications. Authors Sander Mak and Paul Bakker teach you the concepts behind the Java 9 module system, along with the new tools it offers. You'll also learn how to modularize existing code and how to build new Java applications in a modular way.
Understand Java 9 module system concepts; Master the patterns and practices for building truly modular applications; Migrate existing applications and libraries to Java 9 modules; Use JDK 9 tools for modular development and migration. ...
Cloud Native InfrastructureCloud native infrastructure is more than servers, network, and storage in the cloud - it is as much about operational hygiene as it is about elasticity and scalability. In this book, you'll learn practices, patterns and requirements for creating infrastructure that meets your needs, capable of managing the full life cycle of cloud native applications.
Justin Garrison and Kris Nova reveal hard-earned lessons on architecting infrastructure from companies such as Google, Amazon, and Netflix. They draw inspiration from projects adopted by the Cloud Native Computing Foundation (CNCF), and provide examples of patterns seen in existing tools such as Kubernetes.
Understand why cloud native infrastructure is necessary to effectively run cloud native applications; Use guidelines to decide when - and if - your business should adopt cloud native practices; Learn patterns for deploying and managing infrastructure and applications; Design tests to prove that your infrastru ...
Modern Java EE Design PatternsWith the ascent of DevOps, microservices, containers, and cloud-based development platforms, the gap between state-of-the-art solutions and the technology that enterprises typically support has greatly increased. But as Markus Eisele explains in this O'Reilly report, some enterprises are now looking to bridge that gap by building microservice-based architectures on top of Java EE.
Can it be done? Is it even a good idea? Eisele thoroughly explores the possibility and provides savvy advice for enterprises that want to move ahead. The issue is complex: Java EE wasn't built with the distributed application approach in mind, but rather as one monolithic server runtime or cluster hosting many different applications. If you're part of an enterprise development team investigating the use of microservices with Java EE, this book will help you:
- Understand the challenges of starting a greenfield development vs tearing apart an existing brownfield application into services;
- Examine your b ...
Java Design PatternsLearn how to implement design patterns in Java: each pattern in Java Design Patterns is a complete implementation and the output is generated using Eclipse, making the code accessible to all. The examples are chosen so you will be able to absorb the core concepts easily and quickly.
This book presents the topic of design patterns in Java in such a way that anyone can grasp the idea. By giving easy to follow examples, you will understand the concepts with increasing depth. The examples presented are straightforward and the topic is presented in a concise manner.
This is a practitioner's book on design patterns in Java. Design patterns are a popular topic in software development. A design pattern is a common, well-described solution to a common software problem. There is a lot of written material available on design patterns but scattered and not in one single reference source. Also, many of these examples are unnecessarily big and complex. ...
Beginning SOLID Principles and Design Patterns for ASP.NET DevelopersThis book teaches you all the essential knowledge required to learn and apply time-proven SOLID principles of object-oriented design and important design patterns in ASP.NET 5 applications. You will learn to write server-side as well as client-side code that makes use of proven practices and patterns.
SOLID is an acronym used to describe five basic principles of good object-oriented design - Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation and Dependency Inversion. This book covers all five principles and illustrates how they can be used in ASP.NET 5 applications.
Design Patterns are time proven solutions to commonly occurring software design problems. The most well-known catalog of design patterns comes from Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, the so-called GoF patterns (Gang of Four patterns). This book contains detailed descriptions of how to apply Creational, Structural and Behavioral GoF desig ...
Applied Akka PatternsWhen it comes to big data processing, we can no longer ignore concurrency or try to add it in after the fact. Fortunately, the solution is not a new paradigm of development, but rather an old one. With this hands-on guide, Java and Scala developers will learn how to embrace concurrent and distributed applications with the open source Akka toolkit. You'll learn how to put the actor model and its associated patterns to immediate and practical use.
Throughout the book, you'll deal with an analogous workforce problem: how to schedule a group of people across a variety of projects while optimizing their time and skillsets. This example will help you understand how Akka uses actors, streams, and other tools to stitch your application together.Model software that reflects the real world with domain-driven design;Learn principles and practices for implementing individual actors;Unlock the real potential of Akka with patterns for combining multiple actor ...