Diff for "ArchitectureGuide"

Not logged in - Log In / Register

Differences between revisions 2 and 20 (spanning 18 versions)
Revision 2 as of 2010-09-01 19:36:44
Size: 1934
Editor: lifeless
Comment: more
Revision 20 as of 2021-11-25 16:19:00
Size: 80
Editor: cjwatson
Comment: redirect to readthedocs
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Architectural Guide =

In this guide you will find some expansion and clarification on the architectural values I presented in the [[https://docs.google.com/a/canonical.com/present/view?id=dgpdcfn9_4fd46fgcz&revision=_latest&start=0&theme=blank&authkey=CJWpj5EN&cwj=true|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.


= 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
#refresh 0 https://launchpad.readthedocs.io/en/latest/guides/architecture.html

ArchitectureGuide (last edited 2021-11-25 16:19:00 by cjwatson)