Designing Elixir Systems with OTPYou know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that's kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what's happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus.
Elixir is gaining mindshare as the programming language you can use to keep your software running forever, even in the face of unexpected errors and an ever growing need to use more processors. This power comes from an effective programming language, an excellent foundation for concurrency and its inheritance of a battle-tested framework called the OTP.
If you're using frameworks like Phoenix or Nerves, you're already ...
Functional Design Patterns for Express.jsReady to design Node.js backends that scale elegantly with new features and are a pleasure to maintain? Learn to apply functional programming patterns that transcend Express.js - these ideas are found in exceptional production codebases of all kinds. Whether you're a seasoned back-end developer, front-end developer or recent web boot camp graduate, this step-by-step guide is for you.
This work was written and produced entirely by the author. We are proud to be distributing it.
Express is arguably the ubiquitous library for building Node backends. As of mid-2019, it is a dependency of 3.75 million codebases on Github alone. So if you hop into a Node codebase, chances are Express is part of it.
Starting from an empty directory, we'll build a full-featured Express backend together and intentionally bump into codebase growing pains to motivate functional design patterns and Express features.
With this book, you'll: Learn Express.js by building a pure backend with ...
Object Design Style GuideObjects are the central concept of languages like Java, Python, C#. Applying best practices for object design means that your code will be easy to read, write, and maintain. Object Design Style Guide captures dozens of techniques for creating pro-quality OO code that can stand the test of time. Examples are in an instantly familiar pseudocode, teaching techniques you can apply to any OO language, from C++ to PHP.
Well-written OO code is a pleasure to read, modify, and debug. Elevate your coding style by mastering the universal best practices for object design presented in this book. These clearly presented rules, which apply to any OO language, maximize the clarity and durability of your codebase and increase productivity for you and your team.
Object Design Style Guide presents dozens of professional techniques for writing OO code. In it, veteran developer Matthias Noback lays out design rules for constructing objects, defining methods, changin ...
Database Design and Relational Theory, 2nd EditionCreate database designs that scale, meet business requirements, and inherently work toward keeping your data structured and usable in the face of changing business models and software systems.
This book is about database design theory. Design theory is the scientific foundation for database design just as the relational model is the scientific foundation for database technology in general. Databases lie at the heart of so much of what we do in the computing world that negative impacts of poor design can be extraordinarily widespread.
This second edition includes greatly expanded coverage of exotic and little understood normal forms such as: essential tuple normal form (ETNF), redundancy free normal form (RFNF), superkey normal form (SKNF), sixth normal form (6NF), and domain key normal form (DKNF). Also included are new appendixes, including one that provides an in-depth look into the crucial notion of data consistency. Sequencing of topics has been imp ...
Designing Microservices with DjangoExplore microservices using the Python-based Django framework and review the benefits and drawbacks of them. This book will examine what microservices look like, how they talk to each other, and how they are crafted using the Python programming language and the Django web framework.
You'll start by understanding what the key differences are between microservices and monolithic architectures. The book then does a deep dive into how microservices are built and what common models have emerged in our industry. You'll also take an extensive look at communication and ownership patterns and examine methodologies to speed up your architecture evolution by writing less but more distributed code using the Python programming language and the Django web framework.
By the end of the book, you'll have a solid understanding of microservices architectures. Armed with a comprehensive and solid toolset, you can begin working toward systems that are more scalable, resilient, and maintainable. ...
The Design of Web APIsThe Design of Web APIs is a practical, example-packed guide to crafting extraordinary web APIs. Author Arnaud Lauret demonstrates fantastic design principles and techniques you can apply to both public and private web APIs.
An API frees developers to integrate with an application without knowing its code-level details. Whether you're using established standards like REST and OpenAPI or more recent approaches like GraphQL or gRPC, mastering API design is a superskill. It will make your web-facing services easier to consume and your clients - internal and external - happier.
Drawing on author Arnaud Lauret's many years of API design experience, this book teaches you how to gather requirements, how to balance business and technical goals, and how to adopt a consumer-first mindset. It teaches effective practices using numerous interesting examples. ...
Secure by DesignSecure by Design teaches developers how to use design to drive security in software development. This book is full of patterns, best practices, and mindsets that you can directly apply to your real world development. You'll also learn to spot weaknesses in legacy code and how to address them.
Security should be the natural outcome of your development process. As applications increase in complexity, it becomes more important to bake security-mindedness into every step. The secure-by-design approach teaches best practices to implement essential software features using design as the primary driver for security.
Secure by Design teaches you principles and best practices for writing highly secure software. At the code level, you'll discover security-promoting constructs like safe error handling, secure validation, and domain primitives. You'll also master security-centric techniques you can apply throughout your build-test-deploy pipeline, including ...
Design Patterns in .NETImplement design patterns in .NET using the latest versions of the C# and F# languages. This book provides a comprehensive overview of the field of design patterns as they are used in today's developer toolbox.
Using the C# programming language, Design Patterns in .NET explores the classic design pattern implementation and discusses the applicability and relevance of specific language features for the purpose of implementing patterns. You will learn by example, reviewing scenarios where patterns are applicable. MVP and patterns expert Dmitri Nesteruk demonstrates possible implementations of patterns, discusses alternatives and pattern inter-relationships, and illustrates the way that a dedicated refactoring tool (ReSharper) can be used to implement design patterns with ease.
Know the latest pattern implementations available in C# and F#; Refer to researched and proven variations of patterns; Study complete, self-contained examples including many ...
Cloud Native PatternsCloud Native Patterns is your guide to developing strong applications that thrive in the dynamic, distributed, virtual world of the cloud. This book presents a mental model for cloud-native applications, along with the patterns, practices, and tooling that set them apart.
Cloud platforms promise the holy grail: near-zero downtime, infinite scalability, short feedback cycles, fault-tolerance, and cost control. But how do you get there? By applying cloudnative designs, developers can build resilient, easily adaptable, web-scale distributed applications that handle massive user traffic and data loads. Learn these fundamental patterns and practices, and you'll be ready to thrive in the dynamic, distributed, virtual world of the cloud.
With 25 years of experience under her belt, Cornelia Davis teaches you the practices and patterns that set cloud-native applications apart. With realistic examples and expert advice for working with apps, data, services, routing, and more, she shows you ...
Web Design PlaygroundWhat makes a website pop, stand out, and feel great to browse? The answer is HTML, CSS, and a little bit of an artistic eye! Without HTML and CSS, every website would just be a few lines of text on a single white page. Even a little understanding of HTML and CSS can help you create web pages that look great and stand out from the crowd, so why wait? Pick up the skills you need to make something awesome today!
Contrary to what you may have heard, learning web design doesn't need to be boring! What you need is something that goes beyond a boring reference book. Web Design Playground takes you step-by-step from writing your first line of HTML to creating interesting, attractive web pages. In this project-based book, you'll use a custom online workspace, the book's companion Playground, to design websites, product pages, photo galleries, and more. Don't worry about setting up your own servers and domain names - the Playground takes care of that for you! You can conc ...
Service-Oriented ModelingAnswers to your most pressing SOA development questions:
How do we start with service modeling? How do we analyze services for better reusability? Who should be involved? How do we create the best architecture model for our organization? This must-read for all enterprise leaders gives you all the answers and tools needed to develop a sound service-oriented architecture in your organization.
"Michael Bell has done it again with a book that will be remembered as a key facilitator of the global shift to Service-Oriented Architecture... With this book, Michael Bell provides that foundation and more-an essential bible for the next generation of enterprise IT."
-Eric Pulier, Executive Chairman, SOA Software
"Michael Bell's insightful book provides common language and techniques for business and technology organizations to take advantage of the SOA paradigm. By focusing modeling techniques on the business problem, Bell provides a way for professionals to work throughout the life cyc ...