Domain Modeling Made Functional
Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming—all the techniques you need will be introduced and explained.
Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation—ensuring that the code and design never get out of sync. Encode business rules in the design so that you have “compile-time unit tests,” and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small, testable functions into a complete use case, and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to se ...
Release It! 2nd Edition
If you're a software developer, and you don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic.
This updated edition deals with the production of today's systems - larger, more complex, and heavily virtualized - and includes information on chaos engineering, the discipline of applying randomness and deliberate stress to reveal systematic problems. Build systems that survive the real world, avoid downtime, implement zero-downtime upgrades and continuous delivery, and make cloud-native applications resilient. Examine ways to architect, design and build software - ...
Designing Web APIs
Designing an API is complicated to begin with, but evolving your API design over time makes the process even more difficult. There are several books on the topic, but none that guide you through key decisions for designing and building APIs for specific audiences and types of products. Well, until now, that is.
Using case studies from companies such as Slack, Stripe, Facebook, and Github, this practical guide shows you how to navigate complex decisions when building, scaling, and evolving your own APIs. You'll learn best practices for designing APIs that developers will love, and discover how to evolve your APIs as your product grows.
Developers, architects, tech leads, product managers, and engineering managers will:Examine strategies to expose data through web APIs, using webhooks, websockets, and HTTP;Learn how to evolve APIs while keeping them consistent;Be able to scale APIs with pagination and rate limiting;Handle security, performa ...
Designing Distributed Systems
In 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 ...
Learning Web Design, 5th Edition
Ideal for beginners seeking a design-centric introduction to HTML and related standards, this practical book helps you: Learn the site development process from start to finish; Create a simple (X)HTML page, including links and images; Explore text formatting, colors and backgrounds, page layout, and more in CSS; Get your pages on the web, with information on hosting, domain names, and FTP. ...
Microsoft Azure Cosmos DB Revealed
Learn the main features of Azure Cosmos DB and how to use Microsoft's multi-modal database service as a data store for mission-critical applications. The clear examples help in writing your own applications to take advantage of Cosmos DB's multi-modal, globally distributed, elastic database. Simple step-by-step instructions show how to resolve common and uncommon scenarios involving Azure Cosmos DB, and scenarios such as delivering extremely low response times (in the order of milliseconds), and scaling rapidly and globally.
Microsoft Azure Cosmos DB Revealed demonstrates a multitude of possible implementations to get you started. This book guides you toward best practices to get the most out of Microsoft's Cosmos DB service. Later chapters in the book cover advanced implementation features, helping you master important elements such as securing the database, querying, and using various APIs.
Set up a development environment to work with Azure Cosmos DB; Configure Azure Cosmos DB ...
Modern API Design with ASP.NET Core 2
Use ASP.NET Core 2 to create durable and cross-platform web APIs through a series of applied, practical scenarios. Examples in this book help you build APIs that are fast and scalable. You'll progress from the basics of the framework through to solving the complex problems encountered in implementing secure RESTful services. The book is packed full of examples showing how Microsoft's ground-up rewrite of ASP.NET Core 2 enables native cross-platform applications that are fast and modular, allowing your cloud-ready server applications to scale as your business grows.
Major topics covered in the book include the fundamentals and core concepts of ASP.NET Core 2. You'll learn about building RESTful APIs with the MVC pattern using proven best practices and following the six principles of REST. Examples in the book help in learning to develop world-class web APIs and applications that can run on any platform, including Windows, Linux, and MacOS. You can even deploy to Microsoft Azure and a ...
Pro iPhone Development with Swift 4
Acquire and master the information required to take you to the next level beyond basic iPhone development using Swift.
In this follow up work to the best selling Beginning iPhone Development with Swift, you'll learn how to improve your apps by managing the performance of your programs using parallelization, getting data in and out of the cloud, using gestures, the camera, 3D touch, sensors as well as newer features having debuted this year.
In its fourth edition, Pro iPhone Development with Swift 4 covers the additional information you want to know to extend your apps into the next level. ...
Software Design X-Rays
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design as well as technical design you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code!
Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledg ...
This Is Service Design Doing
How can you establish a customer-centric culture in an organization? This is the first comprehensive book on how to actually do service design to improve the quality and the interaction between service providers and customers. You'll learn specific facilitation guidelines on how to run workshops, perform all of the main service design methods, implement concepts in reality, and embed service design successfully in an organization.
Great customer experience needs a common language across disciplines to break down silos within an organization. This book provides a consistent model for accomplishing this and offers hands-on descriptions of every single step, tool, and method used. You'll be able to focus on your customers and iteratively improve their experience.
Move from theory to practice and build sustainable business success. ...
IP Multicast, Volume II
IP Multicast, Volume II thoroughly covers advanced IP multicast designs and protocols specific to Cisco routers and switches. It offers a pragmatic discussion of common features, deployment models, and field practices for advanced Cisco IP multicast networks, culminating with commands and methodologies for implementation and advanced troubleshooting.
After fully discussing inter-domain routing and Internet multicast, the authors thoroughly explain multicast scalability, transport diversification, and multicast MPLS VPNs. They share in-depth insights into multicast for the data center, a full chapter of best-practice design solutions, and a start-to-finish troubleshooting methodology designed for complex environments.
Reflecting the authors extensive experience with service provider and enterprise networks, IP Multicast, Volume II will be indispensable to IP multicast engineers, architects, operations technicians, consultants, security professionals, and collaboration speci ...