Buenas practicas de programacion

  • 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
  • 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
  • Definicion de clases
    /** @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 :
    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
    • 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

Mastodon E-Mail