Cargando…

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...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Tornhill, Adam (Autor)
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)

MARC

LEADER 00000cam a2200000 i 4500
001 OR_on1030625066
003 OCoLC
005 20231017213018.0
006 m o d
007 cr cnu|||unuuu
008 180406s2018 ncua ob 001 0 eng d
040 |a N$T  |b eng  |e rda  |e pn  |c N$T  |d N$T  |d YDX  |d OCLCF  |d UMI  |d STF  |d TOH  |d TEFOD  |d CEF  |d OCLCQ  |d DEBBG  |d G3B  |d UAB  |d UKAHL  |d VT2  |d C6I  |d OCLCQ  |d DST  |d OCLCO  |d OCLCQ 
015 |a GBB860844  |2 bnb 
016 7 |a 018813643  |2 Uk 
019 |a 1031204469  |a 1031315046  |a 1031337457  |a 1031361264  |a 1031384247  |a 1033544451  |a 1103269840  |a 1152973592  |a 1192337694  |a 1240524057 
020 |a 9781680505818  |q (electronic bk.) 
020 |a 1680505815  |q (electronic bk.) 
020 |a 9781680505801  |q (electronic bk.) 
020 |a 1680505807  |q (electronic bk.) 
020 |z 9781680502725 
020 |z 1680502727 
029 1 |a AU@  |b 000073556348 
035 |a (OCoLC)1030625066  |z (OCoLC)1031204469  |z (OCoLC)1031315046  |z (OCoLC)1031337457  |z (OCoLC)1031361264  |z (OCoLC)1031384247  |z (OCoLC)1033544451  |z (OCoLC)1103269840  |z (OCoLC)1152973592  |z (OCoLC)1192337694  |z (OCoLC)1240524057 
037 |a CL0500000960  |b Safari Books Online 
037 |a 9DB5234C-FC6D-4442-BD28-71007A40389F  |b OverDrive, Inc.  |n http://www.overdrive.com 
050 4 |a QA76.76.D47 
072 7 |a COM  |x 051230  |2 bisacsh 
082 0 4 |a 005.1068  |2 23 
049 |a UAMI 
100 1 |a Tornhill, Adam,  |e author. 
245 1 0 |a Software design X-Rays :  |b fix technical debt with behavioral code analysis /  |c Adam Tornhill. 
264 1 |a Raleigh, North Carolina :  |b Pragmatic Bookshelf,  |c [2018] 
264 4 |c ©2018 
300 |a 1 online resource :  |b illustrations 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
490 1 |a The pragmatic programmers 
504 |a Includes bibliographical references and index. 
588 0 |a Online resource; title from PDF title page (EBSCO, viewed April 10, 2018). 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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. 
520 |a 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 starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist. 
590 |a O'Reilly  |b O'Reilly Online Learning: Academic/Public Library Edition 
650 0 |a Computer software  |x Development. 
650 0 |a Computer programming. 
650 0 |a Behavioral assessment. 
650 0 |a Software engineering. 
650 6 |a Programmation (Informatique) 
650 6 |a Analyse comportementale. 
650 6 |a Génie logiciel. 
650 7 |a computer programming.  |2 aat 
650 7 |a COMPUTERS  |x Software Development & Engineering  |x General.  |2 bisacsh 
650 7 |a Behavioral assessment.  |2 fast  |0 (OCoLC)fst00829938 
650 7 |a Computer programming.  |2 fast  |0 (OCoLC)fst00872390 
650 7 |a Computer software  |x Development.  |2 fast  |0 (OCoLC)fst00872537 
650 7 |a Software engineering.  |2 fast  |0 (OCoLC)fst01124185 
776 0 8 |i Print version:  |z 1680502727  |z 9781680502725  |w (OCoLC)1002294631 
830 0 |a Pragmatic programmers. 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781680505795/?ar  |z Texto completo (Requiere registro previo con correo institucional) 
938 |a Askews and Holts Library Services  |b ASKH  |n AH34294115 
938 |a Askews and Holts Library Services  |b ASKH  |n AH34294116 
938 |a EBSCOhost  |b EBSC  |n 1761756 
938 |a YBP Library Services  |b YANK  |n 15260048 
994 |a 92  |b IZTAP