[Adam Tornhill] Æ Your Code As a Crime Scene [irish-literature PDF] Read Online Æ I often wish there were a better publication format for things that are worth than some blog posts but don t have a whole book s worth of content This book would have made a great booklet, but did feel padded.
That said, the techniques were useful The book, at it s core, is about using data in the source code repository to get a broader understanding of a code base The techniques are described in some detail, but the book leaned a bit heavily on a particular tool Code Maat I would have appreciated high level pseudocode versions of the various analysis techniques.
Throughout the book, we looked at several properties, all of which can be extracted from many source control repositories change frequency lines of code the simplest proxy for complexity code churn lines changed over time, rather I work professionally with some fairly large and old codebases 1 200K lines of code I follow a craftsman s approach to software development, so it brings me great joy to leave a system cleaner than I found it But not all poor code is equally impeding to maintenance and feature development, and careers are meant for than post hoc code cleanup You know, like sustainably building the right thing for your customer.
This book hits an intersection of respect for cognitive load, seeing things in the world as they are rather than as we would like them to be, and borrowing from disparate fields of study to solve tricky problems I couldn t wait to try the techniques out on my main code base Within an hour I had a working hotspot visualization of code from my own team The hotspots matched remarkably well with my own experience These are some hairy pieces of c Some software projects start from scratch, are very limited scope, you work on them with a very small team for a few months or a year, and then move on to another project This book is not for people working in such conditions On the other hand, if you find yourself dealing with software based products comprised of million line code bases that have been developed by tens of engineers spread throughout the world during many years, and you re supposed to fix bugs, and add new features, thinking about how you can even begin to understand the huge complexity, well, then, this book will mean something to you.
The book s beauty stems from the fact that software engineers can always do better, and that it is crucial to utilize the metadata surrounding the soft The book is good at investigating design issues, but not good at solving them Problems are exposed, but not discussed The tools presented aren t than scripts that have to be executed manually and in the right sequence There is no dashboard or some sort of continuous automated analysis to show the progress of the actions taken after the diagnosis.
The text emphasizes the approach of analyzing the history of changes in files based on version control logs, but I personally think that all diagnosis shown in the book can also be done by a static analysis tool like SonaQube.
Chapter 10, Use Beauty as a Guiding Principle , was the most relevant chapter for me It really opened my mind to some aspects of programming It made the book worth reading.
Some good ideas and approaches in this book, but most are tied to a tool that makes it not especially helpful Would be much better if it wasn t so tightly coupled to code maat.
Great book for learning how to understand large codebases and how to make data driven decisions on improving code The parallels to forensics helped make the book entertaining and kept me engaged.
It s very easy for programming books to either be too common sense or too subjective, but Tornhill manages to present novel information which I think has a much better shot at being widely accepted that debates on various testing methodologies, OO design, type systems, and many other highly contested topics in the software engineering world.
Admittedly, I am not that much of a computer programmer or coder of any kind, although computer programming is a subject of some personal interest 1 and so is forensics 2 , and this inventive and creative book manages to combine insights from forensics into an intensely practical way to improve computer coding by using the techniques that people use to solve crimes Although the idea may seem a bit far fetched, considering that both crimes and complex computer programs are aspects of the mind, and that both of them often involve unsolved mysteries and a fair bit of messiness and chaos and pattern recognition, they have similarities than are often considered to be the case, and in combining the two fields, this book is even of interest on the conceptual level to those whose skills with programming, or the l Check out my blog for a detailed review and summary of the book.
Most of us use version control systems only as repositories for code But they can be much than that since they contain a lot of useful information about a project s history Your Code As a Crime Scene describes how to extract this information from them It presents some novel techniques useful for detecting hot spots and error prone code The book is accompanied by a tool, Code Maat, that you can use to apply the techniques on your own projects Although the tool is a black box, having the ability to put theory into practice is a big win The book takes a look at the source code of Code Maat, but also at mature and larger projects like Craft.
Net, Hibernate and Scala.
Most of the techniques rely on simple metrics I was surprised by how powerful they can be This simplic
The author presents several metrics that you can mine from your version control system and several ways to visualize them All this with the goal of gaining insights into the structure of your code, the ways your team collaborate and to spot emerging troubles early on Some of these metrics are really interesting and do give you valuable information in a cool way.
But the book itself is very bad The connection to forensics and crime investigation is so weak it completely disappears after first few chapters I would go so far as to claim that the title of the book is misleading if not outright lying In many situations author s reasonings and conclusions require big leaps of faith to fol Jack The Ripper And Legacy Codebases Have In Common Than You D Think Inspired By Forensic Psychology Methods, You Ll Learn Strategies To Predict The Future Of Your Codebase, Assess Refactoring Direction, And Understand How Your Team Influences The Design With Its Unique Blend Of Forensic Psychology And Code Analysis, This Book Arms You With The Strategies You Need, No Matter What Programming Language You UseSoftware Is A Living Entity That S Constantly Changing To Understand Software Systems, We Need To Know Where They Came From And How They Evolved By Mining Commit Data And Analyzing The History Of Your Code, You Can Start Fixes Ahead Of Time To Eliminate Broken Designs, Maintenance Issues, And Team Productivity Bottlenecks In This Book, You Ll Learn Forensic Psychology Techniques To Successfully Maintain Your Software You Ll Create A Geographic Profile From Your Commit Data To Find Hotspots, And Apply Temporal Coupling Concepts To Uncover Hidden Relationships Between Unrelated Areas In Your Code You Ll Also Measure The Effectiveness Of Your Code Improvements You Ll Learn How To Apply These Techniques On Projects Both Large And Small For Small Projects, You Ll Get New Insights Into Your Design And How Well The Code Fits Your Ideas For Large Projects, You Ll Identify The Good And The Fragile PartsLarge Scale Development Is Also A Social Activity, And The Team S Dynamics Influence Code Quality That S Why This Book Shows You How To Uncover Social Biases When Analyzing The Evolution Of Your System You Ll Use Commit Messages As Eyewitness Accounts To What Is Really Happening In Your Code Finally, You Ll Put It All Together By Tracking Organizational Problems In The Code And Finding Out How To Fix Them Come Join The Hunt For Better Code