3 options
Your Code As a Crime Scene, Second Edition / Adam Tornhill.
- Format:
- Book
- Author/Creator:
- Tornhill, Adam, author.
- Language:
- English
- Subjects (All):
- Computer architecture.
- Computer programming--Management.
- Computer programming.
- Physical Description:
- 1 online resource (319 pages)
- Edition:
- Second edition.
- Place of Publication:
- Raleigh, NC : The Pragmatic Programmers, LLC, [2024]
- Contents:
- Cover
- Table of Contents
- Foreword
- Acknowledgments
- Welcome to the Crime Scene
- Why You Should Read This Book
- Who Should Read This Book?
- Why Read This Book Now?
- How to Read This Book
- Toward a New Approach
- Get Your Investigative Tools
- Part I-Identify Code That's Hard to Understand
- 1. Optimize for Understanding
- Understand That Typing Isn't the Bottleneck in Programming
- Meet the Challenges of Scale
- Beware the Lure of Complexity Metrics
- 2. Treat Your Code as a Crime Scene
- Take a Crash Course in Offender Profiling
- Apply Geographical Offender Profiling to Code
- Limit the Search Area: Spatial Patterns in Code
- Be Aware That Hotspots Reflect Probabilities
- 3. Discover Hotspots: Create an Offender Profile of Code
- Mine the Evolution of Code
- Explore the Complexity Dimension
- Intersect Complexity and Effort
- Drive Refactoring via a Probability Surface
- Exercises
- 4. Hotspots Applied: Visualize Code from the People Side
- Visualize Source Code
- Break Barriers via Language Agnostic Analyses
- Determine How Hot a Hotspot Is
- Understand That Bugs Breed Bugs
- Know That Information Is Only Good When Acted Upon
- 5. Detect Deteriorating Structures
- Calculate Complexity Trends from Your Code's Shape
- Inspect Negative Space in Code
- Prefer Trends over Absolute Values
- Evaluate the Growth Patterns
- 6. Remediate Complicated Code
- Meet Your Brain on Code
- Spot Nested Logic That Taxes Working Memory
- Refactor Complex Code via Simple Steps
- Evade Object Disorientation
- Use Abstraction as a Tool for Thinking
- 7. Communicate the Business Impact of Technical Debt
- Know the Costs and Consequences of Technical Debt
- Know Why Half the Work Gets Done in Twice the Time
- Make the Business Case for Refactoring.
- Fight Unplanned Work, the Silent Killer of Projects
- Differentiate Remediation Time from Interest Payments
- Part II-Build Supportive Software Architectures
- 8. Use Code as a Cooperative Witness
- Recognize the Paradox of False Memories
- Reveal the Dynamics of Change
- Inspect the Modus Operandi of a Code Change
- Understand the Reasons Behind Temporal Dependencies
- 9. Architectural Reviews: Support Redesigns with Data
- Don't Shoot the Messenger
- Use Sum of Coupling to Determine Architectural Significance
- Understand Change Coupling Algorithms
- Catch Architectural Decay
- Modularize Monoliths
- 10. Use Beauty as a Guiding Principle
- Learn Why Attractiveness Matters
- Use Beauty in Code
- Analyze Pipes and Filters Architectures
- Analyze Layered Architectures
- Analyze Microservice Systems
- Reverse-Engineer Your Principles from Code
- 11. Expose Hidden Bottlenecks: Delivery and Automation
- Understand What's in an Architecture
- Profile Targets in Test Code
- Create a Safety Net for Your Automated Tests
- Avoid the Automated-Test Death March
- Design for Human Problem-Solving
- Part III-Meet the Social Side of Your Code
- 12. Meet Norms, Groups, and False Serial Killers
- Learn Why the Right People Don't Speak Up
- Understand Pluralistic Ignorance
- Witness Groupthink in Action
- Discover Your Team's Modus Operandi
- Mine Organizational Metrics from Code
- 13. Discover Organizational Metrics in Your Codebase
- Kill a Project: A How-to Guide
- Analyze Hotspots for Coordination Issues
- Spot Conway's Law in Your Code
- Act on Inter-Team Dependencies
- 14. See How Technical Problems Cause Organizational Issues
- Have Your Code Motivate Retention
- Discover How Code Smells Lead to Coordination Problems.
- Visualize Organizational Friction
- Measure the Truck Factor in Unhealthy Code
- Uncover the People Side of Code
- 15. Build a Knowledge Map of Your System
- Know Your Knowledge Distribution
- Expand Your Mental Maps with Social Data
- Dig Below the Surface with Developer Patterns
- Use Fractal Figures to Mitigate Offboarding Risks
- Distinguish Use from Misuse
- 16. Move Toward the Future
- Deepen Your Investigation
- Watch the Next Steps
- Stay Relevant: Programming in an AI World
- Watch Evolution in Reverse: Working with Low Code
- Write Evolvable Code
- A1. Solutions to the Exercises
- Part I: Identify Code That's Hard to Understand
- Part II: Build Supportive Software Architectures
- Part III: Meet the Social Side of Your Code
- A2. Get Started with Enclosure Visualizations
- Bibliography
- Index
- - A -
- - B -
- - C -
- - D -
- - E -
- - F -
- - G -
- - H -
- - I -
- - J -
- - K -
- - L -
- - M -
- - N -
- - O -
- - P -
- - Q -
- - R -
- - S -
- - T -
- - U -
- - V -
- - W -
- - Y -
- - Z -.
- Notes:
- Description based on publisher supplied metadata and other sources.
- Description based on print version record.
- Includes bibliographical references and index.
- ISBN:
- 9798888650851
- OCLC:
- 1505732249
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.