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,370$2,252 -
$750$638 -
$490$382 -
$1,520$1,444 -
$5,180$4,921 -
$650$507 -
$600$510 -
$750$638 -
$880$748 -
$820$697 -
$350$298 -
$450$351 -
$650$507 -
$480$408 -
$880$695 -
$1,188Practical Perforce (Paperback)
-
$890$757 -
$780$741 -
$650$507 -
$550$468 -
$1,200$948 -
$600$510 -
$720$569 -
$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
- 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. 追蹤錯誤
- 工具需求
- 錯誤追蹤工具
- 試算表