Patterns in the Machine
Discover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors' experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability.
This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today's embedded projects.
After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit te ...
Node.js Design Patterns, 3rd Edition
In this book, we will show you how to implement a series of best practices and design patterns to help you create efficient and robust Node.js applications with ease.
Throughout the book, you'll see Node.js in action with the help of several real-life examples leveraging techn ...
Modern Web Performance Optimization
Web-based platforms have become vehicles for enterprises to realize their digital strategy and are key to positive user engagement. The performance of these platforms can make the difference between an effective sale and a negative review. There exist several tools and methodologies to enhance your digital platform's performance, and Modern Web Performance Optimization has arrived to walk you through them with an expert's guidance.
Author Shailesh Kumar Shivakumar breaks the study of web performance optimization down into four digestible, applicable dimensions: performance patterns framework and methods, process and tools, and the modern web. This multi-faceted approach ensures a broad optimization of your platforms and avoids the typical pitfalls of neglecting essential steps that so many often do. Shivakumar analyzes web performance ecosystem components such as validation, governance, metrics, key performance indicators, assessments, and monitoring, just to name a few. The ...
Head First Design Patterns, 2nd Edition
You know you don't want to reinvent the wheel, so you look to Design Patterns: the lessons learned by those who've faced the same software design problems. With Design Patterns you get to take advantage of the best practices and experience of others so you can spend your time on something more challenging. Something more fun. This book shows you the patterns that matter, when to use them and why, how to apply them to your own designs, and the object-oriented design principles on which they're based. Join hundreds of thousands of developers who've improved their object-oriented design skills through Head First Design Patterns.
If you've read a Head First book, you know what to expect: a visually rich format designed for the way your brain works. With Head First Design Patterns 2nd Edition you'll learn design principles and patterns in a way that won't put you to sleep, so you can get out there to solve software design problems and speak the language of ...
Machine Learning Design Patterns
The design patterns in this book capture best practices and solutions to recurring problems in machine learning. The authors, three Google engineers, catalog proven methods to help data scientists tackle common problems throughout the ML process. These design patterns codify the experience of hundreds of experts into straightforward, approachable advice.
In this book, you will find detailed explanations of 30 patterns for data and problem representation, operationalization, repeatability, reproducibility, flexibility, explainability, and fairness. Each pattern includes a description of the problem, a variety of potential solutions, and recommendations for choosing the best technique for your situation.
You'll learn how to: Identify and mitigate common challenges when training, evaluating, and deploying ML models; Represent data for different ML model types, including embeddings, feature crosses, and more; Choose the right model type for specific problems; Bui ...
Learn Microservices with Spring Boot, 2nd Edition
Build Java-based microservices architecture using the Spring Boot framework by evolving an application from a small monolith to an event-driven architecture composed of several services. This revised book follows an incremental approach in teaching the structure of microservices, test-driven development, and common patterns in distributed systems such as service discovery, load balancing, routing, centralized logs, per-environment configuration, and containerization.
This updated book now covers what's been added to the latest Spring Boot release, including support for the latest Java SE; more deep-dive knowledge on how Spring Boot works; testing with JUnit 5; changes in the Spring Cloud tools used for service discovery and load balancing; building Docker images using cloud-native buildpacks; a basic centralized logging solution; E2E traceability with Sleuth; centralized configuration with Consul; many dependency upgrades; support for Spring Data Neumann; and more.
Author Mo ...
SRE with Java Microservices
In a microservices architecture, the whole is indeed greater than the sum of its parts. But in practice, individual microservices can inadvertently impact others and alter the end user experience. Effective microservices architectures require standardization on an organizational level with the help of a platform engineering team.
This practical book provides a series of progressive steps that platform engineers can apply technically and organizationally to achieve highly resilient Java applications. Author Jonathan Schneider covers many effective SRE practices from companies leading the way in microservices adoption. You'll examine several patterns discovered through much trial and error in recent years, complete with Java code examples. ...
Architecture Patterns with Python
As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are taking an interest in high-level software design patterns such as hexagonal/clean architecture, event-driven architecture, and the strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.
With this hands-on guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity - and get the most value out of their test suites.
Each pattern is illustrated with concrete examples in beautiful, idiomatic Python, avoiding some of the verbosity of Java and C# syntax. Patterns include: Dependency inversion and its links to ports and adapters (hexagonal/clean architecture); Domain-driven design's distinction between Entities, Value Objects, and Aggregates; Repository and Unit of ...
Designing Interfaces, 3rd Edition
Designing good application interfaces isn't easy now that companies need to create compelling, seamless user experiences across an exploding number of channels, screens, and contexts. In this updated third edition, you'll learn how to navigate through the maze of design options. By capturing UI best practices as design patterns this best-selling book provides solutions to common design problems.
You'll learn patterns for mobile apps, web applications, and desktop software. Each pattern contains full-color examples and practical design advice you can apply immediately. Experienced designers can use this guide as an idea sourcebook, and novices will find a road map to the world of interface and interaction design.
Understand your users before you start designing; Build your software's structure so it makes sense to users; Design components to help users complete tasks on any device; Learn how to promote wayfinding in your software; Place elements to guide users to inf ...
Unit Testing Principles, Practices, and Patterns
Unit Testing Principles, Patterns and Practices shows you how to refine your existing unit tests by implementing modern best practices. You'll learn to spot which tests are performing, which need refactoring, and which need to be deleted entirely! Upgrade your testing suite with new testing styles, good patterns and reliable automated testing.
Great testing practices will help maximize your project quality and delivery speed. Wrong tests will break your code, multiply bugs, and increase time and costs. You owe it to yourself - and your projects - to learn how to do excellent unit testing to increase your productivity and the end-to-end quality of your software.
Unit Testing Principles, Patterns and Practices teaches you to design and write tests that target the domain model and other key areas of your code base. In this clearly written guide, you learn to develop professional-quality test suites, safely automate your testing process, and integrate testing thr ...
Monolith to Microservices
How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture.
With many illustrative examples, insightful migration patterns and a bevy of practical advice to transition your monolith enterprise into a microservice operation, this practical guide covers multiple scenarios and strategies for a successful migration, from initial planning all the way through application and database decomposition. You'll learn several tried and tested patterns and techniques that you can use as you migrate your existing architecture.
Ideal for organizations looking to transition to microservices, rather than rebuild; Helps companies determine whether to migrate, when to migrate, and where to begin; Addresses communicati ...