Labs/Jetpack/JEP/31: Difference between revisions

Jump to navigation Jump to search
filled out intro, philosophy sections
(Origination)
(filled out intro, philosophy sections)
Line 2: Line 2:


= Introduction =
= Introduction =
This document describes a simple build and packaging system that allows [[Labs/Jetpack/JEP/28|Cuddlefish]]-based SecurableModules to be developed, tested, and reused in a variety of contexts.
For the time being, this system and its related command-line tool will be referred to as '''cfx'''.


= Philosophy =
= Philosophy =


== Test-Driven Development ==
cfx is largely influenced by paradigms present in the [http://www.python.org Python] and [http://narwhaljs.org Narwhal] open-source communities.  Among these are:
 
* '''Test-Driven Development.''' cfx attempts to make writing tests as easy as possible, taking its inspiration from testing tools like [http://codespeak.net/py/dist/test/ py.test] and [http://code.google.com/p/python-nose/ nose].  It also aims to make test execution as fast as possible, so developers aren't wasting precious time waiting for their suites to complete.


== Modularization and Reusability ==
* '''Code Reuse.''' The packaging systems of Python and Narwhal make it easy to share and reuse other people's code. The Mozilla platform lacks such a system, which has historically made this difficult: as a result, the most that we see shared in the community are code snippets or single self-contained JS modules.


== Developer Ergonomics ==
* '''Developer Ergonomics.''' cfx uses Cuddlefish's introspection capabilities to provide full stack tracebacks when errors occur; it also provides facilities for making it easy to spot memory leaks, and generally tries to make writing production-quality code as hassle-free as possible.


= Usage =
= Usage =
874

edits

Navigation menu