Warehouse Stock Clearance Sale

Grab a bargain today!


Sign Up for Fishpond's Best Deals Delivered to You Every Day
Go
Practical Development ­Environments

Rating
1 Rating
Already own it? Write a review
Format
Paperback, 330 pages
Published
United States, 1 October 2005

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.


Matthew Doar has been a professional toolsmith and software developer for over ten years at a number of different companies. He wrote this book because he was frustrated with the lack of books about how to create good software development environments. He also wrote JDiff, an open source tool for comparing the APIs of different versions of large Java projects. He has a Ph.D. in computer networking from the University of Cambridge.



  • Dedication
  • Preface
  • Chapter 1: Introduction
  • Chapter 2: Project Basics
  • Chapter 3: Project Concepts
  • Chapter 4: Software Configuration Management
  • Chapter 5: Building Software
  • Chapter 6: Testing Software
  • Chapter 7: Tracking Bugs
  • Chapter 8: Documentation Environments
  • Chapter 9: Releasing Products
  • Chapter 10: Maintenance
  • Chapter 11: Project Communication
  • Chapter 12: Politics and People
  • Appendix A: How Tools Scale
  • Appendix B: Resources
  • Colophon

Show more

Our Price
£25
Elsewhere
£35.99
Save £10.99 (31%)
Ships from UK Estimated delivery date: 7th Apr - 9th Apr from UK

Product 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.


Matthew Doar has been a professional toolsmith and software developer for over ten years at a number of different companies. He wrote this book because he was frustrated with the lack of books about how to create good software development environments. He also wrote JDiff, an open source tool for comparing the APIs of different versions of large Java projects. He has a Ph.D. in computer networking from the University of Cambridge.



Show more
Product Details
EAN
9780596007966
ISBN
0596007965
Publisher
Other Information
Illustrated
Dimensions
23.3 x 17.8 x 2.1 centimeters (0.54 kg)

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

About the Author

Matthew B. Doar began writing code as a child in Yorkshire in the late 1970s, studied Engineering and then Computer Science at the University of Cambridge, and finished up with a Ph.D. in computer networking. He has been a professional software developer for over ten years at a number of different companies, writing C, C++ and Java code for large projects and tools. He also wrote JDiff, an open source tool for comparing the Java APIs of different versions of large projects. Matt currently works near San Jose, CA as a toolsmith by day. By night, he has learnt to play the clarinet, and accidentally delivered his own son.

Show more
Review this Product
Ask a Question About this Product More...
 
Look for similar items by category
Item ships from and is sold by Fishpond World Ltd.

Back to top
We use essential and some optional cookies to provide you the best shopping experience. Visit our cookies policy page for more information.