Software design X-Rays : fix technical debt with behavioral code analysis /
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starte...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Raleigh, North Carolina :
Pragmatic Bookshelf,
[2018]
|
Colección: | Pragmatic programmers.
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Machine generated contents note: pt. I Prioritize and React to Technical Debt
- 1. Why Technical Debt Isn't Technical
- Questioning Technical Debt
- The Perils of Quantifying Technical Debt
- Mine Your Organization's Collective Intelligence
- Prioritize Improvements Guided by Data
- 2. Identify Code with High Interest Rates
- Measure Interest Rates
- Prioritize Technical Debt with Hotspots
- Evaluate Hotspots with Complexity Trends
- Use X-Rays to Get Deep Insights into Code
- Escape the Technical-Debt Trap
- Exercises
- 3. Coupling in Time: A Heuristic for the Concept of Surprise
- Uncover Expensive Change Patterns
- Detect Cochanging Files
- The Dirty Secret of Copy-Paste
- The Power of Language-Neutral Analyses
- Exercises
- 4. Pay Off Your Technical Debt
- Follow the Principle of Proximity
- Refactor Congested Code with the Splinter Pattern
- Build Temporary Tests as a Safety Net
- Turn Hotspot Methods into Brain-Friendly Chunks
- Note continued: The Curse of a Successful System
- 5. The Principles of Code Age
- Stabilize Code by Age
- The Three Generations of Code
- Refactor Your Package Structure
- Scale from Files to Systems
- Exercises
- pt. II Work with Large Codebases and Organizations
- 6. Spot Your System's Tipping Point
- Is Software Too Hard?
- Divide and Conquer with Architectural Hotspots
- Analyze Subsystems
- Fight the Normalization of Deviance
- Toward Team-Oriented Measures
- Exercises
- 7. Beyond Conway's Law
- Software Architecture Is About Making Choices
- Measure Coordination Needs
- Code Ownership and Diffusion of Responsibility
- Analyze Operational Team Boundaries
- Social Groups: The Flip Side to Conway's Law
- Combine Social and Technical Information
- 8. Toward Modular Monoliths through the Social View of Code
- Dodge the Silver Bullet
- Layered Architectures and the Cost of Consistency
- Monolithic Alternatives: Use Case and Feature-Centric
- Note continued: Discover Bounded Contexts Through Change Patterns
- The Perils of Feature Teams
- Clean and Dirty Architectures
- Exercises
- 9. Systems of Systems: Analyzing Multiple Repositories and Microservices
- Analyze Code in Multiple Repositories
- Compare Hotspots Across Repositories
- Track Change Patterns in Distributed Systems
- Measure Technical Sprawl
- Distribution Won't Cure the Dependency Blues
- Exercises
- 10. An Extra Team Member: Predictive and Proactive Analyses
- Detect Deviating Evolutionary Patterns
- Catch the Absence of Change
- Guide On- and Offboarding with Social Data
- Know the Biases and Workarounds for Behavioral Code Analysis
- Your Code Is Still a Crime Scene
- Exercises
- A1. The Hazards of Productivity and Performance Metrics
- Adaptive Behavior and the Destruction of a Data Source
- The Situation Is Invisible in Code
- A2. Code Maat: An Open Source Analysis Engine
- Run Code Maat
- Data Mining with Code Maat
- Note continued: Visualizations
- A3. Data Mining with Git, cloc, and CodeScene
- Behavioral Code Analysis with Git
- A Brief Introduction to cloc
- Export Analysis Data from CodeScene
- A4. Hints and Solutions to the Exercises
- Solutions: Identify Code with High Interest Rates
- Solutions: Coupling in Time
- Solutions: The Principles of Code Age
- Solutions: Spot Your System's Tipping Point
- Solutions: Modular Monoliths
- Solutions: Systems of Systems
- Solutions: An Extra Team Member.