Our view is that debugging is an essential part of the craft of software development. By thinking of debugging as a primary endeavor, developers are liberated to be more rigorous about it and can afford the luxury of complete understanding. By considering debugging as opportunity rather than setback, developers can take a craftsman's pleasure in it, mastering its nuances and deriving intrinsic satisfaction from doing it well. This is the thesis of this book: that debugging must be rigorous and empirical -- but that within that rigor, software engineers can discover a joy unique in the craft.
Our view is that debugging is an essential part of the craft of software development. By thinking of debugging as a primary endeavor, developers are liberated to be more rigorous about it and can afford the luxury of complete understanding. By considering debugging as opportunity rather than setback, developers can take a craftsman's pleasure in it, mastering its nuances and deriving intrinsic satisfaction from doing it well. This is the thesis of this book: that debugging must be rigorous and empirical -- but that within that rigor, software engineers can discover a joy unique in the craft.
Draft table of contents Part 1: Foundations * Introduction (embracing debugging as both a first-class part of our jobs as engineers, and as an enjoyable, rewarding part of the craft of software engineering) * How software fails: taxonomy of failure (implicit and explicit, fatal and non-fatal) * Understanding software failure: the scientific method (including the roles of reproducibility, for testing hypotheses and gathering data) Part 2: Approaches * In situ debugging -- Using Dynamic Tracing --Logging -- Basic tools (e.g., finding information about what processes are doing?) * Postmortem debugging (fatal failure) Part 3: Specific expertise These chapters start with narrative prose describing basic concepts, and then enumerate tips and techniques related to the problem space. * Debugging memory issues in native code (corruption, use-after-free) * Debugging resource exhaustion in native code * Debugging multi-threaded programs * Debugging in dynamic environments (including GC-related issues) * Debugging the network (including TCP issues, jumbo frames, partitions) * Debugging distributed systems * Debugging performance issues * Debugging psychotic issues Part 4: Advanced topics * Debugging-driven development (embracing debugging at development-time) * What to do when you're stuck * Debugging unfamiliar systems * Debugging during an outage * Building an organization for debugging * Describing failure [rigorously, and the importance of it]
Draft table of contents Part 1: Foundations * Introduction (embracing debugging as both a first-class part of our jobs as engineers, and as an enjoyable, rewarding part of the craft of software engineering) * How software fails: taxonomy of failure (implicit and explicit, fatal and non-fatal) * Understanding software failure: the scientific method (including the roles of reproducibility, for testing hypotheses and gathering data) Part 2: Approaches * In situ debugging -- Using Dynamic Tracing --Logging -- Basic tools (e.g., finding information about what processes are doing?) * Postmortem debugging (fatal failure) Part 3: Specific expertise These chapters start with narrative prose describing basic concepts, and then enumerate tips and techniques related to the problem space. * Debugging memory issues in native code (corruption, use-after-free) * Debugging resource exhaustion in native code * Debugging multi-threaded programs * Debugging in dynamic environments (including GC-related issues) * Debugging the network (including TCP issues, jumbo frames, partitions) * Debugging distributed systems * Debugging performance issues * Debugging psychotic issues Part 4: Advanced topics * Debugging-driven development (embracing debugging at development-time) * What to do when you're stuck * Debugging unfamiliar systems * Debugging during an outage * Building an organization for debugging * Describing failure [rigorously, and the importance of it]
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497
USt-IdNr: DE450055826