Acabo de tener este problema hace un par de minutos con un programador, estoy construyendo un framework en js para una app, y hay otros dos compañeros que hacen el backend, y hacen algunas paginas usando mi framework aqui el codigo del problema:

Código :

ProductCartHeader.addButton(new SMART_DESK.Modules.Button('AddTo Cart', "if(SMART_DESK.exec(SMART_DESK.SAVE_PAGE)) SMART_DESK.exec(SMART_DESK.LOAD_PAGE, {page:SMART_DESK.Pages.Cart});"));


En este momento solo me interesa la parte del if statement:

Código :

if(SMART_DESK.exec(SMART_DESK.SAVE_PAGE)) SMART_DESK.exec(SMART_DESK.LOAD_PAGE, {page:SMART_DESK.Pages.Cart});


Aunque lo anterior funciona y siendo estrictos no esta mal, el usar if statements sin usar { } puede ser problematico, debido a lo siguiente, si necesitas mas de una instruccion de todos modos necesitara { }, y si estas debugeando un codigo asi aunque sea tuyo se siente como un campo minado el cual debes tratar con pinzas para que al cambiar algo no bote un error por otro lado. He visto muchos bugs cuya fuente de error son la falta de { }, en whiles, for, e if, son un par de caracteres pero que le dan firmeza a la estructura haciendo claramente visible que parte del codigo corre si la condicion se cumple, sin necesitar practicamente ni enfocar la mirada.

Ya indentado el codigo queda aun mas claro y legible (en el ejemplo anterior no aplica la indentación debido a que ese codigo se va agregar en mousedown a un boton que sera creado, cosas del framework jaja)

Código :

if(SMART_DESK.exec(SMART_DESK.SAVE_PAGE))
{
  SMART_DESK.exec(SMART_DESK.LOAD_PAGE, {page:SMART_DESK.Pages.Cart});
}


Asi que el tip del dia es siempre usen corchetes, e indenten bien su codigo, creeanme les ahorrara horas de debugeo, o en hacer cambios a su propio codigo en el futuro, y quien no quiere acabar más rapido su trabajo?

pd: Este post si fue casi terapia del coraje que le traia al programador que cometio ese error, y que cuando le comente que usara {}, comodamente dijo haber como se hace eso? enseñame. :shock: