We analysed more than 40 000 000 questions and answers on stackoverflow.com to bring you the top of most mentioned books (5720 in total)

How we did it:

  • We got database dump of all user-contributed content on the Stack Exchange network (can be downloaded here)
  • Extracted questions and answers made on stackoverflow
  • Found all amazon.com links and counted it
  • Created tag-based search for your convenience
  • Brought it to you

For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks

Recomended tags

Top inversion-of-control books mentioned on stackoverflow.com

Working Effectively with Legacy Code

Michael C. Feathers

The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.

The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.

Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.

Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.

To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.

The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.

Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.

It's an unfortunate commentary on the state of our programming industry how much we need this book.

More on Amazon.com

Design Patterns

Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm

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 describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001

More on Amazon.com

Domain-driven Design

Eric Evans

Describes ways to incorporate domain modeling into software development.

More on Amazon.com

XUnit Test Patterns

Gerard Meszaros

Improves software return on investment by teaching the reader how to refactor test code and reduce or prevent crippling test maintenance.

More on Amazon.com

Dependency Injection in .NET

Mark Seemann

"Dependency Injection in .NET" is a comprehensive guide that introduces DI to .NET developers. It covers core concepts and patterns, and introduces important DI frameworks, such as StructureMap, Windsor, and Spring.NET.

More on Amazon.com

Architecting Microsoft .NET Solutions for the Enterprise

Dino Esposito, Andrea Saltarello

Provides information on designing and building effective enterprise solutions, covering such topics as UML, the business layer, the service layer, and the data access layer.

More on Amazon.com

Agile Principles, Patterns, and Practices in C#

Robert C. Martin, Micah Martin

Comprehensive, pragmatic tutorial on Agile development for C# programmers from one of the founding fathers of Agile programming.

More on Amazon.com

ASP.NET MVC 2 in Action

Jeffrey Palermo, Ben Scheirman, Jimmy Bogard, Matthew Hinze, Eric Hexter

Featuring full coverage of new version 2 features, this book helps readers use developer-oriented upgrades like "Areas" to break a large project into smaller pieces and explore the new data handling tools.

More on Amazon.com

Modern Web Development

Dino Esposito

Master powerful new approaches to web architecture, design, and user experience This book presents a pragmatic, problem-driven, user-focused approach to planning, designing, and building dynamic web solutions. You ll learn how to gain maximum value from Domain-Driven Design (DDD), define optimal supporting architecture, and succeed with modern UX-first design approaches. The author guides you through choosing and implementing specific technologies and addresses key user-experience topics, including mobile-friendly and responsive design. You ll learn how to gain more value from existing Microsoft technologies such asASP.NETMVC and SignalR by using them alongside other technologies such as Bootstrap, AJAX, JSON, and JQuery. By using these techniques and understanding the newASP.NETCore 1.0, you can quickly build advanced web solutions that solve today s problems and deliver an outstanding user experience. Microsoft MVP Dino Esposito shows you how to: Plan websites and web apps to mirror real-world social and business processes Use DDD to dissect and master the complexity of business domains Use UX-Driven Design to reduce costs and give customers what they want Realistically compare server-side and client-side web paradigms Get started with the newASP.NETCore 1.0 Simplify modern visual webpage construction with Bootstrap Master practical, efficient techniques for runningASP.NETMVC projects Consider new options for implementing persistence and working with data models Understand Responsive Web Design s pros, cons, and tradeoffs Build truly mobile-friendly, mobile-optimized websites About This Book For experienced developers and solution architects who want to plan and develop web solutions more effectively Assumes basic familiarity with the Microsoft web development stack "

More on Amazon.com

Component Software

Clemens Szyperski

Component Software: Beyond Object-Oriented Programming explains the technical foundations of this evolving technology and its importance in the software market place. It provides in-depth discussion of both the technical and the business issues to be considered, then moves on to suggest approaches for implementing component-oriented software production and the organizational requirements for success. The author draws on his own experience to offer tried-and-tested solutions to common problems and novel approaches to potential pitfalls. Anyone responsible for developing software strategy, evaluating new technologies, buying or building software will find Clemens Szyperskiis objective and market-aware perspective of this new area invaluable. Helpful Features Include: a uniquely objective comparison of the industry front-runnersi products: Sunis Java Beans; Microsoftis DCOM and Active X; the OMGis CORBA and IIOP a description of the emerging industry standards being developed by consortia such as the OMG and the OPEN Group studies of component-oriented tools and languages, using Java and Component Pascal as examples in-depth discussion of the potential and challenges of component software (c) Clemens Szyperski 1998 0201178885B04062001

More on Amazon.com