Bienvenidos sean a este post, hoy veremos un par de consejos sobre los plug-in.
Antes de hablar sobre como publicar y distribuir un plug-in para poder compartirlo y este pueda ser utilizando por otras personas, vamos a ver y/o repasar algunas recomendaciones para evitar conflictos con otros plug-in.
Proteger al alias del selector ($)
Esto debemos hacerlo ante potenciales interferencias de otras librerias y para ello podemos usar en su lugar a jQuery o pasando a $ a una expresion de funcion invocada inmediatamente (IIFE por sus siglas en ingles) para que pueda usarse como una variable local, de esto hablamos en este post.
Extendiendo el objeto jQuery
Ya sea si lo extendemos con $.miPlugin o a traves del prototipo de jQuery $.fn.miPlugin no agreguemos mas de una propiedad al namespace $ y tanto los metodos como las propiedades publicas adicionales deberian ser agregados al namespace, por ejemplo:
$.miPlugin.metodoPublico()
$.fn.miPlugin.propiedadPublica
Opciones predeterminadas
Siempre debes proveer unas opciones predeterminadas para el plug-in, por ejemplo:
$.fn.miPlugin.predeterminadas = {size: 'large'};
Permitir sobreescribir valores predeterminados
Con proveerlas no alcanza sino tambien debemos dar la posibilidad de poder sobreescribirlas o anularlas y que el usuario pueda ingresar sus valores al momento de llamar al plug-in, por ejemplo:
$.fn.miPlugin.predeterminadas.size = 'large';
O al momento de hacer el llamado:
$('div').miPlugin({size: 'small'});
El retorno del this
Cuando estemos extendiendo alguna libreria de jQuery mediante el prototipo ($.fn.miPlugin) demos la devolucion del this lo cual permitira al usuario encadenar otros metodos a este, por ejemplo:
$('div').miPlugin().find('p').addClass('foo');
Nota: Sobre esto hablamos en este post.
Forzar iteracion implicita
Forzar la iteracion implicita por medio de this.each nos trae un monton de beneficios de los cuales hemos debatido en este post.
Funciones callback
Implementen funciones callback cuando sea apropiado para permitir modificaciones mas flexibles de la conduucta del plug-in sin necesidad de cambiar el codigo.
La fabrica de jQuery UI
Esta es necesaria si necesitamos trabajar con elementos de la interfaz del usuario o necesitamos llevar un control de los estados de estos y tambien nos facilita la creacion de estos como vimos en este post.
Test de unidad automatizado
Una buena idea es mantener un conjunto de test de unidad automatizados para el plug-in en un framework de test para asegurarnos de que todo funciona perfectamente, un ejemplo puede ser QUnit, sobre este tema hablaremos mas adelante.
Github
En realidad es un consejo para llevar un mejor control de las revisiones de versiones del codigo, porque no solamente podras compartilo publicammente sino que pueden recibir colaboraciones de otras personas.
Licencias
Si van a compartir publicamennte lo que hagan siempre es recomendable que pueden hacer y no con el producto, un buen consejo es el uso de la licencia MIT la cual utiliza tambien jQuery.
Distribuyendo el plug-in
Despues de los consejos anteriores si pudiste aplicarlos a todos o en su mayoria, esto producira que tengas un plug-in totalmente limpio, mantenible y con todas las convenciones de tiempo de testeo seguidas, y si este es reutilizable y util para las tareas quizas sea hora de compartirlo a la comunidad de jQuery.
Algo que no mencionamos anteriormente pero que siempre es fundamental es realizar una buena documentacion de la operacion del mismo antes de su distribucion, existen varios formatos para este motivo pero el mas estandar es JSDoc:
Tambien disponemos de generadores de documentacion automatizados tales como docco o dox pero en ambos casos debemos implementar antes node.js lo cual puede complicar esto un poco mas, pero sin importar el tipo de documentacion debemos contemplar cada parametro y opcion disponible de nuestro plug-in, para hostearlo podemos hacerlo donde queramos, recuerden que para las librerias hemos ido a paginas propias del autor, pero como mencionamos en los consejos otra gran alternativa es hacerlo enn Github ya que es gratuita y puedes recibir colaboracion de otras personas para su mantenimiento, y para publicitarlo debemos registrarlo en el registro oficial de plug-in de jQuery:
Las instrucciones para proveer informacion sobre el plug-in y publicacion en el registro pueden ser encontradas en:
https://plugins.jquery.com/docs/publish/
No se preocupen si les resulta desalentador al comienzo, dado que deberan agregar un enlace de esta al repositorio Github de jQuery, crear un archivo de manifiesto de tipo JSON y enviar un version etiquetada de plug-in al respositorio remoto, pero no se preocupen las instrucciones son detalladas, para mayor informacion pueden contactarse mediante:
- Canal IRC: #jquery-content en https://freenode.net/view/Main_Page
- e-mail: plugins@jquery.com
En resumen, hoy hemos visto como distribuir nuestros plug-in, pero antes una serie de consejos para presentar un plug-in saludable y libre de inconvenientes, despues vimos lo que debemos crear junto a este para poder subirlo al registro de plug-in, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
