Question:
Date: 07-01-2016 04:46:42
(In Spanish)
"Intelimágico" es una palabra inventada en base a la unión de inteligente y mágico, y que uso para describir el código/función/framework de terceros que "sin saber como" resuelve una o varias de nuestras problemáticas/necesidades al momento de desarrollar nuestro software. Digamos que es "inteligente" porque con un par de directivas/configuraciones puede "entender" que es lo que queremos hacer y lo hace, y "mágico" porque muchas veces no sabemos como lo hace, pero funciona y lo usamos (en muchos casos sin reparo).
En lo particular, siempre que puedo trato de evitar lo intelimágico, porque cuando falla o no hace lo que se espera nos deja al costado de la ruta esperando la grúa o intentando ver "lo básico" (tiene nafta, hay chispa, se soltó algún cable, etc.), y terminamos dependiendo de alguien más para dar una solución de base... a menos que te quieras sumir en la documentación de tal código/función/framework intelimágico por unas cuantas horas/días/meses con la incertidumbre y esperanza de poder resolverlo (siempre y cuando dicha documentación exista, cosa que no siempre sucede o no esta del todo clara).
Y suponiendo que todo va bien, no podemos dejar de lado los requerimientos variados y cambiantes que suelen tener los usuarios/clientes de nuestro software, para lo cual muchas veces nos vemos en la necesidad de realizar adaptaciones no estándar de ese código intelimágico que nos ha funcionado tan bien, pero que para este nuevo x caso no se adapta...
Como lo he comentado en otras oportunidades, entiendo que el trabajo de ingeniería de software requerido para evitar la trampa de lo intelimágico no es para todos, muchos tratan de desarrollar sus propios frameworks sin estudio previo, y en este caso es peor el remedio que la enfermedad. No utilizar software de terceros en nuestros desarrollos (o solo utilizar aquel que comprendamos y sea confiable) implica un gran esfuerzo, mucha dedicación y compromiso con nuestra formación.
Con este post no quiero demonizar el uso de código/función/framework de terceros, sino dar luz al concepto "intelimágico". Claro esta que si estamos desarrollando una demo/prototipo lo intelimágico suele ser una excelente opción, por lo que contextualizo el concepto dentro del desarrollo de software profesional, de calidad, escalable, mantenible, extensible, perdurable en el tiempo, etc. y no en el desarrollo de demos y/o prototipos que suelen requerirse con cierto grado de “rapidez” y sin hacer reparo en el “¿cómo se hace?”, sino en el resultado/funcionalidad esperada.
Espero sus comentarios.
Saludos! Votes: 7 - Answers: 4 - Views: 20 Share on: Google Facebook Twitter LinkedIn Link
Concepto intelimágico[Resolved]
Hola a todos, en esta oportunidad quisiera extenderme un poco en el concepto "intelimágico", el cual suelo utilizar en varias de mis respuestas."Intelimágico" es una palabra inventada en base a la unión de inteligente y mágico, y que uso para describir el código/función/framework de terceros que "sin saber como" resuelve una o varias de nuestras problemáticas/necesidades al momento de desarrollar nuestro software. Digamos que es "inteligente" porque con un par de directivas/configuraciones puede "entender" que es lo que queremos hacer y lo hace, y "mágico" porque muchas veces no sabemos como lo hace, pero funciona y lo usamos (en muchos casos sin reparo).
En lo particular, siempre que puedo trato de evitar lo intelimágico, porque cuando falla o no hace lo que se espera nos deja al costado de la ruta esperando la grúa o intentando ver "lo básico" (tiene nafta, hay chispa, se soltó algún cable, etc.), y terminamos dependiendo de alguien más para dar una solución de base... a menos que te quieras sumir en la documentación de tal código/función/framework intelimágico por unas cuantas horas/días/meses con la incertidumbre y esperanza de poder resolverlo (siempre y cuando dicha documentación exista, cosa que no siempre sucede o no esta del todo clara).
Y suponiendo que todo va bien, no podemos dejar de lado los requerimientos variados y cambiantes que suelen tener los usuarios/clientes de nuestro software, para lo cual muchas veces nos vemos en la necesidad de realizar adaptaciones no estándar de ese código intelimágico que nos ha funcionado tan bien, pero que para este nuevo x caso no se adapta...
Como lo he comentado en otras oportunidades, entiendo que el trabajo de ingeniería de software requerido para evitar la trampa de lo intelimágico no es para todos, muchos tratan de desarrollar sus propios frameworks sin estudio previo, y en este caso es peor el remedio que la enfermedad. No utilizar software de terceros en nuestros desarrollos (o solo utilizar aquel que comprendamos y sea confiable) implica un gran esfuerzo, mucha dedicación y compromiso con nuestra formación.
Con este post no quiero demonizar el uso de código/función/framework de terceros, sino dar luz al concepto "intelimágico". Claro esta que si estamos desarrollando una demo/prototipo lo intelimágico suele ser una excelente opción, por lo que contextualizo el concepto dentro del desarrollo de software profesional, de calidad, escalable, mantenible, extensible, perdurable en el tiempo, etc. y no en el desarrollo de demos y/o prototipos que suelen requerirse con cierto grado de “rapidez” y sin hacer reparo en el “¿cómo se hace?”, sino en el resultado/funcionalidad esperada.
Espero sus comentarios.
Saludos! Votes: 7 - Answers: 4 - Views: 20 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 07-01-2016 06:26:38 Estás describiendo un concepto intrínseco de la POO que es el modelo de caja negra.
Las cajas negras son sumamente deseables y son parte fundamental de cualquier desarrollo siempre y cuando:
1. Tengas buena documentación
2. La caja sea SOLIDa Votes: 3 - Link answer -
Date: 07-01-2016 15:29:51
Muy buena definición Fernando como siempre con la mejor pedagogía, simple y sencilla.
muchas veces se da por sentado ciertos conceptos y algunos los desconocen y ello provoca incertidumbre cuando es escuchado.
Otros conceptos que tambien se mencionan y pocos conocen es "La lógica del negocio" esto conlleva a tener una falso conocimiento ya que algunos piensan que se trata de algo comercial o algo totalmente distinto a lo que se esta refiriendo
Fernando cuando puedas por favor danos una buena explicación sobre Llógica de negocio.
Muchas gracias por tu tiempo y dedicación
Votes: 4 - Link answer -
Date: 11-03-2016 12:27:33 Muy buena, interesante la traducción. Yo estaba habituado a leerla con el concepto de "automagically", cuando un sistema está tan bien codeado que resuelve las posibles excepciones, o incluso cuando un proceso que hecho a mano involucraría una cantidad indeseable de aburridos pasos pero tal script las resuelve en un par de segundos, automágicamente.
Mágicos scripts que tan felices y menos complicada nos hacen la vida :)
Saludos! Votes: 2 - Link answer -
Date: 11-03-2016 13:01:51 Marce, si podes abrite un nuevo aporte con el titulo "Concepto automagically", taguealo en "Concepto - Desarrollo - Nota - Opinión" y explicalo lo mejor que puedas, yo no estaba familiarizado, pero veo que hay varios memes en la red.
Saludos! Votes: 2 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In