Learning Domain-Driven Design
Building software is harder than ever. As a developer, you not only have to chase ever-changing technological trends but also need to understand the business domains behind the software. This practical book provides you with a set of core patterns, principles, and practices for analyzing business domains, understanding business strategy, and, most importantly, aligning software design with its business needs.
Author Vlad Khononov shows you how these practices lead to robust implementation of business logic and help to future-proof software design and architecture. You'll examine the relationship between domain-driven design (DDD) and other methodologies to ensure you make architectural decisions that meet business requirements. You'll also explore the real-life story of implementing DDD in a startup company.
With this book, you'll learn how to: Analyze a company's business domain to learn how the system you're building fits its competitive strategy; Use DDD's strategic and tactic ...
Understanding the DOM
97 Things Every Scrum Practitioner Should Know
Improve your understanding of Scrum through the proven experience and collected wisdom of experts around the world. Based on real-life experiences, the 97 essays in this unique book provide a wealth of knowledge and expertise from established practitioners who have dealt with specific problems and challenges with Scrum.
You'll find out more about the rules and roles of this framework, as well as tactics, strategies, specific patterns to use with Scrum, and stories from the trenches. You'll also gain insights on how to apply, tune, and tweak Scrum for your work. This guide is an ideal resource for people new to Scrum and those who want to assess and improve their understanding of this framework.
- "Scrum Is Simple. Just Use It As Is.," Ken Schwaber
- "The 'Standing Meeting,'" Bob Warfield
- "Specialization Is for Insects," James O. Coplien
- "Scrum Events Are Rituals to Ensure Good Harvest," Jasper Lamers
- "Servant Leadership Starts from Within," Bob Galen
- "Agile ...
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 Work patterns for persistent storag ...
97 Things Every Engineering Manager Should Know
Tap into the wisdom of experts to learn what every engineering manager should know. With 97 short and extremely useful tips for engineering managers, you'll discover new approaches to old problems, pick up road-tested best practices, and hone your management skills through sound advice.
Managing people is hard, and the industry as a whole is bad at it. Many managers lack the experience, training, tools, texts, and frameworks to do it well. From mentoring interns to working in senior management, this book will take you through the stages of management and provide actionable advice on how to approach the obstacles you'll encounter as a technical manager.
A few of the 97 things you should know:
- "Three Ways to Be the Manager Your Report Needs" by Duretti Hirpa
- "The First Two Questions to Ask When Your Team Is Struggling" by Cate Huston
- "Fire Them!" by Mike Fisher
- "The 5 Whys of Organizational Design" by Kellan Elliott-McCrea
- "Career Conversations" by Raquel Vé ...
Wordpress Development Quick Start Guide
WordPress is the most used CMS in the world and is the ideal way to share your knowledge with a large audience or build a profitable business. Getting started with WordPress development has often been a challenge for novice developers, and this book will help you find your way.
This book explains the components used in WordPress development, when and where to use them, and why you should be using each component in specific scenarios. You begin by learning the basic development setup and coding standards of WordPress. Then you move into the most important aspects of the theme and plugin development process. Here you will also learn how themes and plugins fit into the website while learning about a range of techniques for extending themes and plugins.
With the basics covered, we explore many of the APIs provided by WordPress and how we can leverage them to build rapid solutions. Next, we move on to look at the techniques for capturing, processing, and displaying user data when inte ...
Code with the Wisdom of the Crowd
Mob Programming is a natural extension of the popular Pair Programming concept and is not restricted to a specific programming language or technology. It can be used by anyone who develops software, including dev leads, software developers, and agile coaches. When you have more people working on a bug or feature, you get fewer dependencies on individuals and overall increased learning for everyone involved. With more eyes on the code, you'll find you develop better solutions with fewer defects.
Set up your team for success by introducing Mob Programming in a way that benefits them. Create a good first Mobbing experience for your team with a template that avoids the common traps beginners may fall into. Master a collaborative and empathic mindset to help optimize the Mobbing experience. Learn how to make adjustments when things go wrong. Adapt your mobbing to different types of development tasks. Get management buy-in for your Mobbing experiment by demonstrating the benefits. Discove ...
Deep Belief Nets in C++ and CUDA C: Volume 2
Discover the essential building blocks of a common and powerful form of deep belief net: the autoencoder. You'll take this topic beyond current usage by extending it to the complex domain for signal and image processing applications. Deep Belief Nets in C++ and CUDA C: Volume 2 also covers several algorithms for preprocessing time series and image data. These algorithms focus on the creation of complex-domain predictors that are suitable for input to a complex-domain autoencoder. Finally, you'll learn a method for embedding class information in the input layer of a restricted Boltzmann machine. This facilitates generative display of samples from individual classes rather than the entire data distribution. The ability to see the features that the model has learned for each class separately can be invaluable.
At each step this book provides you with intuitive motivation, a summary of the most important equations relevant to the topic, and highly commented code for threaded computatio ...
Component-Based Rails Applications
As Rails applications grow, even experienced developers find it difficult to navigate code bases, implement new features, and keep tests fast. Components are the solution, and Component-Based Rails Applications shows how to make the most of them.
Writing for programmers and software team leads who are comfortable with Ruby and Rails, Stephan Hagemann introduces a practical, start-to-finish methodology for modernizing and restructuring existing Rails applications.
One step at a time, Hagemann demonstrates how to revamp Rails applications to exhibit visible, provably independent, and explicitly connected parts - thereby simplifying them and making them far easier for teams to manage, change, and test. Throughout, he introduces design concepts and techniques you can use to improve applications of many kinds, even if they weren't built with Rails or Ruby.
Learn how components clarify intent, improve collaboration, and simplify innovation and maintenance; Create a full Rails applic ...
Mastering Office 365 Administration
In today's world, every organization aims to migrate to the cloud to become more efficient by making full use of the latest technologies. Office 365 is your one-stop solution to making your organization reliable, scalable, and fast.
The book will start with an overview of Office 365 components, and help you learn how to use the administration portal, and perform basic administration. Then this book covers common management tasks such as managing users, admin roles, groups, securing Office 365, and enforcing compliance. In the next set of chapters, you will learn topics such as managing Skype for Business Online, Yammer, OneDrive for Business, and Microsoft Teams. In the final section of the book, you will learn how to perform reporting and monitor Office 365 service health.
By the end of this book, you will be able to implement enterprise-level services with Office 365 based on your organization's needs. ...
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 service-oriented and he ...