tag:blogger.com,1999:blog-19450532.post6305404258005504707..comments2023-08-04T05:53:13.693-03:00Comments on PHP Senior: Cambio de opinión: en algunos casos acepto el uso de null == $varEnrique Placehttp://www.blogger.com/profile/15452998349449419148noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-19450532.post-70140908959779258662010-02-17T20:59:20.662-03:002010-02-17T20:59:20.662-03:00O sea, que utilizamos una buena práctica (convenio...O sea, que utilizamos una buena práctica (convenio de codificación) para evitar problemas cuando hacemos malas prácticas (hotfixes) :-PIsrahttps://www.blogger.com/profile/11020519768702718954noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-27746442821314657712010-02-17T20:11:56.303-03:002010-02-17T20:11:56.303-03:00Muy buenos aportes todos! ;-)
Una aclaración: lo ...Muy buenos aportes todos! ;-)<br /><br />Una aclaración: lo que quise decir, luego del post original donde decía que no estaba en absoluto de acuerdo con la práctica de invertir las condiciones de igualdad, me enfrenté a un hecho de la realidad que me hizo pensar que -por más experto que sea uno- puede cometer este tipo de errores... aún por primera vez!<br /><br />Nuevamente, no tengo pensado cambiar mi práctica, la única forma de que sirva es hacerlo siempre, si lo haces de forma pensada, es lo mismo que controlar dos veces los "==", y no tienen sentido.<br /><br />El post apunta a "abrir la mente a las posibilidad" porque la realidad es mucho más rica y variada de lo que podemos imaginar ;-)Enrique Placehttps://www.blogger.com/profile/15452998349449419148noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-55316509350775712382010-02-17T09:00:49.569-03:002010-02-17T09:00:49.569-03:00Es complicado para alguien que esta acostumbrado a...Es complicado para alguien que esta acostumbrado a hacer if($a==10) a pasar de forma expresa a if(10==$a), ya que si uno va a hacer esto expreso indica que se está fijando en ese error adrede. No le veo mucho sentido.<br /><br />Diferente sería que siempre hagamos el if(10==$a).AV4TArhttps://www.blogger.com/profile/05254982251271538366noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-1413646014181049982010-02-16T13:12:44.483-03:002010-02-16T13:12:44.483-03:00@Silvia.
En verdad que es un error muy común, sin...@Silvia.<br /><br />En verdad que es un error muy común, sin importar la experiencia del programador.<br /><br />Y debido a que es sintaxis valida para el lenguaje es aún mas díficil de identificar pues uno siempre se va por corregir la lógica asumiendo que la sintaxis esta bien.Unknownhttps://www.blogger.com/profile/11749374231786076776noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-48061070855479861942010-02-16T11:58:58.013-03:002010-02-16T11:58:58.013-03:00Por eso mismo Diego, que lo que acostumbro a hacer...Por eso mismo Diego, que lo que acostumbro a hacer cuando edito algo en producción es chequearlo y recheaquearlo. Me da la sensación que adoptar otra manera de escribir solo por si me equivoco nos da una falsa sensación de estar cubiertos frente a algunos errores.Anonymoushttps://www.blogger.com/profile/09110954045075176297noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-5217494152117657352010-02-15T14:30:34.193-03:002010-02-15T14:30:34.193-03:00@Silvia: no tiene nada que ver la experiencia en e...@Silvia: no tiene nada que ver la experiencia en esto.<br />@Isra: quizás deberías actualizar el NetBeans. Actualmente trabajo con la versión 6.7.1 y el IDE siempre advierte cuando dentro de una condición hay una asignación. Si bien es código válido el IDE solo avisa cuando estás programando.<br />@Adrian Ramiro: cuando se habla de "producción" se debe tener un cuidado especial, y no por el hecho de que "se vean los errores de programación impresos en pantalla". No pasa por eso.<br />Hay que tener especial cuidado porque son los datos reales.<br />Imaginate esto:<br /><br /><b>if($a = 50) {<br />grabarEnBaseDeDatosDeProduccion($a);<br />}</b><br /><br />Se hizo una asignación cuando debería haber sido una comparación, y por este tonto error se grabó en la base de datos.Diegohttps://www.blogger.com/profile/12158292947287430853noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-85580824821180441162010-02-15T10:27:41.823-03:002010-02-15T10:27:41.823-03:00@Silvia, creo que es un error muy común de tipeo, ...@Silvia, creo que es un error muy común de tipeo, no de lógica, por lo que tiene poco que ver con la experiencia. Aunque la experiencia también nos hace chequear 2 o 3 veces las cosas, pero el apuro/confianza nos traiciona.<br /><br />@Isra, algunos IDEs detectan asignaciones dentro de condicionales y lo desaconsejan.<br /><br />Yo particularmente defiendo $var == 'valor' , en el ejemplo que cita Enrique, editando en producción, deberiamos tener los errores ocultos, así que no se cuanto aporta utilizar 'valor' == $var , ya que estaría igual de dificil de localizar el error. Suelo editar en producción, y por SSH, por lo que mi 'IDE', en esos momentos, es el nano, un ose acostumbra a cheaquear mucho más que confiar en lo que me sugiera o advierta una IDE avanzada o algún standard.Anonymoushttps://www.blogger.com/profile/09110954045075176297noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-18873265271170201902010-02-15T07:29:52.970-03:002010-02-15T07:29:52.970-03:00"solo para cubrir esta "hipotética situa..."solo para cubrir esta "hipotética situación tan poco probable", ni que hablar que todo IDE respetable nos detecta este error y es fácil de ver y corregir."<br /><br />Estoy de acuerdo en que adoptar un convenio de codificación sólo para evitar un error en concreto puede ser un poco exagerado, pero...<br /><br />a) ¿Poco frecuente? No creas... además, cuando se comete, cambia mucho la lógica y además es difícil de detectar.<br /><br />b) Los IDEs (al menos los que yo he utilizado, entre ellos NetBeans) no lo detectan porque poner un sólo $a = 30 es una sintaxis válida para una condición if.<br /><br />No hay que defender ningún convenio de programación como si fuese una ciencia exacta, o peor, como si fuese una religión :-PIsrahttps://www.blogger.com/profile/11020519768702718954noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-37898748118657218322010-02-15T06:53:04.083-03:002010-02-15T06:53:04.083-03:00Silvia, no sé que experiencia tienes programando, ...Silvia, no sé que experiencia tienes programando, pero si es verdad qe esas cosas pasan más veces de la cuenta. Mas aún cuando como ha dicho Enrique no estaba con un IDE de trabajo en condiciones. <br /><br />Ne te ha pasado al escribir un documento de texto, sin tener la corrección automática activada el que has pulsado dos veces la 'l' para porner por ejemplo llave, y la segunda ele no se ha impreso y hasta que no lo has leido en papel no te has dado cuenta del fallo. <br /><br />Pues mas o menos es eso lo que cuenta Enrique y que le ha pasado, estándo en cliente y sin sus herramientas de trabajo cotidianas. La solución que propone es tomar su practica para evitar ese tipo de error, y luego mas tranquilamente reescribir el copdigo en su lugar de desarrollo.Rafael Canohttps://www.blogger.com/profile/11495540309411635653noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-7061115937780152152010-02-15T05:18:58.653-03:002010-02-15T05:18:58.653-03:00Si ya piensas en evitar ese error, simplemente no ...Si ya piensas en evitar ese error, simplemente no lo cometes.proclamohttps://www.blogger.com/profile/02575849626484307608noreply@blogger.comtag:blogger.com,1999:blog-19450532.post-61782704436727366372010-02-15T05:15:18.620-03:002010-02-15T05:15:18.620-03:00un programador experto cometeria ese error (poner ...un programador experto cometeria ese error (poner un = en lugar de 2 en un if)?? no creo...Silvihttps://www.blogger.com/profile/08194582393467809840noreply@blogger.com