User Tools

Site Tools


devel:hacking

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
devel:hacking [2012/09/18 08:25]
bredal [Python boilerplate headers]
devel:hacking [2012/11/14 13:27]
norangshol [Javascript] fixed a typo: browser -> browsers
Line 125: Line 125:
 </​code>​ </​code>​
  
-===== Headline ​=====+===== Javascript ​=====
  
 +When writing javascript code try to focus on modules not pages. If the code is html-related,​ it should take selectors or objects as input and concern itself solely about those. This makes for much easier testing and reuse. And of course - write the tests first. ​
 +
 +When the module is done you write a controller for the page that plugs the needed plugins to the page elements. This should fail gracefully if the needed elements are not present.
 +
 +NAVs javascript uses [[http://​requirejs.org/​|require.js]] - use this to create modules and specify dependencies. ​
 +
 +Pro tip is to create ''​require_config.dev.js''​ in ''​media/​js/''​ and add the following configuration to requirejs: ​
 +<​code>​require.urlArgs = "​bust="​ +  (new Date()).getTime();</​code>​ This makes sure your not using cached resources in your browser when developing, which browsers loves to do! See [[http://​requirejs.org/​docs/​api.html#​config-urlArgs|config-urlArgs]] in requirejs documentation for «details». The ''​require_config.dev.js''​ is added in global HG ignore.
 ====== Database ====== ====== Database ======
 NAV uses PostgreSQL as its database backend. ​ Namespaces (schemas) are NAV uses PostgreSQL as its database backend. ​ Namespaces (schemas) are
devel/hacking.txt · Last modified: 2014/11/05 10:57 by morten