You are previewing Practical Software Development Techniques: Tools and Techniques for Building Enterprise Software.
O'Reilly logo
Practical Software Development Techniques: Tools and Techniques for Building Enterprise Software

Book Description

This book provides an overview of tools and techniques used in enterprise software development, many of which are not taught in academic programs or learned on the job. This is an ideal resource containing lots of practical information and code examples that you need to master as a member of an enterprise development team.

This book aggregates many of these "on the job" tools and techniques into a concise format and presents them as both discussion topics and with code examples. The reader will not only get an overview of these tools and techniques, but also several discussions concerning operational aspects of enterprise software development and how it differs from smaller development efforts.

For example, in the chapter on Design Patterns and Architecture, the author describes the basics of design patterns but only highlights those that are more important in enterprise applications due to separation of duties, enterprise security, etc.

The architecture discussion revolves has a similar emphasis different teams may manage different aspects of the applications components with little or no access to the developer.

This aspect of restricted access is also mentioned in the section on logging.

Theory of logging and discussions of what to log are briefly mentioned, the configuration of the logging tools is demonstrated along with a discussion of why its very important in an enterprise environment.

Table of Contents

  1. Cover
  2. Title
  3. Copyright
  4. Dedication
  5. Contents at a Glance
  6. Contents
  7. About the Author
  8. Acknowledgments
  9. Introduction
  10. Chapter 1: Version Control
    1. Theory
    2. Software Demonstration
    3. Resolving Conflicts
    4. Tagging and Branching
    5. Retrieving a Previous Version
    6. What to keep in the repository
    7. IDE Integration
    8. Distributed Version Control
    9. Version Control Summary
  11. Chapter 2: Unit Testing and Test Driven Development
    1. Theory
    2. Unit Testing Frameworks
      1. JUnit
      2. NUnit
    3. Test Driven Development (TDD)
    4. Unit Testing Summary
  12. Chapter 3: Refactoring
    1. Theory
    2. Software Demonstration Setup
      1. A note About Tools
      2. Refactoring the Code
    3. Summary
  13. Chapter 4: Build Tools and Continuous Integration
    1. Make
    2. Ant
    3. NAnt/MSBuild
    4. Maven
    5. Continuous Integration (CI) Tools
    6. Simple Example
    7. Deploying to Environments
    8. Summary
  14. Chapter 5: Debugging
    1. Breakpoints
    2. Stepping
    3. Stack Trace
    4. Logging
    5. Summary
  15. Chapter 6: Development Methodologies and SDLC
    1. Waterfall
    2. Agile
    3. Extreme Programming
    4. Distributed Teams
    5. Distributed Version Control
    6. Summary
  16. Chapter 7: Design Patterns and Architecture
    1. Pattern Examples
      1. The Observer Pattern (Behavioral)
      2. The Façade Pattern (Structural)
      3. The Singleton Pattern (Creational)
    2. Enterprise Patterns: MVC and Inversion of Control
      1. Model-View-Controller
      2. Inversion of Control
    3. Refactoring using Patterns
      1. Factory Method Pattern
      2. Strategy Pattern
      3. Example
    4. Architecture Pattern: N-Tier
    5. Summary
  17. Chapter 8: Software Requirements
    1. Business Requirements
    2. Functional Design
    3. Technical Design
    4. Change Control
    5. Summary
  18. Chapter 9: Just Enough SQL
    1. A Note about the Server and Client Tools
    2. Minimal Database Design
    3. SQL Statement Basics
    4. Filtering and Sorting
    5. More Advanced SQL
    6. Programming Frameworks
      1. Basic ADO.NET
    7. Object-Relational Mapping – Methods and Tools
    8. Summary
  19. Appendix A: Enterprise Considerations and Other Topics
    1. Number and Location of Team Members and/or Users
    2. System Integration
    3. Separation of Duties and Environmental Limitations
    4. Software Political Statements- Which Language/Platform is Better?
    5. Software Libraries and Frameworks – Use Third Party or Write In-House?
    6. Domain Knowledge
    7. Continuing Education
    8. Contractor or Full Time Employee?
    9. Summary
  20. Appendix B: Discussion Questions
    1. Chapter 1: Version Control
    2. Chapter 2: Unit Testing and Test Driven Development
    3. Chapter 3: Refactoring
    4. Chapter 4: Build Tools and Continuous Integration
    5. Chapter 5: Debugging
    6. Chapter 6: Development Methodologies
    7. Chapter 7: Design Patterns and Architecture
    8. Chapter 8: Software Requirements
    9. Chapter 9: Just Enough SQL
  21. Appendix C: Database Details
  22. Appendix D: Bibliography
    1. Books
    2. Web Sites
    3. Other Suggested Reading
    4. SQL Additional Reading/Resources
  23. Index