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

 
&nbsp```