Performance (and the “ilities”)

Here are three of the most important non-functional requirements you’re likely to face:

  1. Performance

    If your website is too slow, you’ll (obviously) lose users. In this chapter, we’ll look at how patterns can help an individual user experience faster response time, and how patterns can help your system support a greater number of simultaneous users (throughput). (More on this when we discuss the Transfer Object.)

  2. Modularity

    In order for different pieces of your application to run on different boxes at the same time, your software is going to have to be modular... and modular in just the right ways.

    image with no caption
  3. Flexibility, Maintainability, and Extensibility

    Flexibility: You need to change your system without going through some big development cycle. You might need to swap in the “limited time, special offer” components for a big sale. You might find a bug in a new component and need to swap in the older component temporarily. You need your system to be flexible.

    Maintainability: You might need to change database vendors, and update your system quickly. You might get obscure bugs and need to track them down ASAP. The admins might decide to restructure the company’s naming service, and you’ll have to adjust—right now! You need your system to be maintainable.

    Extensibility: The guys over in marketing might need a new feature to land that big client. Your users might demand ...

Get Head First Servlets and JSP, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.