⇤ ← Revision 1 as of 2010-09-01 19:28:24
Size: 892
Comment: start
|
Size: 1934
Comment: more
|
Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
Much existing code does not meet them well; this is simply an opportunity to get big improvements - by increasing e.g. the transparency of existing code, operational issues and debugging headaches can be reduced without a great deal of work. | Some existing code does not meet them well; this is simply an opportunity to get big improvements - by increasing e.g. the transparency of existing code, operational issues and debugging headaches can be reduced without a great deal of work. |
Line 12: | Line 12: |
= Goals = The goal of the recommendations and suggestions in this guide are to help us reach a number of big picture goals: We want Launchpad to be: * Blazingly fast * Always available * Change safely * Simple to make, manage and use * Flexible (See the presentation for more details). However its hard when making any particular design choice to be confident that it drives us towards these goals : they are quite specific, and not directly related to code structure or quality. = Values = There are a number things that are more closely related to code, which do help drive us towards our goals. These are values I (RobertCollins) hold dear, and which the more our code meets these values, the easier it will be to meet our goals. The values are: * Transparency * Loose coupling * Highly cohesive * Testable * Predictable = Transparency = = Loose coupling = = Highly cohesive = ; focused components = Testable = = Predictable = ; in isolation, load tests, broken-backend tests |
Architectural Guide
In this guide you will find some expansion and clarification on the architectural values I presented in the Launchpad Architectural Vision 2010
All the code we write will meet these values to a greater or lesser degree. Where you can, please make choices that make you code more strongly meet these values.
Some existing code does not meet them well; this is simply an opportunity to get big improvements - by increasing e.g. the transparency of existing code, operational issues and debugging headaches can be reduced without a great deal of work.
This guide is intended as a living resource : all Launchpad developers, and other interested parties, are welcome to join in and improve it.
Contents
Goals
The goal of the recommendations and suggestions in this guide are to help us reach a number of big picture goals: We want Launchpad to be:
- Blazingly fast
- Always available
- Change safely
- Simple to make, manage and use
- Flexible
(See the presentation for more details).
However its hard when making any particular design choice to be confident that it drives us towards these goals : they are quite specific, and not directly related to code structure or quality.
Values
There are a number things that are more closely related to code, which do help drive us towards our goals. These are values I (RobertCollins) hold dear, and which the more our code meets these values, the easier it will be to meet our goals.
The values are:
- Transparency
- Loose coupling
- Highly cohesive
- Testable
- Predictable
Transparency
Loose coupling
Highly cohesive
; focused components
Testable
Predictable
; in isolation, load tests, broken-backend tests