<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-33066466.post6966258992985170511..comments</id><updated>2009-02-17T15:16:24.315-02:00</updated><title type='text'>Comments on Blog de Marcos Crispino: Mejorando la legibilidad del código</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.marcoscrispino.com/feeds/6966258992985170511/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html'/><author><name>Marcos Crispino</name><uri>http://www.blogger.com/profile/07565702485820119664</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33066466.post-1912295740685557043</id><published>2009-02-17T15:16:24.315-02:00</published><updated>2009-02-17T15:16:24.315-02:00</updated><title type='text'>Eliminas los comentarios que no te gustan !!! Sos ...</title><content type='html'>Eliminas los comentarios que no te gustan !!! &lt;BR/&gt;Sos un trucho cripsino!!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1912295740685557043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1912295740685557043'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234890984315#c1912295740685557043' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-3688939360120088672</id><published>2009-02-13T15:14:03.591-02:00</published><updated>2009-02-13T15:14:03.591-02:00</updated><title type='text'>Con mi equipo discutimos bastante... Al final pusi...</title><content type='html'>Con mi equipo discutimos bastante... Al final pusimos como maxima prioridad la legibilidad (le gano a la postura de escribir poco ¿seria &amp;#39;escribilidad&amp;#39;?).&lt;BR/&gt;&lt;BR/&gt;Como es FOR EACH es una operacion extremadamente costosa en terminos computacionales y compleja en funcionalidad decidimos hacer que sea evidente cada parte que lo compone y que era muy imporante seguir patrones visuales claros. &lt;BR/&gt;Un ejemplo.&lt;BR/&gt;&lt;BR/&gt;Sub &amp;#39;Algo Importante&amp;#39;&lt;BR/&gt;__For each&lt;BR/&gt;____Order by&lt;BR/&gt;______atributo&lt;BR/&gt;____Where &lt;BR/&gt;______atributo1_____=_&amp;#39;xxx&amp;#39; and&lt;BR/&gt;______atributo2_____=_&amp;#39;yyy&amp;#39;&lt;BR/&gt;____Defined by&lt;BR/&gt;______atributo3&lt;BR/&gt;__//Copiar datos&lt;BR/&gt;____&amp;amp;var_corta______=_atributo1&lt;BR/&gt;____&amp;amp;var_larga______=_atributo2&lt;BR/&gt;&lt;BR/&gt;____&amp;amp;var_larguisima_=_atributo3  &lt;BR/&gt;____&amp;amp;var_larga______=_atributo4  &lt;BR/&gt;__EndFor&lt;BR/&gt;EndSub&lt;BR/&gt;&lt;BR/&gt;Sin duda mas incomodo para escribir, es menos compacto pero es mucho mas facil indentificar los elementos principales.&lt;BR/&gt;&lt;BR/&gt;En particular no usamos multiples WHERE, en su lugar usamos AND ya que es mas generico (sobre todo cuando tenemos OR y NOT) ademas las condiciones quedan expresadas igual que las &amp;quot;Conditions&amp;quot;&lt;BR/&gt;&lt;BR/&gt;Siempre tratamos de colocar los atributos en la parte izquierda de la comparacion y alineamos los signos igual. Esto es para que identifiquemos muy rapidamente los atributros involucrados.&lt;BR/&gt;&lt;BR/&gt;Incluso dejamos lineas en blanco para agrupar logicamente los atributos que estamos accediendo&lt;BR/&gt;&lt;BR/&gt;El cuerpo en si del FOR EACH lo prefijamos con un comentario descriptivo.&lt;BR/&gt;&lt;BR/&gt;Por ultimo tratamos de poner siempre los FOR EACH en SUB con un nombre descriptivo.&lt;BR/&gt;&lt;BR/&gt;En definitiva programar para facilitar la lectura nos lleva necesariamente a dificultar la escritura... Pero una vez que te acostubras a los patrones visuales mejora tremendamente la interpretacion de la intencion del programador y reduce los errores a un minimo.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/3688939360120088672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/3688939360120088672'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234545243591#c3688939360120088672' title=''/><author><name>Alejandro Di Battista</name><uri>http://www.blogger.com/profile/11849572217827952502</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07282088724807903108'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-7867494721771597283</id><published>2009-02-13T08:28:25.323-02:00</published><updated>2009-02-13T08:28:25.323-02:00</updated><title type='text'>Pah, Roberto, que tema ese. Se han peleado guerras...</title><content type='html'>Pah, Roberto, que tema ese. Se han peleado guerras por gente que no se pone de acuerdo como indentar el for each...&lt;BR/&gt;&lt;BR/&gt;Dos cosas:&lt;BR/&gt;1) Mi opción no es la que decís... Mi opción es &lt;BR/&gt;for each&lt;BR/&gt;_____where att1 = &amp;amp;a&lt;BR/&gt;_____where att2 = &amp;amp;b&lt;BR/&gt;_____&lt;BR/&gt;_____&amp;amp;c = att3+att45&lt;BR/&gt;_____&amp;amp;d = att4*att5&lt;BR/&gt;endfor&lt;BR/&gt;&lt;BR/&gt;Nótese la línea en blanco entre el último where y la primer línea de código. Parece poco, pero hace la diferencia, porque separa dos bloques que (creo que en esto estamos de acuerdo) deben quedar separados.&lt;BR/&gt;&lt;BR/&gt;2) El tema con tu opción, es que el for each no está aislado, está dentro de otro bloque de código.&lt;BR/&gt;&lt;BR/&gt;Si el for each queda separado de la línea anterior, entonces todo bien, no me molesta.&lt;BR/&gt;&lt;BR/&gt;Pero cuando está pegado a N líneas del bloque de código anterior, entonces a primera vista, parece que el bloque del for each empieza en la línea &lt;I&gt;&amp;amp;c = att3+att45&lt;/I&gt; en lugar de empezar en el for each como es realmente...&lt;BR/&gt;&lt;BR/&gt;Como conclusión, me parece más importante dejar una línea en blanco separando bloques (cuando vale la pena hacerlo), que preocuparse por como está indentando el for each.&lt;BR/&gt;&lt;BR/&gt;Ah, y solo para que quede registro, voy a seguir indentando los where un tab más que el for each :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/7867494721771597283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/7867494721771597283'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234520905323#c7867494721771597283' title=''/><author><name>Marcos Crispino</name><uri>http://www.blogger.com/profile/07565702485820119664</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17491296579384046174'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-1745127875301809596</id><published>2009-02-12T17:29:49.319-02:00</published><updated>2009-02-12T17:29:49.319-02:00</updated><title type='text'>Esta te la acepto y estoy totalmente de acuerdo. P...</title><content type='html'>Esta te la acepto y estoy totalmente de acuerdo. Pero la de los &amp;#39;where&amp;#39; indentados en los &amp;#39;for each&amp;#39; no me la banco, jeje.&lt;BR/&gt;&lt;BR/&gt;Mi opción:&lt;BR/&gt;&lt;BR/&gt;for each&lt;BR/&gt;where att1 = &amp;amp;a&lt;BR/&gt;where att2 = &amp;amp;b&lt;BR/&gt;_____&amp;amp;c = att3+att45&lt;BR/&gt;_____&amp;amp;d = att4*att5&lt;BR/&gt;endfor&lt;BR/&gt;&lt;BR/&gt;Tú opción:&lt;BR/&gt;&lt;BR/&gt;for each&lt;BR/&gt;_____where att1 = &amp;amp;a&lt;BR/&gt;_____where att2 = &amp;amp;b&lt;BR/&gt;_____&amp;amp;c = att3+att45&lt;BR/&gt;_____&amp;amp;d = att4*att5&lt;BR/&gt;endfor&lt;BR/&gt;&lt;BR/&gt;Obviamente es muchisimo mas legible la mía no??</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1745127875301809596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1745127875301809596'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234466989319#c1745127875301809596' title=''/><author><name>Roberto Clavell</name><uri>http://www.blogger.com/profile/07821653878117935667</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13007468680403135002'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-797691563997950599</id><published>2009-02-11T14:49:49.724-02:00</published><updated>2009-02-11T14:49:49.724-02:00</updated><title type='text'>Enrique: Entonces se ve que es algo que agregaron ...</title><content type='html'>Enrique: Entonces se ve que es algo que agregaron post-U4, porque yo estoy con el U4 del Development Environment y el U4 del generador Java (Win), y no funciona...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/797691563997950599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/797691563997950599'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234370989724#c797691563997950599' title=''/><author><name>Marcos Crispino</name><uri>http://www.blogger.com/profile/07565702485820119664</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17491296579384046174'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-2159376001673030558</id><published>2009-02-11T14:40:48.276-02:00</published><updated>2009-02-11T14:40:48.276-02:00</updated><title type='text'>Marcos... hay un deslizamiento de valor en la fras...</title><content type='html'>Marcos... hay un deslizamiento de valor en la frase. &lt;BR/&gt;&lt;BR/&gt;El artículo de Coding Horror es muy bueno... y tu comentario me llevo a releerlo.&lt;BR/&gt;&lt;BR/&gt;Fijate en "Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do..."&lt;BR/&gt;&lt;BR/&gt;En particular me gustaría destacar "attitude" y "imaginig". &lt;BR/&gt;&lt;BR/&gt;La 'codificacion' es, en última instancia, una actividad en la que instruimos una computadora. &lt;BR/&gt;&lt;BR/&gt;Todos lo demás es accesorio... Lo cual no quiere decir que no sea importante. Es extremadamente importante.&lt;BR/&gt;&lt;BR/&gt;En particular podriamos subir un nivel y poner la programación en el contexto mas amplio del desarrollo de software... En lo personal me gusta mucho lo que escribe http://alistair.cockburn.us&lt;BR/&gt;&lt;BR/&gt;En uno de sus articulos dice&lt;BR/&gt;&lt;BR/&gt; “El desarrollo de software es un juego cooperativo, en el cual las personas emplean registros como apoyo para comunicar, rememorar e inspirar tanto a sí mismas como a otros participantes con el propósito de llevar a cabo el siguiente movimiento en el juego. El punto final del juego es un sistema de software en operación; el residuo del juego es un conjunto de registros que ayudarán a los jugadores a participar en el próximo juego. El juego siguiente es la modificación o el reemplazo del sistema, o quizá la creación de un sistema colindante.”&lt;BR/&gt;&lt;BR/&gt;Bonus track... &lt;BR/&gt;http://alistair.cockburn.us/Software+development+as+community+poetry+writing&lt;BR/&gt;&lt;BR/&gt;saludos</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/2159376001673030558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/2159376001673030558'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234370448276#c2159376001673030558' title=''/><author><name>Alejandro Di Battista</name><uri>http://www.blogger.com/profile/11849572217827952502</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07282088724807903108'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-1770946059972929597</id><published>2009-02-11T13:48:46.581-02:00</published><updated>2009-02-11T13:48:46.581-02:00</updated><title type='text'>Marcos: &amp;Result=pSuma(&amp;a,&amp;b) funciona en GeneXus 9...</title><content type='html'>Marcos: &lt;BR/&gt;&lt;BR/&gt;&amp;amp;Result=pSuma(&amp;amp;a,&amp;amp;b) &lt;BR/&gt;&lt;BR/&gt;funciona en GeneXus 9.0. &lt;BR/&gt;&lt;BR/&gt;Si fuera en GeneXus X, hubiera puesto &lt;BR/&gt;&lt;BR/&gt;&amp;amp;Result = Suma(&amp;amp;a, &amp;amp;b) :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1770946059972929597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1770946059972929597'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234367326581#c1770946059972929597' title=''/><author><name>Enrique Almeida</name><uri>http://www.blogger.com/profile/13964187630117314432</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08272403361109737153'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-6689151961458174346</id><published>2009-02-11T10:57:30.290-02:00</published><updated>2009-02-11T10:57:30.290-02:00</updated><title type='text'>De acuerdo con Enrique Almeida: &amp;Result = pSuma(a,...</title><content type='html'>De acuerdo con Enrique Almeida: &lt;BR/&gt;&lt;BR/&gt;&amp;amp;Result = pSuma(a,b)&lt;BR/&gt;&lt;BR/&gt;en Realidad las otras formas son bastante malas en cuanto a legibilidad. No entiendo si quiera por qué existen...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/6689151961458174346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/6689151961458174346'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234357050290#c6689151961458174346' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-3859840154374972721</id><published>2009-02-11T09:43:16.784-02:00</published><updated>2009-02-11T09:43:16.784-02:00</updated><title type='text'>A mi también me gusta usar el udp en todos lados d...</title><content type='html'>A mi también me gusta usar el udp en todos lados donde puedo. Como decís me parece mucho más claro que la intención es asignar una variable.&lt;BR/&gt;&lt;BR/&gt;Por ejemplo es muy común ver líneas de código:&lt;BR/&gt;If Unidad1 = Unidad2&lt;BR/&gt;    &amp;amp;Factor = 1&lt;BR/&gt;Else&lt;BR/&gt;    call(PConvertir, Unidad1, Unidad2, &amp;amp;Factor1)&lt;BR/&gt;EndIf&lt;BR/&gt;&lt;BR/&gt;Acá claramente un udp quedaría mucho mejor.&lt;BR/&gt;&lt;BR/&gt;Además en las reglas de transacciones, Genexus arma mejor el árbol de llamadas al usar udp, porque usando call muchas veces no se da cuenta cual es el objetivo de la llamada (ya que tampoco aprovecha los in: y out:).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/3859840154374972721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/3859840154374972721'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234352596784#c3859840154374972721' title=''/><author><name>Pablo</name><uri>http://www.blogger.com/profile/02991826575825031038</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-9067568299365589410</id><published>2009-02-11T08:44:16.619-02:00</published><updated>2009-02-11T08:44:16.619-02:00</updated><title type='text'>Andrés: Así que vos fuiste el que puso los call en...</title><content type='html'>Andrés: Así que vos fuiste el que puso los call en lugar de los udp... Gracias! ;)&lt;BR/&gt;&lt;BR/&gt;Si estás con GeneXus 9 y el problema es el color, te cuento que en el directorio de instalación de GX hay un archivo Keycolor.ini que tiene la definición de los colores.&lt;BR/&gt;&lt;BR/&gt;Por defecto el udp tiene "UDP=FUN", y el call tiene "Call=RUL". Supongo que si ponés "UDP=RUL", te lo debería pintar de verde...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/9067568299365589410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/9067568299365589410'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234349056619#c9067568299365589410' title=''/><author><name>Marcos Crispino</name><uri>http://www.blogger.com/profile/07565702485820119664</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17491296579384046174'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-7096461257663611388</id><published>2009-02-11T08:40:54.898-02:00</published><updated>2009-02-11T08:40:54.898-02:00</updated><title type='text'>Alejandro: Yo también pensaba que escribía el códi...</title><content type='html'>Alejandro: Yo también pensaba que escribía el código para el generador o compilador, hasta que leí la frase que puse más arriba.&lt;BR/&gt;&lt;BR/&gt;En realidad, no es cierto que tengamos que escribir el código para que lo interprete el compilador. El que se va a tener que enfrentar con el código que escribimos es otro programador. El compilador sabe lo que hace, mientras el código sea sintáctica y semánticamente correcto, él se sabe manejar.&lt;BR/&gt;&lt;BR/&gt;Sin duda no es algo inmediato, pero vale la pena la reflexión.&lt;BR/&gt;&lt;BR/&gt;Con respecto a los otros puntos, lo de la P en minúscula o el guión bajo en los nombres es discutible. Pero sin duda lo que es necesario es tener normas de nomenclatura consistentes y que ayuden a entender el código.&lt;BR/&gt;&lt;BR/&gt;Por ejemplo, nosotros nombramos todos los procedimientos cuyo objetivo es devolver un valor con una F adelante. Entonces si veo un código que dice "call(PF...)", ya se que va a devolver algo, aunque no sea un udp. Además se que no va a estar cambiando nada en la base de datos (siempre que se haya usado bien la norma).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/7096461257663611388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/7096461257663611388'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234348854898#c7096461257663611388' title=''/><author><name>Marcos Crispino</name><uri>http://www.blogger.com/profile/07565702485820119664</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17491296579384046174'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-2917630582629961869</id><published>2009-02-11T08:33:04.665-02:00</published><updated>2009-02-11T08:33:04.665-02:00</updated><title type='text'>Enrique, sauron: Esa forma de invocar al objeto es...</title><content type='html'>Enrique, sauron: Esa forma de invocar al objeto es de GeneXus X, ¿no?. Yo estoy con GX 9 y no la tenía en el radar, pero ahora la probé y no funciona. Al salvar da un warning, al especificar da otro y al compilar da un error...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/2917630582629961869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/2917630582629961869'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234348384665#c2917630582629961869' title=''/><author><name>Marcos Crispino</name><uri>http://www.blogger.com/profile/07565702485820119664</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17491296579384046174'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-1111128786866670916</id><published>2009-02-11T02:40:24.856-02:00</published><updated>2009-02-11T02:40:24.856-02:00</updated><title type='text'>Hay veces que no es lo mismo, las diferencias se m...</title><content type='html'>Hay veces que no es lo mismo, las diferencias se me han dado en el orden de ejecución de las reglas… pero bueno yo sigo en GX9 y por ahí eso ya no es problema en la X… jeje&lt;BR/&gt;&lt;BR/&gt;En cuanto no usar más el call o el udp…  a mí me gusta el colorcito verde del call, como que me ayuda a leer… mucha letra sobre fondo blanco me cuesta un poco más… debe ser una tara mía obviamente.&lt;BR/&gt;&lt;BR/&gt;Para esta función en particular el udp lo usaría porque leo que es una función que recibe dos parámetros para devolver un resultado, no pienso que me va a devolver algo útil en el parámetro &amp;amp;a… así que voy por el uso del udp.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1111128786866670916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/1111128786866670916'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234327224856#c1111128786866670916' title=''/><author><name>Acosta</name><uri>http://www.blogger.com/profile/10127171410644075925</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16004023646908134638'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-5484074250919667543</id><published>2009-02-10T21:02:52.142-02:00</published><updated>2009-02-10T21:02:52.142-02:00</updated><title type='text'>La pregunta es... ¿Para quien se escribe el código...</title><content type='html'>&lt;B&gt;La pregunta es... ¿Para quien se escribe el código? &lt;/B&gt;&lt;BR/&gt;&lt;BR/&gt;La respuesta obvia es para Genexus quien es en realidad el que debe interpretar la intención del programador sin ambigüedad alguna. En este sentido las variantes son irrelevantes. &lt;BR/&gt;&lt;BR/&gt;Pero hay sutilezas... Al existir múltiples formas de escribir el mismo código no es suficiente el criterio de la ambigüedad... Debemos aportar criterios extras... &lt;BR/&gt;&lt;BR/&gt;Coincido con la idea de poner en segundo lugar la facilidad de lectura... Pero este es un criterio subjetivo, podemos hacer un mejor intento. &lt;BR/&gt;&lt;BR/&gt;Creo que facilita la legibilidad &lt;BR/&gt;&lt;BR/&gt;&lt;B&gt;Eliminar ruido&lt;/B&gt;&lt;BR/&gt;Sacar los elementos que no contribuyen a realizar la tarea. Poner CALL o UDP en este contexto es innecesario y deberían ser eliminados. &lt;BR/&gt;&amp;gt;&amp;gt;&amp;amp;Resultado = udp(PSuma,&amp;amp;a,&amp;amp;b) &lt;BR/&gt;&amp;lt;&amp;lt;&amp;amp;Resultado=PSuma (&amp;amp;a,&amp;amp;b)&lt;BR/&gt;&lt;BR/&gt;&lt;B&gt;Facilitar el reconocimiento. &lt;/B&gt;&lt;BR/&gt;Los elementos más importantes deben ser identificados rápidamente... Es este sentido la &amp;#39;p&amp;#39; en minúscula me ayuda a centrarme en el nombre de la función. Como así también los espacios en blanco (en este caso rodeando al &amp;#39;=&amp;#39; y después de &amp;#39;,&amp;#39;. &lt;BR/&gt;&amp;gt;&amp;gt;&amp;amp;Resultado=PSuma (&amp;amp;a,&amp;amp;b) &lt;BR/&gt;&amp;lt;&amp;lt;&amp;amp;Resultado = pSuma (&amp;amp;a, &amp;amp;b)&lt;BR/&gt;&lt;BR/&gt;&lt;B&gt;Significado explícito&lt;/B&gt;&lt;BR/&gt;Al escribir transformamos una intención en instrucciones, al leer el proceso es el inverso.  Continumente estamos ‘semantizando’ el codigo, tratando de entender lo que hace. Poner nombres completos y descriptivos es esencial.&lt;BR/&gt;&amp;gt;&amp;gt;&amp;amp;Resultado = pSuma(&amp;amp;a, &amp;amp;b) &lt;BR/&gt;&amp;lt;&amp;lt;&amp;amp;Final = pCalcularSaldo(&amp;amp;Inicial, &amp;amp;Movimiento)&lt;BR/&gt;&lt;BR/&gt;&lt;B&gt;Regularidad en el uso.&lt;/B&gt;&lt;BR/&gt;Si usamos las mismas formas una y otra vez automatizamos mentalmente los patrones. En ese sentido prefiero las variables siempre en minúsculas, las funciones siempre en mayúsculas, las palabras separadas por guion bajo, etc. &lt;BR/&gt;&amp;gt;&amp;gt;&amp;amp;Final = pCalcularSaldo(&amp;amp;Inicial, &amp;amp;Movimiento)&lt;BR/&gt;&amp;lt;&amp;lt;&amp;amp;final = pCalcular_Saldo(&amp;amp;inicial, &amp;amp;movimiento)&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;Creo que me fanatize un poco... ;)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/5484074250919667543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/5484074250919667543'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234306972142#c5484074250919667543' title=''/><author><name>Alejandro Di Battista</name><uri>http://www.blogger.com/profile/11849572217827952502</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07282088724807903108'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-3369038575052728648</id><published>2009-02-10T16:23:30.746-02:00</published><updated>2009-02-10T16:23:30.746-02:00</updated><title type='text'>&amp;result = PSuma(&amp;a, &amp;b)definitivamente es lo mejor...</title><content type='html'>&amp;amp;result = PSuma(&amp;amp;a, &amp;amp;b)&lt;BR/&gt;&lt;BR/&gt;definitivamente es lo mejor del mundo.&lt;BR/&gt;&lt;BR/&gt;Hace un tiempo que erradicamos el Call o el Udp de nuestro codigo.&lt;BR/&gt;&lt;BR/&gt;:)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/3369038575052728648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/3369038575052728648'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234290210746#c3369038575052728648' title=''/><author><name>sauron</name><uri>http://www.blogger.com/profile/04317503433482114745</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-33066466.post-6907552593167195815</id><published>2009-02-10T16:14:24.521-02:00</published><updated>2009-02-10T16:14:24.521-02:00</updated><title type='text'>La mejor es &amp;Result=pSuma(&amp;a,&amp;b) o &amp;Result = pSuma...</title><content type='html'>La mejor es &lt;BR/&gt;&lt;BR/&gt;&amp;amp;Result=pSuma(&amp;amp;a,&amp;amp;b) o &lt;BR/&gt;&lt;BR/&gt;&amp;amp;Result = pSuma.udp(&amp;amp;a,&amp;amp;b)&lt;BR/&gt;&lt;BR/&gt;Al menos, es la que a mi me queda mas clara..</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/6907552593167195815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33066466/6966258992985170511/comments/default/6907552593167195815'/><link rel='alternate' type='text/html' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html?showComment=1234289664521#c6907552593167195815' title=''/><author><name>Enrique Almeida</name><uri>http://www.blogger.com/profile/13964187630117314432</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08272403361109737153'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.marcoscrispino.com/2009/02/mejorando-la-legibilidad-del-codigo.html' ref='tag:blogger.com,1999:blog-33066466.post-6966258992985170511' source='http://www.blogger.com/feeds/33066466/posts/default/6966258992985170511' type='text/html'/></entry></feed>