Practical Development Environments
Matthew B. Doar
- 出版商: O'Reilly
- 出版日期: 2005-11-01
- 定價: $1,480
- 售價: 5.0 折 $740
- 語言: 英文
- 頁數: 330
- 裝訂: Paperback
- ISBN: 0596007965
- ISBN-13: 9780596007966
立即出貨 (庫存 < 3)
買這商品的人也買了...
-
$2,340$2,223 -
$750$593 -
$490$382 -
$1,500$1,425 -
$5,110$4,855 -
$650$507 -
$600$510 -
$750$593 -
$880$792 -
$820$697 -
$350$277 -
$450$351 -
$650$507 -
$480$408 -
$880$581 -
$1,254$1,188 -
$890$757 -
$780$741 -
$650$507 -
$550$468 -
$1,200$948 -
$600$474 -
$720$612 -
$600$480 -
$2,200$2,090
相關主題
商品描述
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
 ```