Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis
Adam Tornhill
- 出版商: Pragmatic Bookshelf
- 出版日期: 2018-03-18
- 售價: $1,608
- 貴賓價: 9.5 折 $1,528
- 語言: 英文
- 頁數: 276
- 裝訂: Paperback
- ISBN: 1680502727
- ISBN-13: 9781680502725
-
相關分類:
UI/UX
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$732
tmux 2: Productive Mouse-Free Development
-
$1,550$1,473Raspberry Pi 3 Model B+ (UK製)
-
$1,700$1,700Arduino 官方正版 Genuino 101
-
$1,995
Mastering Ethereum: Building Smart Contracts and Dapps
-
$841
Pedagogical Patterns: Advice For Educators
-
$350$333Raspberry Pi 3 原廠授權紅白外殼 (Pi 3 Model B / B+ 皆適用)
-
$1,496
Electron in Action
-
$580$458企業級服務導向架構應用 SOA - Base on Apache CXF
-
$928
Learn JavaScript with p5.js: Coding for Visual Learners
-
$1,995
IPv6 Fundamentals: A Straightforward Approach to Understanding IPv6 (2nd Edition)
-
$2,087
Security Patterns in Practice: Designing Secure Architectures Using Software Patterns (Hardcover)
-
$580$458React 學習手冊 (Learning React: Functional Web Development with React and Redux)
-
$380
區塊鏈技術指南
-
$1,425
DevOps: A Software Architect's Perspective (Hardcover)
-
$620$434自己動手寫 CPU
-
$680$537CSS Secrets 中文版|解決網頁設計問題的有效秘訣 (CSS Secrets: Better Solutions to Everyday Web Design Problems)
-
$540$427Canvas 2D 網頁平面繪圖與遊戲開發(舊版:Canvas 2D 網頁開發:HTML 5 與平面圖型的完美結合)
-
$520$411Node.js 實戰手冊 (Node.js in Action)
-
$590$466王者歸來-深入OSGi:Equinox 原理、應用與最佳實作
-
$2,384
Thinking in C++, Volume 1: Introduction to Standard C++, 2/e (Paperback)
-
$990$891C++ Primer, 4/e (中文版)
-
$780$616Android 程式設計, 2/e (Programming Android: Java Programming for the New Generation of Mobile Devices, 2/e)
-
$1,176
Server Component Patterns: Component Infrastructures Illustrated with EJB (Hardcover)
-
$1,127
Introduction to Systems Analysis and Design (美國版ISBN:007340294X)
-
$880$695深入淺出物件導向分析與設計 (Head First Object-Oriented Analysis and Design)
商品描述
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.