|
Showing 1 - 8 of
8 matches in All Departments
There are no easy decisions in software architecture. Instead,
there are many hard parts--difficult problems or issues with no
best practices--that force you to choose among various compromises.
With this book, you'll learn how to think critically about the
trade-offs involved with distributed architectures. Architecture
veterans and practicing consultants Neal Ford, Mark Richards,
Pramod Sadalage, and Zhamak Dehghani discuss strategies for
choosing an appropriate architecture. By interweaving a story about
a fictional group of technology professionals--the Sysops
Squad--they examine everything from how to determine service
granularity, manage workflows and orchestration, manage and
decouple contracts, and manage distributed transactions to how to
optimize operational characteristics, such as scalability,
elasticity, and performance. By focusing on commonly asked
questions, this book provides techniques to help you discover and
weigh the trade-offs as you confront the issues you face as an
architect. Analyze trade-offs and effectively document your
decisions Make better decisions regarding service granularity
Understand the complexities of breaking apart monolithic
applications Manage and decouple contracts between services Handle
data in a highly distributed architecture Learn patterns to manage
workflow and transactions when breaking apart applications
Salary surveys worldwide regularly place software architect in the
top 10 best jobs, yet no real guide exists to help developers
become architects. Until now. This book provides the first
comprehensive overview of software architecture’s many aspects.
Aspiring and existing architects alike will examine architectural
characteristics, architectural patterns, component determination,
diagramming and presenting architecture, evolutionary architecture,
and many other topics. Mark Richards and Neal Ford—hands-on
practitioners who have taught software architecture classes
professionally for years—focus on architecture principles that
apply across all technology stacks. You’ll explore software
architecture in a modern light, taking into account all the
innovations of the past decade. This book examines: Architecture
patterns: The technical basis for many architectural decisions
Components: Identification, coupling, cohesion, partitioning, and
granularity Soft skills: Effective team management, meetings,
negotiation, presentations, and more Modernity: Engineering
practices and operational approaches that have changed radically in
the past few years Architecture as an engineering discipline:
Repeatable results, metrics, and concrete valuations that add rigor
to software architecture
What will you learn from this book? If you're a software developer
looking for a quick on-ramp to software architecture, this handy
guide is a great place to start. From the authors of Fundamentals
of Software Architecture, Head First Software Architecture teaches
you how to think architecturally and explores the unique challenges
of software architecture. You'll learn the distinction between
architecture and design and the relationship between code,
components, and architectural styles. You'll also learn how to work
with some common architectural styles through vivid, fun examples.
Quick, easy, and entertaining, this book is a valuable introduction
to the world of software architecture. Why does this book look so
different? Based on the latest research in cognitive science and
learning theory, Head First Software Architecture uses a visually
rich format to engage your mind, rather than a text-heavy approach
that puts you to sleep. Why waste your time struggling with new
concepts? This multisensory learning experience is designed for the
way your brain really works.
The software development ecosystem is constantly changing,
providing a constant stream of new tools, frameworks, techniques,
and paradigms. Over the past few years, incremental developments in
core engineering practices for software development have created
the foundations for rethinking how architecture changes over time,
along with ways to protect important architectural characteristics
as it evolves. This practical guide ties those parts together with
a new way to think about architecture and time.
Software architecture metrics are key to the maintainability and
architectural quality of a software project and they can warn you
about dangerous accumulations of architectural and technical debt
early in the process. In this practical book, leading hands-on
software architects share case studies to introduce metrics that
every software architect should know. This isn't a book about
theory. It's more about practice and implementation, about what has
already been tried and worked. Detecting software architectural
issues early is crucial for the success of your software: it helps
mitigate the risk of poor performance and lowers the cost of
repairing those issues. Written by practitioners for software
architects and software developers eager to explore successful case
studies, this guide will help you learn more about decision and
measurement effectiveness. Through contributions from 10 prominent
practitioners, this book shares key software architecture metrics
to help you set the right KPIs and measure the results. You'll
learn how to: Measure how well your software architecture is
meeting your goals Choose the right metrics to track (and skip the
ones you don't need) Improve observability, testability, and
deployability Prioritize software architecture projects Build
insightful and relevant dashboards
If you want to take advantage of functional programming features in
Java and other languages, this in-depth guide takes you beyond
syntax and demonstrates how you need to think in a new way.
Software architect Neal Ford shows intermediate to advanced
developers how functional coding allows you to step back a level of
abstraction so you can see your programming problem with greater
clarity. Each chapter shows you various examples of functional
thinking, using numerous code examples from Java 8 and other JVM
languages that include functional capabilities. This book may bend
your mind, but you'll come away with a good grasp of functional
programming concepts. Understand why many imperative languages are
adding functional capabilities Compare functional and imperative
solutions to common problems Examine ways to cede control of
routine chores to the runtime Learn how memoization and laziness
eliminate hand-crafted solutions Explore functional approaches to
design patterns and code reuse View real-world examples of
functional thinking with Java 8, and in functional architectures
and web frameworks Learn the pros and cons of living in a
paradigmatically richer world
Anyone who develops software for a living needs a proven way to
produce it better, faster, and cheaper. "The Productive Programmer"
offers critical timesaving and productivity tools that you can
adopt right away, no matter what platform you use. Master developer
Neal Ford not only offers advice on the mechanics of
productivity-how to work smarter, spurn interruptions, get the most
out your computer, and avoid repetition-he also details valuable
practices that will help you elude common traps, improve your code,
and become more valuable to your team.You'll learn to: write the
test before you write the code; manage the lifecycle of your
objects fastidiously; build only what you need now, not what you
might need later; apply ancient philosophies to software
development; question authority, rather than blindly adhere to
standards; make hard things easier and impossible things possible
through meta-programming; be sure all code within a method is at
the same level of abstraction; and, pick the right editor and
assemble the best tools for the job. This isn't theory, but the
fruits of Ford's real-world experience as an Application Architect
at the global IT consultancy ThoughtWorks. Whether you're a
beginner or a pro with years of experience, you'll improve your
work and your career with the simple and straightforward principles
in The Productive Programmer.
Adopt a practical and modern approach to architecting and
implementing DDD-inspired solutions to transform abstract business
ideas into working software across the entire spectrum of the
software development life cycle Key Features Implement DDD
principles to build simple, effective, and well-factored solutions
Use lightweight modeling techniques to arrive at a common
collective understanding of the problem domain Decompose monolithic
applications into loosely coupled, distributed components using
modern design patterns Book DescriptionDomain-Driven Design (DDD)
makes available a set of techniques and patterns that enable domain
experts, architects, and developers to work together to decompose
complex business problems into a set of well-factored,
collaborating, and loosely coupled subsystems. This practical guide
will help you as a developer and architect to put your knowledge to
work in order to create elegant software designs that are enjoyable
to work with and easy to reason about. You'll begin with an
introduction to the concepts of domain-driven design and discover
various ways to apply them in real-world scenarios. You'll also
appreciate how DDD is extremely relevant when creating cloud native
solutions that employ modern techniques such as event-driven
microservices and fine-grained architectures. As you advance
through the chapters, you'll get acquainted with core DDD's
strategic design concepts such as the ubiquitous language, context
maps, bounded contexts, and tactical design elements like
aggregates and domain models and events. You'll understand how to
apply modern, lightweight modeling techniques such as business
value canvas, Wardley mapping, domain storytelling, and event
storming, while also learning how to test-drive the system to
create solutions that exhibit high degrees of internal quality. By
the end of this software design book, you'll be able to architect,
design, and implement robust, resilient, and performant distributed
software solutions. What you will learn Discover how to develop a
shared understanding of the problem domain Establish a clear
demarcation between core and peripheral systems Identify how to
evolve and decompose complex systems into well-factored components
Apply elaboration techniques like domain storytelling and event
storming Implement EDA, CQRS, event sourcing, and much more Design
an ecosystem of cohesive, loosely coupled, and distributed
microservices Test-drive the implementation of an event-driven
system in Java Grasp how non-functional requirements influence
bounded context decompositions Who this book is forThis book is for
intermediate Java programmers looking to upgrade their software
engineering skills and adopt a collaborative and structured
approach to designing complex software systems. Specifically, the
book will assist senior developers and hands-on architects to gain
a deeper understanding of domain-driven design and implement it in
their organization. Familiarity with DDD techniques is not a
prerequisite; however, working knowledge of Java is expected.
|
You may like...
Loot
Nadine Gordimer
Paperback
(2)
R398
R369
Discovery Miles 3 690
Loot
Nadine Gordimer
Paperback
(2)
R398
R369
Discovery Miles 3 690
|