The PEAK Developers' Center   Diff for "FrontPage" UserPreferences
 
HelpContents Search Diffs Info Edit Subscribe XML Print View
Differences between version dated 2003-12-07 09:14:46 and 2010-03-13 14:18:53 (spanning 44 versions)
Deletions are marked like this.
Additions are marked like this.

#pragma section-numbers off
 
= The PEAK Developers' Center =
NOTE: Due to rampant spammer edits, this wiki is no longer open to public editing. Email me your user name and login ID if you want to get access. (If your name isn't shown in the upper right corner of this page, you can click on "UserPreferences" to sign up (with a valid e-mail address) and log in. However, to actually edit anything, I'll need to grant permission to your login first.)
 
 Note: when beginning to explore PEAK, the best order in which to explore the modules is: binding, config, naming.
 Read the interface files for those modules in that order.
 
 peak.model::
= Introduction to PEAK =
 
  The `peak.model` subsystem provides a framework for developing rich "domain models", the set of classes which represent the various entities in the problem domain of a given application. In PatternsOfEnterpriseApplicationArchitecture Martin Fowler describes the use of domain models as the most powerful of three core architectural design patterns. The pattern is also the most complex, but the flexibility and reusability gained are crucial for medium to large size applications.
attachment:peak-at-a-glance.png
 
  CreatingDomainModels, DomainModelReferences
== Getting Started ==
 
 peak.binding::
When beginning to learn PEAK, the best order in which to explore the modules is: ["binding"], ["config"], and ["naming"]. These core modules provide the component-oriented framework upon which most other PEAK modules are built, and they will be used extensively within any application built with PEAK.
 
  The `peak.binding` subsystem provides a framework for developing applications as a hierarchy of interconnected component objects, using the InversionOfControl pattern. A variety of mechanisms are provided for component objects to find (or create) and make use of other component objects. These components may be as simple as a filename or other user-provided option, or a complex object such as a database connection. Through binding, any resource needed in more than one part of an application can be made available and "bound" by the component objects that need it.
The next layer to explore should probably be the runtime modules: ["running"], ["commands"], and ["logs"]. Combined with the previous core modules, the runtime modules provide most of the machinery needed for building PEAK applications.
 
  BindingComponents ComputeOnce ProvidingComponents ComponentLookup
The ["storage"] module provides numerous storage management features, including high level relational database connectivity, a general transaction framework with ACID assurance and two-phase commit, and a DataManager framework for high level object persistence to multiple storage media.
 
 peak.config:: ConfigSystem
The ["model"] module provides a framework for implementing the DomainModel pattern, which is based on high level "business objects" isolated from storage concerns.
 
 peak.naming:: NamingSystem
The ["events"] module provides an "event-driven" programming framework that supports ultralight "microthreads" implemented via generators. It can stand alone or can be used atop Twisted for a more intuitive approach to asynchronous programming.
 
 peak.running:: RuntimeEnvironment
Further modules to explore include the ["util"], ["metamodels"], and ["security"] modules. The ["web"], ["net"], and ["query"] modules are under development.
 
 peak.storage:: StorageSystem, DatabaseReferences
Additional notes in GettingStartedWithPeak.
 
MiscNotes
== Tutorials ==
 
["Glossary"]
The IntroToPeak tutorial is currently the best way to get started with PEAK. It demonstrates the use of many of PEAK's features by building a small application step-by-step.
 
= Latest Project Docs from CVS =
[http://cvs.eby-sarna.com/*checkout*/PEAK/CHANGES.txt?rev=HEAD CHANGES.txt]
 
[http://cvs.eby-sarna.com/*checkout*/PEAK/README.txt?rev=HEAD README.txt]
 
[http://cvs.eby-sarna.com/*checkout*/PEAK/TODO.txt?rev=HEAD TODO.txt]
 
= User Contributions =
 
PeakDatabaseApplications
 
AddingPsycopgSupport
 
DistributePeakApplications
 
CookBook
Other tutorials include:
 * PeakDatabaseApplications
 * ComposingHierarchies
 * TwistedPeak example
 * Using ZopePageTemplates with peak.web
 * PeakFromBasics - a new tutorial (currently barely started!) which will develop an application from scratch
 * PeakWebHowTo - introduction to {{{peak.web}}} functionality
 
  * TwistedPeak Example
== Concepts ==
 
  * Using ZopePageTemplates with peak.web
 * WritingInterfaces
 * WritingComponents
 * WritingAdaptors
 
  * ComposingHierarchies using the PEAK framework
= Latest Project Docs from CVS =
 
PeakForTheImpatient (lranen)
  * [http://cvs.eby-sarna.com/*checkout*/PEAK/README.txt?rev=HEAD README.txt]
  * [http://cvs.eby-sarna.com/*checkout*/PEAK/FEATURES.txt?rev=HEAD FEATURES.txt]
  * [http://cvs.eby-sarna.com/*checkout*/PEAK/STATUS.txt?rev=HEAD STATUS.txt]
  * [http://cvs.eby-sarna.com/*checkout*/PEAK/CHANGES.txt?rev=HEAD CHANGES.txt]
  * [http://cvs.eby-sarna.com/*checkout*/PEAK/TODO.txt?rev=HEAD TODO.txt]
 
HelloWorld
= Miscellaneous =
 
MailingListHighlights
(To be categorized: AddingPsycopgSupport, DistributePeakApplications, MiscNotes, ["Glossary"], CookBook, MailingListHighlights, IrcHighlights)
 
IrcHighlights
= Using the Wiki =
 
----
You can edit any page by pressing the link at the bottom of the page. Capitalized words joined together form a WikiName, which hyperlinks to another page. The highlighted title searches for all pages that link to the current page. Pages which do not yet exist are linked with a question mark: just follow the link and you can add a definition.
 
To learn more about what a WikiWikiWeb is, read about MoinMoin:WhyWikiWorks and the MoinMoin:WikiNature. Also, consult the MoinMoin:WikiWikiWebFaq.
 
----
 
Interesting starting points:
  * RecentChanges: see where people are currently working
  * HelpForBeginners: to get you going
  * WikiSandBox: feel free to change this page and experiment with editing
  * FindPage: search or browse the database in various ways
 
{{{

PythonPowered
ShowText of this page
EditText of this page
FindPage by browsing, title search , text search or an index
Or try one of these actions: AttachFile, DeletePage, LikePages, LocalSiteMap, SpellCheck