- 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
- PascalCase
- Variables:
- SCOPE y sus amigos
- Elegir una nomenclatura
- MVC
- Plantillas
- Conoce primero las bases (Javascript -> jQuery -> jQuery UI)
Guia de estilo
- Variables : nombrescomoeste
- variablesprivadas : _nombrescomoeste
- Funciones : nombresComoEste
- Clases : NombresComoEste
- /** @constructor */ function SomeConstructor() { this.someProperty = 1; } Foo.prototype.someMethod = function someMethod() { ... };
- Namespaces : nombres.como.este
- Documentacion : formato jsdoc
- Lineas de no mas de 100 caracteres;
- jquery : variables con $ delante
- 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
- TODO : para cosas que hay que hacer como mejoras, etc.
- WIP : Trabajo interrumpido por incidencias, etc. Supone un punto de entrada para seguir cuando se retorna
Bibliografia
https://github.com/rwaldron/idiomatic.js/tree/master/translations/es_ES
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