Practical Development Environments
暫譯: 實用開發環境

Matthew B. Doar

  • 出版商: O'Reilly
  • 出版日期: 2005-11-01
  • 定價: $1,480
  • 售價: 5.0$740
  • 語言: 英文
  • 頁數: 330
  • 裝訂: Paperback
  • ISBN: 0596007965
  • ISBN-13: 9780596007966
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

相關主題

商品描述

Description:

This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project.

Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further.

Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often. Whether as a full-time position or just because they are helpful, all projects have toolsmiths: making choices about tools, installing them, and then maintaining the tools that everyone else depends upon. This book is especially for everyone who ends up being a toolsmith for his or her group.

 

Table of Contents:

list of figures

list of tables

list of examples

Preface

1. Introduction

     Developing Software Products

     Open and Closed Software Development

     Dirty Secrets of Software Projects

     What Does "Practical" Mean?

     A Personal Tools Quiz

2. Project Basics

     The Parts of a Project

     Software Configuration Management

     Building Software

     Testing Software

     Tracking Bugs

     Writing Documentation

     Releasing Products

     Maintenance

     Recommended Tools

               Modern Environments

               Classic Environments

               Future Environments

3. Project Concepts

     Preconstructed Development Environments

               SourceForge

               GForge

               CollabNet

               Savane

               BerliOS

               Improving PDEs

     Why Integration Is Helpful

     Why Automation Is Vital

     Automation Environments

               Shell Scripts and Batch Files

               Tinderbox

               Anthill

               CruiseControl

     Labeling Builds

     Naming Projects and Machines

               Choosing Project Names

               Choosing Machine Names

     Choosing New Tools

               Steps When Changing Tools

     Internationalization and Localization

     Authentication, Authorization, and Accounting

4. Software Configuration Management

     Why Do I Need SCM?

     What SCM Is and Is Not

     Drawbacks of SCM

     A Typical Day's Work with SCM

     SCM Annoyances

               Branches and Tags

               When to Branch? When to Tag?

               Naming Branches and Tags

               Merge Madness

               Security

               Access Wars

               Filenames to Avoid

               Backups and SCM

     SCM Tools

               CVS

               Subversion

               Arch

               Perforce

               BitKeeper

               ClearCase

               Visual SourceSafe

     Comparison of SCM Tools

     Wider Uses of SCM

     Checklist

5. Building Software

     How Software Gets Built

               The Different Stages of a Build

               A Typical Build File

     Build States: Virgin, Up-to-date, Changed, Interrupted, Clean

               Good Builds, Bad Builds

               Build States and Different Targets

               Build States in Practice

     Build Dependencies

               When Build Dependencies Go Wrong

               How Build Dependencies Change

     Common Build Problems

               Slow Builds

     Build Tools

               Shell Scripts and Batch Files

               make

               GNU Autotools

               Ant

               Jam

               SCons

               Custom Build Tools

     Comparison of Build Tools

     Changing Your Build Tool

     Checklist

6. Testing Software

     Different Kinds of Tests

               Unit Tests

               System Tests

               Customer Tests

               Other Tests

     Why Automate Your Tests?

     Evaluating Test Environments

               Preparing to Test

               Running the Tests

               After the Tests

               Good Test Reports

     Test Environments

               Shell Scripts and Batch Files

               xUnit

               DejaGnu

               SilkTest

     Types of Test Tools

               Memory Analyzers

               Coverage Tools

               Performance Tools

               Static Code Analyzers

     The Difficult Parts of Testing

               Faults of Omission

               Capturing Output

               Using Multiple Machines

               Only a Developer Can Do That!

               Accessibility Testing

     Checklist

7. Tracking Bugs

     Tool Requirements

     Bug Tracking Tools

               Spreadsheets

               Different Server Technologies

               Bugzilla

               GNATS

               FogBugz

               JIRA

               TestTrack

               Custom Bug Tracking Tools

     Bug Tracking Annoyances

               Multiplying Products

               Cleaning Up

               One Bug, Multiple Releases

               Severity Inflation

               Identifying the Right Area

               Customizing the Bug Tracking System

               Overloading Fields

               Bug History

               Bug Statistics

               Writing an Effective Bug Report

     Integrating with SCM Tools

     Checklist

8. Documentation Environments

     Technical Documentation

               Is Documentation a Separate Product?

               Writing Documentation Is Like Writing Code

     Documents and SCM

     File Formats for Documentation

               File Formats for Customers

     Documentation Environments

               Raw Text

               FrameMaker

               XML: DocBook and OpenOffice

               Microsoft Word

     More File Formats

     Automated Production of Documentation

     Bad Ideas for Documentation

               Releasing the Documentation Separately

               Ransom-Note Cut and Paste

               Old Versions That Never Die

               Funky Filenames

               Screenshots

     Internal Project Documentation

     Checklist

9. Releasing Products

     Overview

     Before the Release

               System Requirements

               Build Numbers

               Release Numbering

               Release Information

               Upgrading

               Legal Licenses

               License Keys

               Securing Your Releases

               Quick Fixes and Engineering Specials

     Creating the Release

               Automated Releases

               Automating Release Information

               Developers as Customers

     Packaging Formats

               Unix

               Windows

     Installation Tools

               Requirements

               Unix

               Windows

     Installation Irritations-Ship Happens!

     After the Release

     Checklist

10. Maintenance

     Maintaining an Environment

               Migrating Your Data

     What Is Product Maintenance?

               Developing for Easier Maintenance

     Product Maintenance Tasks

               Understanding Code

               Reproducing a Build

               Handling Product Name Changes

               Handling Company Name Changes

               Handling Copyright Date Changes

     Product Maintenance and Development Environments

               SCM

               Building

               Testing

               Bug Tracking

               Documentation

               People and Politics

     Cleaning Up Your Environment

     Checklist

11. Project Communication

     Tools for Communication

     A Project Web Site

               Access Control

     Different Areas for the Project Web Site

               Home Page

               Getting Started

               Specifications

               SCM

               Building

               Testing

               Bug Tracking

               Documentation

               Releases

               Maintenance

               Support

               Project Management

               About the Web Site

     Creating the Web Site

               Static Web Pages

               Dynamic Web Pages

               Indexing and Searching

     Avoiding Content Rot

12. Politics and People

     The Role of the Toolsmith

               How to Choose a Toolsmith

     When Good Projects Go Bad

     Awkward People

     Twisted Communications

     Commit Rights

     Automation Discipline

     What Do Developers Really Want?

     An Upbeat Ending

A. How Tools Scale

     Scaling of Compilers

               How the Compiler gcc Scales

     Scaling of Build Tools

               Comparing Recursive and Included make

B. Resources

     Online

               Content

               Discussions

               Directories

     Magazines

     Books

               Automation and General Tools

               Software Configuration Management

               Building Software

               Testing Software

               Tracking Bugs

               Documentation Environments

               Releasing Products

               Maintenance

               Politics and People

               Developing Software

               General Design

     Conferences

     University and College Courses

index

商品描述(中文翻譯)

**描述:**
這本書並不告訴你如何寫出更快的程式碼,或如何寫出更少記憶體洩漏的程式碼,甚至也不會教你如何進行除錯。它告訴你的是如何以更好的方式構建你的產品,如何追蹤你所寫的程式碼,以及如何追蹤程式碼中的錯誤。此外,還有一些你會希望在開始專案之前就知道的事情。
《實用開發環境》是一本指南,收集了有關小型到中型專案和團隊的真實開發環境的建議。每一章都考慮到不同類型的工具——用於追蹤檔案版本的工具、建置工具、測試工具、錯誤追蹤工具、創建文檔的工具以及創建打包版本的工具。每一章都討論了在這類工具中應該尋找什麼以及應該避免什麼,並描述了每個領域中的一些好主意、壞主意和令人煩惱的經歷。每種類型的工具都有具體的實例,描述得足夠詳細,以便你可以決定想要進一步調查哪些工具。
開發人員想要編寫程式碼,而不是維護 makefile。作家想要撰寫內容,而不是管理模板。IT 提供機器,但沒有時間維護所有不同的工具。管理者希望產品能夠順利地從開發過渡到發布,並對幫助這一過程的工具感興趣。無論是全職職位還是因為它們有幫助,所有專案都有工具專家:做出有關工具的選擇、安裝它們,然後維護所有其他人依賴的工具。這本書特別適合那些最終成為其團隊工具專家的每一個人。

**目錄:**
- 圖表清單
- 表格清單
- 範例清單
- 前言
- 1. 介紹
- 開發軟體產品
- 開放與封閉的軟體開發
- 軟體專案的髒秘密
- 「實用」是什麼意思?
- 個人工具測驗
- 2. 專案基礎
- 專案的組成部分
- 軟體配置管理
- 建置軟體
- 測試軟體
- 追蹤錯誤
- 撰寫文檔
- 發布產品
- 維護
- 推薦工具
- 現代環境
- 經典環境
- 未來環境
- 3. 專案概念
- 預構建的開發環境
- SourceForge
- GForge
- CollabNet
- Savane
- BerliOS
- 改進 PDE
- 為什麼整合是有幫助的
- 為什麼自動化是至關重要的
- 自動化環境
- Shell 腳本和批次檔
- Tinderbox
- Anthill
- CruiseControl
- 標記建置
- 命名專案和機器
- 選擇專案名稱
- 選擇機器名稱
- 選擇新工具
- 更換工具時的步驟
- 國際化和本地化
- 認證、授權和會計
- 4. 軟體配置管理
- 為什麼我需要 SCM?
- SCM 是什麼以及不是什麼
- SCM 的缺點
- 使用 SCM 的典型工作日
- SCM 的煩惱
- 分支和標籤
- 何時分支?何時標籤?
- 命名分支和標籤
- 合併瘋狂
- 安全性
- 訪問戰爭
- 避免的檔名
- 備份和 SCM
- SCM 工具
- CVS
- Subversion
- Arch
- Perforce
- BitKeeper
- ClearCase
- Visual SourceSafe
- SCM 工具的比較
- SCM 的更廣泛用途
- 檢查清單
- 5. 建置軟體
- 軟體是如何建置的
- 建置的不同階段
- 典型的建置檔
- 建置狀態:全新、最新、已更改、中斷、乾淨
- 好的建置,壞的建置
- 建置狀態和不同目標
- 實踐中的建置狀態
- 建置依賴性
- 當建置依賴性出錯時
- 建置依賴性如何變化
- 常見的建置問題
- 緩慢的建置
- 建置工具
- Shell 腳本和批次檔
- make
- GNU Autotools
- Ant
- Jam
- SCons
- 自定義建置工具
- 建置工具的比較
- 更換建置工具
- 檢查清單
- 6. 測試軟體
- 不同類型的測試
- 單元測試
- 系統測試
- 客戶測試
- 其他測試
- 為什麼要自動化測試?
- 評估測試環境
- 準備測試
- 執行測試
- 測試後
- 良好的測試報告
- 測試環境
- Shell 腳本和批次檔
- xUnit
- DejaGnu
- SilkTest
- 測試工具的類型
- 記憶體分析器
- 覆蓋工具
- 性能工具
- 靜態程式碼分析器
- 測試的困難部分
- 遺漏的錯誤
- 捕獲輸出
- 使用多台機器
- 只有開發人員能做到!
- 可及性測試
- 檢查清單
- 7. 追蹤錯誤
- 工具需求
- 錯誤追蹤工具
- 試算表