100 Best Software Architecture Books of All Time

We've ranked the best software architecture books using expert recommendations, sales data, and millions of reader ratings. At Shortform, we know books. Our book guides are the best in the world. Learn why.

Clean Architecture book cover1

Clean Architecture

Robert C. Martin

5.0
Building upon the success of best-sellers The Clean Coder and Clean Code, legendary software craftsman Robert C. "Uncle Bob" Martin shows how to bring greater professionalism and discipline to application architecture and design.
As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to ma
Clean Code: A Handbook of Agile Software Craftsmanship book cover2

Clean Code: A Handbook of Agile Software Craftsmanship

Robert C. Martin

4.8
Even bad code can function. But if code isn t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn t have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with
Designing Data-Intensive Applications book cover3

Designing Data-Intensive Applications

Martin Kleppmann

4.8
Many forces affect software today: larger datasets, geographical disparities, complex company structures, and the growing need to be fast and nimble in the face of change.

Proven approaches such as service-oriented and event-driven architectures are joined by newer techniques such as microservices, reactive architectures, DevOps, and stream processing. Many of these patterns are successful by thems
The Pragmatic Programmer: From Journeyman to Master book cover4

The Pragmatic Programmer: From Journeyman to Master

Andrew Hunt and David Thomas

4.8
-- Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques fo
Building Microservices: Designing Fine-Grained Systems book cover5

Building Microservices: Designing Fine-Grained Systems

Sam Newman

4.8
Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-contained microservices. But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and
Patterns of Enterprise Application Architecture book cover6

Patterns of Enterprise Application Architecture

Martin Fowler

4.7
The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their develop
Domain-Driven Design: Tackling Complexity in the Heart of Software book cover7

Domain-Driven Design: Tackling Complexity in the Heart of Software

Eric Evans

4.7
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric th
Code Complete book cover8

Code Complete

Steve McConnell

4.6
Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge availab
Windows Internals, Part 1: User Mode book cover9

Windows Internals, Part 1: User Mode

Pavel Yosifovich, Mark E. Russinovich, et al.

4.6
Delve inside Windows architecture and internals - and see how core components work behind the scenes. This classic guide has been fully updated for Windows 8.1 and Windows Server 2012 R2, and now presents its coverage in three volumes: Book 1, User Mode; Book 2, Kernel Mode; Book 3, Device Driver Models.

In Book 1, you'll plumb Windows fundamentals, independent of platform - server, desktop, tablet
The Mythical Man-Month: Essays on Software Engineering book cover10

The Mythical Man-Month: Essays on Software Engineering

Frederick P. Brooks Jr.

4.6
Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20
Design Patterns: Elements of Reusable Object-Oriented Software book cover11

Design Patterns: Elements of Reusable Object-Oriented Software

Erich; Helm John Gamma

4.5
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.

The authors begin by
Fundamentals of Software Architecture: An Engineering Approach book cover12

Fundamentals of Software Architecture: An Engineering Approach

Mark Richards

4.5
Although salary surveys worldwide regularly identify software architect as one of the top ten best jobs, no decent guides exist to help developers become architects. Until now. This practical guide provides the first comprehensive overview of software architecture's many aspects. You'll examine architectural characteristics, architectural patterns, component determination, diagramming and presenti
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions book cover13

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Gregor Hohpe, Bobby Woolf

4.5
Enterprise Integration Patterns provides an invaluable catalog of sixty-five patterns, with real-world solutions that demonstrate the formidable of messaging and help you to design effective messaging solutions for your enterprise. The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL.
Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith book cover14

Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith

Sam Newman

4.5

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

Software Architecture in Practice book cover15

Software Architecture in Practice

Len Bass, Paul Clements, Rick Kazman

4.5

This award-winning book, substantially updated to reflect the latest developments in the field, introduces the concepts and best practices of software architecture—how a software system is structured and how that system's elements are meant to interact. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a r

Refactoring: Improving the Design of Existing Code book cover16

Refactoring: Improving the Design of Existing Code

Martin Fowler

4.5
Fully Revised and Updated-Includes New Refactorings and Code Examples"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
--M. Fowler (1999) For more than twenty years, experienced programmers worldwide have relied on Martin Fowler's Refactoring to improve the design of existing code and to enhance software maintainability, as well as to
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation book cover17

Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation

Jez Humble and David Farley

4.5
Winner of the 2011 Jolt Excellence Award!

Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration betwe
Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) book cover18

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)

Michael T. Nygard

4.4
Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?

If you're a developer and don't want to b
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives book cover19

Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives

Nick Rozanski, Eóin Woods

4.4
Rozanski and Woods explain what software architecture is all about, and why the architect's role is vitally important to successful project delivery. This practical, practitioner-oriented guide explains how to design successful architectures for information systems and to see these through to their successful implementation.
The Soul of a New Machine book cover20

The Soul of a New Machine

Tracy Kidder

4.4
The computer revolution brought with it new methods of getting work done—just look at today's news for reports of hard-driven, highly-motivated young software and online commerce developers who sacrifice evenings and weekends to meet impossible deadlines. Tracy Kidder got a preview of this world in the late 1970s when he observed the engineers of Data General design and build a new 32-bit minicomp
Head First Design Patterns book cover21

Head First Design Patterns

Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson

4.4
You're not alone.

At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you
A Philosophy of Software Design book cover22

A Philosophy of Software Design

John Ousterhout

4.3
Software Architect's Handbook: Grow in your career to think and function as a Software Architect book cover23

Software Architect's Handbook: Grow in your career to think and function as a Software Architect

Joseph Ingeno

4.3
Accelerate: Building and Scaling High-Performing Technology Organizations book cover24

Accelerate: Building and Scaling High-Performing Technology Organizations

Nicole Forsgren PhD

4.3
Does technology actually matter? And how can we apply technology to drive business value? For years, we've been told that the performance of software delivery teams doesn't matter--that it can't provide a competitive advantage to our companies. Through four years of groundbreaking research, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performance
Building Evolutionary Architectures: Support Constant Change book cover25

Building Evolutionary Architectures: Support Constant Change

Neal Ford, Rebecca Parsons, Patrick Kua

4.3
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 ev
Architecture Patterns with Python: How to Apply DDD, Ports and Adapters, and Enterprise Architecture Design Patterns in a Pythonic Way book cover26

Architecture Patterns with Python: How to Apply DDD, Ports and Adapters, and Enterprise Architecture Design Patterns in a Pythonic Way

Harry Percival, Bob Gregory

4.3
As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are now taking an interest in high-level software architecture patterns such as hexagonal/clean architecture, event-driven architecture, and strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.

With this pra
The Software Craftsman: Professionalism, Pragmatism, Pride book cover27

The Software Craftsman: Professionalism, Pragmatism, Pride

Sandro Mancuso Mancuso

4.3
Be a Better Developer and Deliver Better Code Despite advanced tools and methodologies, software projects continue to fail. Why? Too many organizations still view software development as just another production line. Too many developers feel that way, too--and they behave accordingly. In The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso offers a better and more fulfillin
37 Things One Architect Knows book cover28

37 Things One Architect Knows

Gregor Hohpe

4.3
Practical Object Oriented Design in Ruby book cover29

Practical Object Oriented Design in Ruby

Sandi Metz

4.3
The Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications Ruby's widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using
The Clean Coder: A Code of Conduct for Professional Programmers book cover30

The Clean Coder: A Code of Conduct for Professional Programmers

Robert Martin

4.3
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals. In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true
Implementing Domain-Driven Design book cover31

Implementing Domain-Driven Design

Vaughn Vernon

4.3
Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.
Working Effectively with Legacy Code book cover32

Working Effectively with Legacy Code

Michael Feathers

4.3
Get more out of your legacy systems, more performance, functionality, reliability, and manageability.Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.

In this book, Michael Feathers offers start-t
Microservice Patterns book cover33

Microservice Patterns

Chris Richardson, Aiden Humphreys, et al

4.3
The monolithic architecture works well for small, simple applications. However, successful applications have a habit of growing. Eventually the development team ends up in what is known as monolithic hell. All aspects of software development and deployment become painfully slow. The solution is to adopt the microservice architecture, which structures an application as a services, organized around
Site Reliability Engineering: How Google Runs Production Systems book cover34

Site Reliability Engineering: How Google Runs Production Systems

Niall Richard Murphy, Betsy Beyer, et al.

4.3
The overwhelming majority of a software system's lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems?

In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle
The Elements of Computing Systems: Building a Modern Computer from First Principles book cover35

The Elements of Computing Systems: Building a Modern Computer from First Principles

Noam Nisan and Shimon Schocken

4.3
In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements
Web Scalability for Startup Engineers book cover36

Web Scalability for Startup Engineers

Artur Ejsmont

4.3
Publisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product.
Design and build scalable web applications quicklyThis is an invaluable roadmap for meeting the rapid demand to deliver scalable applications in a startup environment. With a focus on core concepts and best pract
Agile Software Development, Principles, Patterns, and Practices book cover37

Agile Software Development, Principles, Patterns, and Practices

Robert C. Martin

4.3
Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application--
Just Enough Software Architecture: A Risk-Driven Approach book cover38

Just Enough Software Architecture: A Risk-Driven Approach

George H. Fairbanks

4.3
This practical guide seeks to make architecture relevant to all software developers. Developers need to understand how to use constraints as guiderails that ensure desired outcomes, and how seemingly small changes can affect a system's properties.
Game Programming Patterns book cover39

Game Programming Patterns

Robert Nystrom

4.3
Game Programming Patterns brings the benefits of reusable design patterns to the world of game programming. Commercial game development expert Robert Nystrom presents an array of general solutions to problems encountered in game development. For example, you'll learn how double-buffering enables a player to perceive smooth and realistic motion, and how the service locator pattern can help you prov
Designing Software Architectures: A Practical Approach book cover40

Designing Software Architectures: A Practical Approach

Humberto Cervantes, Rick Kazman

4.2
Designing Software Architectures" will teach you how to design any software architecture in a systematic, predictable, repeatable, and cost-effective way.
This book introduces a practical methodology for architecture design that any professional software engineer can use, provides structured methods supported by reusable chunks of design knowledge, and includes rich case studies that demonstrate
Software Estimation: Demystifying the Black Art book cover41

Software Estimation: Demystifying the Black Art

Steve McConnell

4.2
Often referred to as the "black art" because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward--once you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation--distilling academic infor
97 Things Every Software Architect Should Know: Collective Wisdom from the Experts book cover42

97 Things Every Software Architect Should Know: Collective Wisdom from the Experts

Richard Monson-Haefel

4.2
In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects -- including Neal Ford, Michael Nygard, and Bill de hOra -- offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from
Patterns Principles and Practices of Domain Driven Design book cover43

Patterns Principles and Practices of Domain Driven Design

Scott Millett and Nick Tun

4.2
This book distils the ideas and theories of the Domain-Driven Design (DDD) philosophy into a practical play-book that you can leverage to simplify application development for complex problem domains. A focus is placed on the principles and practices of decomposing a complex problem space as well as the implementation patterns and best practices for shaping a maintainable solution space.
The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations book cover44

The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations

Gene Kim, Patrick Debois, John Willis, Jez Humble, John Allspaw

4.2
Increase profitability, elevate work culture, and exceed productivity goals through DevOps practices.

More than ever, the effective management of technology is critical for business competitiveness. For decades, technology leaders have struggled to balance agility, reliability, and security. The consequences of failure have never been greater whether it's the healthcare.gov debacle, cardholder data
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development book cover45

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development

Craig Larman

4.2
Applying UML and Patterns is the world’s #1 business and college introduction to “thinking in objects” - and using that insight in real-world object-oriented analysis and design. Building on two widely acclaimed previous editions, Craig Larman has updated this book to fully reflect the new UML 2 standard, to help you master the art of object design, and to promote high-impact, iterative, and skill
UML Distilled: A Brief Guide to the Standard Object Modeling Language book cover46

UML Distilled: A Brief Guide to the Standard Object Modeling Language

Martin Fowler

4.2
More than 300,000 developers have benefited from past editions of UML Distilled . This third edition is the best resource for quick, no-nonsense insights into understanding and using UML 2.0 and prior versions of the UML. Some readers will want to quickly get up to speed with the UML 2.0 and learn the essentials of the UML. Others will use this book as a handy, quick reference to the most common
47

But How Do It Know? - The Basic Principles of Computers for Everyone

J Clark Scott

4.2
Finally, this brand new book exposes the secrets of computers for everyone to see. Its humorous title begins with the punch line of a classic joke about someone who is baffled by technology.

It was written by a 40-year computer veteran who wants to take the mystery out of computers and allow everyone to gain a true understanding of exactly what computers are, and also what they are not.

Years of w
Beyond Software Architecture: Creating and Sustaining Winning Solutions book cover48

Beyond Software Architecture: Creating and Sustaining Winning Solutions

Luke Hohmann

4.2
Contains insights and lessons about creating winning software solutions in the context of a real-world business. This book provides practical techniques that development executives can employ to improve the productivity of their software organization. It deals with issues like licensing, deployment, installation, configuration, and support.
Pattern-Oriented Software Architecture Volume 1: A System of Patterns book cover49

Pattern-Oriented Software Architecture Volume 1: A System of Patterns

Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal

4.2
Pattern-oriented software architecture is a new approach to software development. This book represents the progression and evolution of the pattern approach into a system of patterns capable of describing and documenting large-scale applications. A pattern system provides, on one level, a pool of proven solutions to many recurring design problems. On another it shows how to combine individual patt
Design It!: From Programmer to Software Architect book cover50

Design It!: From Programmer to Software Architect

Michael Keeling

4.2
Don't engineer by coincidence-design it like you mean it! Filled with practical techniques, Design It! is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Lead your team as a software architect, ask the right stakeholders the right questions, explore design options, and help your team implement a system that promotes the right -ilities. S
Mastering Xamarin.Forms: App architecture techniques for building multi-platform, native mobile apps with Xamarin.Forms 4, 3rd Edition book cover51

Mastering Xamarin.Forms: App architecture techniques for building multi-platform, native mobile apps with Xamarin.Forms 4, 3rd Edition

Ed Snider

4.2
Computer Organization & Design: The Hardware/Software Interface book cover52

Computer Organization & Design: The Hardware/Software Interface

David A. Patterson, John L. Hennessy

4.2
The performance of software systems is dramatically affected by how well software designers understand the basic hardware technologies at work in a system. Similarly, hardware designers must understand the far-reaching effects their design decisions have on software applications. For readers in either category, this classic introduction to the field provides a look deep into the computer. It demon
Essential Software Architecture book cover53

Essential Software Architecture

Ian Gorton

4.2
Job titles like "Technical Architect" and "Chief Architect" nowadays abound in the software industry, yet many people suspect that "architecture" is one of the most overused and least understood terms in professional software development.

Gorton's book helps resolve this predicament. It concisely describes the essential elements of knowledge and key skills required to be a software architect. The e
NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence book cover54

NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence

Pramod J. Sadalage

4.2
The need to handle increasingly larger data volumes is one factor driving the adoption of a new class of nonrelational "NoSQL" databases. Advocates of NoSQL databases claim they can be used to build systems that are more performant, scale better, and are easier to program." ""NoSQL Distilled" is a concise but thorough introduction to this rapidly emerging technology. Pramod J. Sadalage and Martin
Terraform: Up & Running: Writing Infrastructure as Code book cover55

Terraform: Up & Running: Writing Infrastructure as Code

Yevgeniy Brikman

4.1
Terraform has become a key player in the DevOps world for defining, launching, and managing infrastructure as code (IaC) across a variety of cloud and virtualization platforms, including AWS, Google Cloud, Azure, and more. This hands-on second edition, expanded and thoroughly updated for Terraform version 0.12 and beyond, shows you the fastest way to get up and running.

Gruntwork cofounder Yevgeniy
Refactoring to Patterns book cover56

Refactoring to Patterns

Joshua Kerievsky

4.1
In 1994, "Design Patterns" changed the landscape of object-oriented development by introducing classic solutions to recurring design problems. In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutiona
Brutal Refactoring: More Working Effectively with Legacy Code book cover57

Brutal Refactoring: More Working Effectively with Legacy Code

Michael Feathers

4.1
Most software professionals spend much of their time working with someone else's brutally imperfect code. When you consider the serious constraints that legacy code was created under, it's no surprise it looks so bad. The question is: now what? In Brutal Refactoring, Michael Feathers starts with code bases "as they are," not as "we pretend them to be" - and shows how to aggressively reshape them t
Performance Modeling and Design of Computer Systems: Queueing Theory in Action book cover58

Performance Modeling and Design of Computer Systems: Queueing Theory in Action

Mor Harchol-Balter

4.1
Computer systems design is full of conundrums: -Given a choice between a single machine with speed s, or n machines each with speed s/n, which should we choose?
-If both the arrival rate and service rate double, will the mean response time stay the same?
-Should systems really aim to balance load, or is this a convenient myth? -If a scheduling policy favors one set of jobs, does it necessarily hur
Documenting Software Architectures: Views and Beyond book cover59

Documenting Software Architectures: Views and Beyond

Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, Judith Stafford

4.1
For all but the most trivial software systems, you must pay close attention to its architecture, the conceptual glue that holds every phase of a project together.
Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# book cover60

Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#

Scott Wlaschin

4.1
You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and c
The Architecture of Open Source Applications, Volume II book cover61

The Architecture of Open Source Applications, Volume II

Amy Brown, Greg Wilson

4.1
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well - usually programs they wrote themselves - and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's success
Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization book cover62

Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization

Susan Fowler

4.1
One of the biggest challenges for organizations that have adopted microservice architecture is the lack of architectural, operational, and organizational standardization. After splitting a monolithic application or building a microservice ecosystem from scratch, many engineers are left wondering what s next. In this practical book, author Susan Fowler presents a set of microservice standards in de
Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java book cover63

Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java

Tom Homberg

4.1
Digital Computer Electronics book cover64

Digital Computer Electronics

MALVINO MN

4.1
Test Driven Development: By Example book cover65

Test Driven Development: By Example

Kent Beck

4.1
Follows two TDD projects from start to finish, illustrating techniques programmers can use to increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. This book emphasises on agile methods and fast development strategies.
Windows Kernel Programming book cover66

Windows Kernel Programming

Pavel Yosifovich

4.1
There is nothing like the power of the kernel in Windows - but how do you write kernel drivers to take advantage of that power? This book will show you how.The book describes software kernel drivers programming for Windows. These drivers don't deal with hardware, but rather with the system itself: processes, threads, modules, registry and more. Kernel code can be used for monitoring important even
Spring Microservices in Action book cover67

Spring Microservices in Action

John Carnell

4.1
With microservices, you build applications from very small, loosely coupled, and distributed services. Spring Boot and Spring Cloud offer Java developers an easy migration path from traditional monolithic Spring applications to microservice-based applications that can be deployed to multiple cloud platforms. The Spring Boot and Spring Cloud frameworks let you quickly build microservices that are r
Compilers: Principles, Techniques, and Tools book cover68

Compilers: Principles, Techniques, and Tools

Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman

4.1
This introduction to compilers is the direct descendant of the well-known book by Aho and Ullman, Principles of Compiler Design. The authors present updated coverage of compilers based on research and techniques that have been developed in the field over the past few years. The book provides a thorough introduction to compiler design and covers topics such as context-free grammars, fine state mach
Growing Object-Oriented Software, Guided by Tests book cover69

Growing Object-Oriented Software, Guided by Tests

Steve Freeman, Nat Pryce

4.1
Foreword by Kent Beck "The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows." --Ward Cunningham "At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas i
Java 8 in Action: Lambdas, Streams, and Functional-Style Programming book cover70

Java 8 in Action: Lambdas, Streams, and Functional-Style Programming

Raoul-Gabriel Urma, Mario Fusco, et al.

4.1
Summary

"Java 8 in Action" is a clearly written guide to the new features of Java 8. The book covers lambdas, streams, and functional-style programming. With Java 8's functional features you can now write more concise code in less time, and also automatically benefit from multicore architectures. It's time to dig in!

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats f
Object-Oriented Design Heuristics book cover71

Object-Oriented Design Heuristics

Arthur J. Riel

4.1
Provides a set of metrics that helps determine the quality of object-oriented models. This book offers insight into object-oriented design improvement. The more than sixty guidelines presented in this book are language-independent and allow you to rate the integrity of a software design.
Enterprise Architecture As Strategy: Creating a Foundation for Business Execution book cover72

Enterprise Architecture As Strategy: Creating a Foundation for Business Execution

Jeanne W. Ross, Peter Weill, David Robertson

4.1
Does it seem you’ve formulated a rock-solid strategy, yet your firm still can’t get ahead? If so, construct a solid foundation for business execution—an IT infrastructure and digitized business processes to automate your company’s core capabilities. In Enterprise Architecture as Strategy: Creating a Foundation for Business Execution, authors Jeanne W. Ross, Peter Weill, and David C. Robertson show
Scalability Rules: 50 Principles for Scaling Web Sites book cover73

Scalability Rules: 50 Principles for Scaling Web Sites

Martin L. Abbott, Michael T. Fisher

4.1
"Once again, Abbott and Fisher provide a book that I'll be giving to our engineers. It's an essential read for anyone dealing with scaling an online business."--Chris Lalonde, VP, Technical Operations and Infrastructure Architecture, Bullhorn "Abbott and Fisher again tackle the difficult problem of scalability in their unique and practical manner. Distilling the challenges of operating a fast-grow
The Design of Design: Essays from a Computer Scientist book cover74

The Design of Design: Essays from a Computer Scientist

Frederick P. Brooks Brooks

4.1
Making Sense of Design Effective design is at the heart of everything from software development to engineering to architecture. But what do we really know about the design process? What leads to effective, elegant designs? The Design of Design addresses these questions. These new essays by Fred Brooks contain extraordinary insights for designers in every discipline. Brooks pinpoints constants inhe
Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects book cover75

Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects

Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann

4.1
Designing application and middleware software to run in concurrent and networked environments is a significant challenge to software developers. The patterns catalogued in this second volume of Pattern-Oriented Software Architectures (POSA) form the basis of a pattern language that addresses issues associated with concurrency and networking.

The book presents 17 interrelated patterns ranging from
Digital Design and Computer Architecture book cover76

Digital Design and Computer Architecture

David Harris, Sarah Harris

4.1
Digital Design and Computer Architecture is designed for courses that combine digital logic design with computer organization/architecture or that teach these subjects as a two-course sequence. Digital Design and Computer Architecture begins with a modern approach by rigorously covering the fundamentals of digital logic design and then introducing Hardware Description Languages (HDLs). Featuring e
Building Your Own Computer Made Easy: The Step By Step Guide (Computers Made Easy) book cover77

Building Your Own Computer Made Easy: The Step By Step Guide (Computers Made Easy)

James Bernstein

4.1
Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis book cover78

Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis

Adam Tornhil

4.1
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 depend
Learning Malware Analysis book cover79

Learning Malware Analysis

Monnappa K A

4.1
Couscous and Other Good Food from Morocco book cover80

Couscous and Other Good Food from Morocco

Paula Wolfert

4.1
Since it was first published in 1973, Couscous and Other Good Food from Morocco has established itself as the classic work on one of the world’s great cuisines, and in 2008 it was inducted into the James Beard Cookbook Hall of Fame. From the magnificent bisteeyas (enormous, delicate pies composed of tissue-thin, buttery layers of pastry and various fillings) to endless varieties of couscous, Paula
Computer and Information Security Handbook book cover81

Computer and Information Security Handbook

John R. Vacca

4.0
The second edition of this comprehensive handbook of computer and information security serves as a professional reference and practitioner s guide providing the most complete view computer security and privacy available. It offers in-depth coverage of security theory, technology, and practice as they relate to established technologies as well as recent advancements. It explores practical solutions
Neural Networks and Deep Learning book cover82

Neural Networks and Deep Learning

Charu C. Aggarwa

4.0
Neural Networks and Deep Learning is a free online book. The book will teach you about:
* Neural networks, a beautiful biologically-inspired programming paradigm which enables a computer to learn from observational data
* Deep learning, a powerful set of techniques for learning in neural networks

Neural networks and deep learning currently provide the best solutions to many problems in image recognit
83

The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise

Martin L. Abbott, Michael T. Fisher

4.0
A Comprehensive, Proven Approach to IT Scalability from Two Veteran Software, Technology, and Business Executives In "The Art of Scalability, " AKF Partners cofounders Martin L. Abbott and Michael T. Fisher cover everything IT and business leaders must know to build technology infrastructures that can scale smoothly to meet any business requirement. Drawing on their unparalleled experience managin
Software Architecture: Foundations, Theory, and Practice book cover84

Software Architecture: Foundations, Theory, and Practice

R. N. Taylor, N. Medvidovic, E. M. Dashofy

4.0
Software architecture is foundational to the development of large, practical software-intensive applications. This brand-new text covers all facets of software architecture and how it serves as the intellectual centerpiece of software development and evolution. Critically, this text focuses on supporting creation of real implemented systems. Hence the text details not only modeling techniques, but
Programming Quantum Computers: Essential Algorithms and Code Samples book cover85

Programming Quantum Computers: Essential Algorithms and Code Samples

Eric R. Johnston, Nic Harrigan, et al.

4.0
Quantum computers are poised to kick-start a new computing revolution--and you can join in right away. If you're in software engineering, computer graphics, data science, or just an intrigued computerphile, this book provides a hands-on programmer's guide to understanding quantum computing. Rather than labor through math and theory, you'll work directly with examples that demonstrate this technolo
How Computers Work: The Evolution of Technology, 10th Edition (How It Works) book cover86

How Computers Work: The Evolution of Technology, 10th Edition (How It Works)

Ron White and Timothy Edward Downs

4.0
Microservices in Action book cover87

Microservices in Action

Morgan Bruce, Paulo A. Pereira

4.0
Microservices in Action is a practical book about building and deploying microservice-based applications. Written for developers and architects with a solid grasp of service-oriented development, it tackles the challenge of putting microservices into production. You'll begin with an in-depth overview of microservice design principles, building on your knowledge of traditional systems. Then, you'll
Go in Practice book cover88

Go in Practice

Matt Butcher

4.0
Go in Practice guides you through dozens of real-world techniques in key areas like package management, microservice communication, and more. Following a cookbook-style Problem/Solution/Discussion format, this practical handbook builds on the foundational concepts of the Go language and introduces specific strategies you can use in your day-to-day applications. You'll learn techniques for building
Composing Software book cover89

Composing Software

Eric Elliott

4.0
All software design is composition: the act of breaking complex problems down into smaller problems and composing those solutions. Most developers have a limited understanding of compositional techniques. It's time for that to change.

In "Composing Software", Eric Elliott shares the fundamentals of composition, including both function composition and object composition, and explores them in the con
Networking All-In-One for Dummies book cover90

Networking All-In-One for Dummies

Doug Lowe

4.0
Becoming a master of networking has never been easier

Whether you're in charge of a small network or a large network, Networking All-in-One is full of the information you'll need to set up a network and keep it functioning. Fully updated to capture the latest Windows 10 releases through Spring 2018, this is the comprehensive guide to setting up, managing, and securing a successful network.

Inside, n
Computer Architecture: A Quantitative Approach book cover91

Computer Architecture: A Quantitative Approach

John L. Hennessy, David A. Patterson

4.0

The computing world today is in the middle of a revolution: mobile clients and cloud computing have emerged as the dominant paradigms driving programming and hardware innovation today. The Fifth Edition of Computer Architecture focuses on this dramatic shift, exploring the ways in which software and technology in the cloud are accessed by cell phones, tablets, laptops, and other mobile computing d

Laravel: From Apprentice To Artisan book cover92

Laravel: From Apprentice To Artisan

Taylor Otwell

4.0
Written by the creator of Laravel, this is the definitive guide to advanced application development with Laravel 4. Learn about dependency injection, interfaces, service providers, SOLID design, and more while exploring practical, real-world code examples. Whether you're building a robust, large application with the Laravel framework, or just want to sharpen your software design chops, this book w
Engineering a Compiler book cover93

Engineering a Compiler

Keith Cooper

4.0
The proliferation of processors, environments, and constraints on systems has cast compiler technology into a wider variety of settings, changing the compiler and compiler writer's role. No longer is execution speed the sole criterion for judging compiled code. Today, code might be judged on how small it is, how much power it consumes, how well it compresses, or how many page faults it generates.
12 More Essential Skills for Software Architects book cover94

12 More Essential Skills for Software Architects

Dave Hendricksen

4.0
Master The Crucial Technical Skills Every Software Architect Needs! To succeed as a software architect, you must master both technical skills and soft skills. Dave Hendricksen illuminated the soft skills in his highly-regarded 12 Essential Skills for Software Architects. Now, in 12 More Essential Skills for Software Architects he turns to the technical side. Drawing on his decades of experienc
95

Refactoring: Ruby Edition, Adobe Reader

Jay Fields, Shane Harvie, et al

4.0
xUnit Test Patterns: Refactoring Test Code book cover96

xUnit Test Patterns: Refactoring Test Code

Gerard Meszaros

4.0
Automated testing is a cornerstone of agile development. An effective testing strategy will deliver new functionality more aggressively, accelerate user feedback, and improve quality. However, for many developers, creating effective automated tests is a unique and unfamiliar challenge. xUnit Test Patterns is the definitive guide to writing automated tests using xUnit, the most popular unit testi
97

Computer Systems: An Integrated Approach to Architecture and Operating Systems

Umakishore Ramachandran and William D. LeahyJr.

4.0
In the early days of computing, hardware and software systems were designed separately. Today, as multicore systems predominate, this separation is becoming impractical.

Computer Systems examines the key elements of all computer systems using an integrated approach that treats hardware and software as part of the same, larger system. Students gain important insights into the interplay between hardw
Domain-Driven Design Distilled book cover98

Domain-Driven Design Distilled

Vaughn Vernon

4.0
Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it. Now, for the first time, there's an accessible guide to the basics of DDD: What it is, what problems it solves, how it works, and how to quickly gain value from it. Concise, readable, and actionable, Domain-Driven Design Distill
Learning Computer Architecture with Raspberry Pi book cover99

Learning Computer Architecture with Raspberry Pi

Eben Upton

4.0
Use your Raspberry Pi to get smart about computing fundamentals

In the 1980s, the tech revolution was kickstarted by a flood of relatively inexpensive, highly programmable computers like the Commodore. Now, a second revolution in computing is beginning with the Raspberry Pi. Learning Computer Architecture with the Raspberry Pi is the premier guide to understanding the components of the most excitin
Digital Retro: The Evolution and Design of the Personal Computer book cover100

Digital Retro: The Evolution and Design of the Personal Computer

Gordon Laing

4.0
The late Seventies to the early Nineties was a completely unique period in the history of computing. Long before Microsoft and Intel ruled the PC world, a disparate variety of home computers, from an unlikely array of suppliers, were engaging in a battle that would shape the industry for years to come.

Products from established electronics giants clashed with machines which often appeared to have