~certify-web-dev/twisted/certify-trunk

« back to all changes in this revision

Viewing changes to doc/vision/philosophy.html

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2007-01-17 14:52:35 UTC
  • mfrom: (1.1.5 upstream) (2.1.2 etch)
  • Revision ID: james.westby@ubuntu.com-20070117145235-btmig6qfmqfen0om
Tags: 2.5.0-0ubuntu1
New upstream version, compatible with python2.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><title>Twisted Documentation: Philosophy</title><link href="../howto/stylesheet.css" type="text/css" rel="stylesheet" /></head><body bgcolor="white"><h1 class="title">Philosophy</h1><div class="toc"><ol><li><a href="#auto0">Abstraction Levels</a></li><li><a href="#auto1">Learning Curves</a></li></ol></div><div class="content"><span></span><h2>Abstraction Levels<a name="auto0"></a></h2><p>When implementing interfaces to the operating system or
3
 
the network, provide two interfaces:</p><ul><li>One that doesn't hide platform specific or library specific 
4
 
functionality.
5
 
For example, you can use file descriptors on Unix, and Win32 events on
6
 
Windows.
7
 
</li><li>One that provides a high level interface hiding platform specific 
8
 
details.
9
 
E.g. process running uses same API on Unix and Windows, although
10
 
the implementation is very different.
11
 
</li></ul><p>Restated in a more general way:</p><ul><li>Provide all low level functionality for your specific domain,
12
 
without limiting the policies and decisions the user can make.</li><li>Provide a high level abstraction on top of the low level
13
 
implementation (or implementations) which implements the
14
 
common use cases and functionality that is used in most cases.</li></ul><h2>Learning Curves<a name="auto1"></a></h2><p>Require the minimal amount of work and learning on part of the
15
 
user to get started. If this means they have less functionality,
16
 
that's OK, when they need it they can learn a bit more. This
17
 
will also lead to a cleaner, easier to test design.</p><p>For example - mktap together with twistd is a great way to
18
 
deploy applications. But to get started you don't need to know
19
 
or care about either. Later on you can start using twistd,
20
 
and if you choose mktap as well. Using them is optional.</p></div><p><a href="../howto/index.html">Index</a></p><span class="version">Version: 2.4.0</span></body></html>
 
 
b'\\ No newline at end of file'