Jetty has moved!
Jetty is a project at the Eclipse Foundation.
Homepage:http://www.eclipse.org/jetty
Downloads: http://download.eclipse.org/jetty/
Documentation:http://www.eclipse.org/jetty/documentation/current/
About:http://www.eclipse.org/jetty/about.php
Jetty Powered:http://www.eclipse.org/jetty/powered/
Contact the core Jetty developers at www.webtide.com
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
Skip to end of metadata
Go to start of metadata

Java Code Formatting

Jetty uses the code formatting as specified in the following file:

Java Code Templates

Jetty specifies the following code templates for use by the project developers:

Java Code Conventions

The following is an example of the Java formatting and naming styles to be applied to Jetty:

Javascript coding standards

Javascript is used as a first class programming language, not just as a value-ad to html mark up. Thus it is very important that we establish good coding practises. The following are some key points to how we wish to use javascript in the jetty project:

Formatting

The formatting should be as for javascript, with the exception that tabs may be used for indents. If tabs are used for
indents, then spaces should not be used. ie all spaces or all tabs - no mixed.

Use objects rather than functions.

traditional javascript makes extensive use of functions. Where ever possible these functions should be grouped together as an Object. Thus instead of writing:

we should write:

Private fields and functions should have names starting with '_'.

Note that this is a very light weight form of object and we are not using any concept of class. It is equivalent to a javaclass of static members and simply groups related functions together for name space clarity.

Javascript also supports class via the prototype mechanism. This should also be used when appropriate but is not covered by the example above.

JS files as packages

Just as Javascript functions should be grouped into objects, javascript objects should be grouped into files, which can be considered the equivalent of java packages.

Use semicolon to end statements

I know it is optional, but it makes it easier for old C-hacks to parse as well as making it easier for the interpretors to spot errors if a typo is made.

Unique Id's, multiple classes

The ID of a DOM element must be unique, while multiple DOM elements can have the same class. A frequent mistake is to use a non unique id, for example on a cell in a table (if the table has multiple rows then a cell id is not unique). A class should be used if there are visual ramifications, otherwise normal attributes or external associative arrays should be used.

Understand this

The this automatic field in js works differently to java. If a member function of an object is called as a callback, then the this does not refer to the object but the calling scope. For example in the following code:

the _handle method is called when the mybutton is clicked, but the this will not refer to the myhandler object, but rather the DOM element of the button! The object var myhandler can be used instead of this in these circumstances.

Use 'single' instead of "double" quotes

Strings in js and html can be quoted with single or double quotes. We should use single quotes in the javascript and double quotes in markup. It is then simpler for js to quote double quotes when generating markup.

The exception to this is in JSON, which should always use double quotes as that is what is defined by the standard.

Use var keyword for variables inside for loop

I know this is supposed to be optional but IE does not seem to handle well for loops with variables that are not declared with var. Thus instead of writing:

we should write:

Use behaviour

Many libraries have a concept of behaviours, not least the behaviour library: behaviour.
This is a good paradigm for separating concerns and avoiding excessive use of javascript within markup. Behaviours should
be used where possible/suitable.

  • No labels
Contact the core Jetty developers at www.webtide.com
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery