Software Architecture: Perspectives on an Emerging Discipline
David Garlan and Mary Shaw provide a foundational look at how software systems are structured, moving beyond simple coding to the high-level patterns that define modern computing. They formalize the informal folklore of system design, turning intuitive habits into a disciplined engineering practice. This book serves as a bridge between abstract theory and the practical realities of building compl…
Shelves
More like this
Growing Object-Oriented Software, Guided by Tests
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…
Automate the Boring Stuff with Python: Practical Programming for Total Beginners
If you've ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you…
The Practice of Programming
With the same insight and authority that made their book The Unix programming Environment a classic, Brian Kernighan and Rob Pike have written The…
The Algorithm Design Manual
This volume helps take some of the "mystery" out of identifying and dealing with key algorithms. Drawing heavily on the author's own real-world ex…
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited …
Working Effectively with Legacy Code
Get more out of your legacy systems, more performance, functionality, reliability, and manageability.Is your code easy to change? Can you get near…
The Clean Coder: A Code of Conduct for Professional Programmers
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common They care deeply about the practice of creating…
Building Microservices: Designing Fine-Grained Systems
Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-containe…
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliab…
Effective C++: 55 Specific Ways to Improve Your Programs and Designs
The Barnes & Noble Review Since early in the 90s, working C++ programmers have relied on Scott Meyers s Effective C++ to dramatically improve …
Design Patterns: Elements of Reusable Object-Oriented Software
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct s…
Release It!: Design and Deploy Production-Ready Software
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 surviv…