- JSON es nuestro amigo
- Keep It Simple, Stupid! (KISS) , Do One Thing (DOT), and do it well, Don't Repeat Yourself (DRY)
- Variables:
- todo en minusculas
- Nombres sencillos, entendibles, descriptivos,...
- Funciones :
- camelCase
- cortas, descriptivas
- argumentos de las funciones
- ninguna funcion sin su nombre
- Sin codigo oculto
- notacion ...
- closures
- Clases
- SCOPE y sus amigos
- Elegir una nomenclatura
- MVC
- Conoce primero las bases (Javascript -> jQuery -> jQuery UI)
Guia de estilo
- Variables : nombrescomoeste
- variablesprivadas : _nombrescomoeste
- Funciones : nombresComoEste
- Clases : NombresComoEste
-
Definicion de clases
/** @constructor */
function SomeConstructor() {
this.someProperty = 1;
}
Foo.prototype.someMethod = function() {
... };
- Namespaces : nombres.como.este
- Documentacion : formato jsdoc
- Lineas de no mas de 100 caracteres;
- jQuery :
Uso de jQuery
/** Bad **/
$("#miid").css('background','black'');
$("#miid").html("hello world")
/** Good **/
var miid = $("#miid");
miid.css('background','black');
miid.html('hello world');
- Nombres de ficheros : nombrescomoeste.js
- Uso de comillas simples para variables;
- Construccion de cadenas de forma dinamica
/** Bad **/
var mistring = "This value is " + myvalue ;
/** Good **/
var mistring = `This value is ${myvalue}`;
- No usar palabras reservadas :
- arguments
- class
- private
- protected
- ...
- Definir valores por defecto en funciones
function mifuncion (options){
var defaultvalues = {name:"Raul",surname:"Rodrigo"};
options = $.extend({},defaultvalues,options);
}
- Funciones sin demasiados argumentos
/** Bad **/
function mifuncion (options,arg1,arg2,arg3,arg4,arg5){
.....
}
/** Good **/
function mifuncion (options , args){
/* args = {arg1: .. , arg2 : ... arg3 : ... arg4 : ... arg5 : ...}
}
- Ninguna variable sin var delante
- Comentarios :
- FIXME : para cosas a arreglar pero que estan funcionando
- TOOD : para cosas que hay que hacer como mejoras, etc.
Bibliografia
Libros gratuitos de o'reill en linea
Javascript Cookbook
Programming JavaScript Applications
Patrones de diseño en Javascript
Codigo limpio
Guia de estilo de airbnb