Foro

Lineamientos de programación

0
Antes de iniciar a tirar código es necesario definir algunos lineamientos para que todos escribamos código semejante, llevar algunos estándares de programación siempre es bueno, en este post voy a ir definiendo algunos puntos a considerar, si cren que falta algún otro por favor me lo comentan. * NO USAR ID's para los componentes, quiero poner este como el primer punto porque al usar ID's en una aplicación grande los errores comienzan a salir y es complicado debuguearlos, así que evitemos el uso de ID's en los componentes. * Definir namespace Estaremos escribiendo clases y trataremos de no agregar variables al global scope, ya definiré más adelante los paquetes a utilizar, pero si debemos considerar NUNCA crear variables en el global scope. * Documentar código importantisimo documentar el código para luego generar automáticamente una API similar a la que tiene ExtJS, pero para eso tenemos que ir documentando el código, unicamente documentaremos los métodos públicos o que el usuario (otros programadores) puedan usar. A continuación dejo un ejemplo de como documentar un clase: /** * @class Bleext.desktop.LoginWindow * @extends Ext.Window * @autor Crysfel Villa * @date Wed Mar 9 11:03:18 CST 2011 * * This class display the login Window, you need to bla bla bla... * **/ Ext.ns("Bleext.desktop"); Ext.define('Bleext.desktop.LoginWindow', { extend: 'Ext.Window', title: 'Log in', /** * This is the property description * @property modal * @type Boolean */ modal : true, mixins : { connection : "Bleext.connectivity.Ajax", validations : "Bleext.form.Validation" }, config : { /** * @cfg {Number} attempts The number of attempts before... */ attempts : 0, /** * @cfg {Boolean} configuration This is the description */ configuration : false }, initComponent: function() { Ext.apply(this, { items: [ //as above ] }); this.addEvents({ /** * @event eventName * This is the event description * @param {Number} paramName This is the parameter description */ 'eventName' : true }); /** * This is the property description * @property myProperty * @type Number */ this.myProperty = 29; Bleext.desktop.LoginWindow.superclass.initComponent.apply(this, arguments); }, /** * This is the main description of the function, here you can bla bla... * @param {String} paramName This is the parameter description * @return {String} This is the return value description */ functionName : function(paramName) { return "This is a test"; } }); De esta manera podemos generar la documentación automáticamente, así que iremos documentando todas las configuraciones, métodos, propiedades, eventos que puedan ser utilizados por otros desarrolladores en un futuro. PS: voy a ir actualizando el post en cuanto tenga otro rato libre, también se aceptan sugerencias o bien críticas respecto a los lineamientos.

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.