JavaScript, (X)HTML, CSS
The Scalable JavaScript Application framework is a client-side library used to create modular Web applications. It is based on the Scalable JavaScript Application Architecture by Nicholas C. Zakas.
The design of the framework is described in Design Patterns for Scalable JavaScript Application.
After installing the required software (see the requirements section below), run Apache Ant in the build folder to generate the API documentation and the combined/minified script for deployment.
The HTML documentation of the Application Programming Interface is generated in the folder build/out/doc. The script generated for deployment is located at build/out/js/lb-min.js.
For debugging purpose, you may use another version of the script which contains the whole code in a single file including long identifiers, indentation and comments: build/out/js/lb-full.js (5 times bigger).
After understanding the underlying principles [1] and reading the design document [2], you should start digging the generated HTML API [4], starting with the Sandbox and the Core Application.
For the purpose of Semantic Versioning [2], the public API of this library comprises all the modules and methods in the lb.core namespace. The details of the modules in lb.base, a layer for cross-browser compatibility, are implementation-specific and may vary from version to version.
The framework has been presented at ParisJS #6, on April 27th, 2011. You can find the slides of the presentation on GitHub [5] or watch the videos of the presentation [6][7] (in French).
The following software is required for the build process which generates the API documentation, checks the syntax of source files and produces a combined (debug) and minified version of the library for deployment. The versions that I use in my development environment is indicated in parentheses.
Eric Bréchemier (c) 2011-2013, Some Rights Reserved.
Legal-Box SAS (c) 2010-2011, All Rights Reserved.
BSD License
http://creativecommons.org/licenses/BSD/
Closure Library by Google
Licensed under the
Apache License, Version 2.0
Parts of the library, in src/closure and test/closure,
with modifications by Legal-Box under the
BSD License.
bezen.org JavaScript library CC-BY Eric Bréchemier
Licensed under a Creative Commons Attribution License
in build/build.xml, test/bezen.org, test/style and some unit tests in
test
Natural Docs
by Greg Valure
Licensed under the
GNU General Public License
in build/lib/naturaldocs
JSLint by Douglas Crockford
Licensed under a modified
MIT License
adding "The Software shall be used for Good, not Evil."
in build/lib/jslint
jslint4java
by Dominic Mitchell
Licensed under a
New BSD License
in build/lib/jslint4java
Includes:
JCommander
by Cédric Beust
Licensed under the
Apache License, Version 2.0
Rhino
by Mozilla
Licensed under
Mozilla Public License
JSLint
by Douglas Crockford
Licensed under a modified
MIT License
adding "The Software shall be used for Good, not Evil."
RequireJS
by James Burke
Licensed under a
New BSD License or MIT License
in build/lib/requirejs
Includes:
Rhino
by Mozilla
Licensed under
Mozilla Public License
Yahoo! YUI Compressor by Julien Lecompte
Licensed under a
BSD License
in build/lib/yuicompressor
Includes:
Rhino
by Mozilla
Licensed under
Mozilla Public License
JArgs
by Steve Purcell, maintainer Ewan Mellor,
Licensed under a
BSD License
You can download this project in either zip or tar formats.
You can also clone the project with Git by running:
$ git clone git://github.com/eric-brechemier/lb_js_scalableApp
a = has(a)? a: b
with
a = or(a,b)
Scalable JavaScript Application Architecture, by Nicholas Zakas
http://www.slideshare.net/nzakas/scalable-javascript-application-architecture
Design Patterns for Scalable JavaScript Application
doc/javascript-application-design-patterns.pdf
Semantic Versioning
http://semver.org
HTML API of The Scalable JavaScript Application framework
http://eric-brechemier.github.com/lb_js_scalableApp/build/out/doc/
Introduction to
The Scalable JavaScript Application Framework (slides)
https://github.com/eric-brechemier/introduction_to_lb_js_scalableApp
[FR] Video Part 1 - Presentation at ParisJS #6
http://vimeo.com/26719486
[FR] Video Part 2 - Q&A after the presentation at ParisJS #6
http://vimeo.com/26996020