Cuando salí de la universidad hace unos 10 años ya, la boga en esos días eran salir del clásico sistema monousuario todo en 1 y pasar a ambientes clientes-servidor. Bien, no era algo novedoso y ya existían en el mercado productos que te prometían hacer esto de forma simple. Ha pasado el tiempo y todavía me da risa(de pensar que felices son como estan) cuando escucho que una organización es moderna porque esta en ambiente cliente/servidor cuando esta tendencia muto hacia otras cosas en el transcurso de estos años, no se realmente si para mal o para bien. Analicemos lo que ha ocurrido en estos 10 últimos años, o por lo menos lo que yo he vivido, me recuerdo que en esa epoca lo primero que se pensaba era en hacer una aplicación:
Pase los 10 últimos años haciendo aplicaciones que solo querían lo basico, grabar un dato a la DB y ver luego un reporte de esto; y que realice en el medio, una estratificación de capas tan complejas que el mantenimiento de la misma no es lo mas simple del mundo, tal vez olvide el principio fundamental del KISS y fui complaciendo a clientes o moviéndome de tecnologías tal como el mercado me hacía ir o el cliente me exigía, pero en base a lograr arquitecturas que fuesen escalable fui creando tantas capas de desarrollo que mas que una solución simple parece la descripción geológica del planeta Tierra. Adicional ni siquiera describí las capas que encontramos normalmente en un Application Server(Messaging, DAO, Bussiness Components, etc.) sino nunca terminaría de describir esto.
Pudiéramos decir que esa empresa que dice que es moderna por usar una arquitectura cliente/servidor, hasta contento pudiésemos estar que se queden así y evitar a que vayan complicando su esquema de soluciones, se que muchos pensaran que en la simplicidad no esta la respuesta pero también hay que saber cuando dejar que las cosas funcionen de forma natural. Se que es inmantenible la lógica de negocios en un DB Server y que con esto estaríamos casando la aplicación con un manejador de DB en particular que de ser sustituido la migración de T-SQL seria un trabajo doloroso, pero cuantas veces suceden las migraciones de esta magnitud, cada 5 o 10 años?? Hasta que punto el ego, ya que es ego al fin por el nuevo reto, del Arquitecto, Coder o lider del proyecto hace que no simplifiquemos las cosas sino que busquemos complicarla cada día más.
El mundo Client/Server cada día cambia, ya no tenemos que la View sera un GUI-Client o GUI Web-Enabled sino un dispositivo mobil o un cualquier otra cosa que se nos ocurra(Google Maps por ejemplo que a pesar de se web enabled no es una aplicación de formas clasica), ya no manejamos una DB como nuestro repositorio ya que tal vez dialoguemos contra un Legacy, un ERP o un mismo dispositivo electrónico donde no tendremos capacidad de agregar logica de negocio en T-SQL pero estos casos no son la regla hoy por hoy de el clasico 80-20 pero en un futuro cercano tal vez lo sean, el estar preparado para esto no esta mal, pero también se debe tratar de hacer las cosas simples en la medida de lo posible. Hace una semana y algo conversaba con un padawan sobre esto mismo, si tu aplicación es para un desktop de trabajo unitario, porque complicar la arquitectura de la misma a 8 capas?? Por que un paper de best practices asi lo indica?? O es porque tu ego lleva a esto? No esta mal acostumbrarse a trabajar bien pero hay que saber demarcar esa delgada línea entre satisfacer a nosotros mismos o hacer una solución simple pero que cumpla con los requisitos y sea fácilmente escalable en el tiempo. Tarea sencilla no es esto último pero en mi cabeza solo suena una canción…
Sonado en player Perenne:KISS-Rock and roll all nite
Meneame
|
Favoriting
EL URI para seguir esta entrada es: http://zeitan.blogsome.com/2006/09/26/vida-de-programador-iii-clientserver/trackback/
RSS feed para comentarios en el post.
Entrelineado de parrafos automáticos, direcciones de e-mail nunca seran mostradas, HTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
cró·ni·ca s. Artículo periodístico o información radiofónica o televisiva sobre temas de actualidad.
Puede que algunos elementos de esta página no se muestren correctamente si navega con Internet Explorer. Zeitan recomienda utilizar:

(64)
(3)
(112)
(10)
(6)
(29)
(107)
(160)
(57)
| L | M | M | J | V | S | D |
|---|---|---|---|---|---|---|
| « Ago | Oct » | |||||
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | |
Zeitan. Es el navegante constante de la red que expone sus opiniones y gustos en este espacio esperando compartir junto a Uds. esta experiencia y saber su feedback a través de sus comentarios.
Theme copyright © 2002– Mike Little
Modificado por Zeitan 2006.
Vida de Programador III: Client/Server
Analisis de la evolución del desarrollo cliente servidor durante los ultimos 10 años
September 26, 2006 @ 6:00 pm
No, no “complicar la arquitectura de la misma a 8 capas” no es porque lo diga un paper, generalmente es porque pasó un vendedor de Oracle por ahí y habló con el Gerente de Sistemas
September 26, 2006 @ 6:50 pm
me sorprende la manera que sabes escalar aplicaciones de acuerdo a los requerimientos de tus clientes.
Saludos.
September 26, 2006 @ 7:17 pm
Que gran verdad…
auténticas burradas he visto para desarrollar una aplicación en entorno cliente-servidor, a utilizar dentro de una pequeña red local, con arquitecturas vanguardistas… clientes mega-complejos orientados a objetos…
Siempre he creido que desde hace un tiempo hay un gran afán en complicar las cosas en pro de la reusabilidad y la escalabilidad… cosas que en ocasiones sí suceden… pero en la mayoría nunca llegan a manifestarse…
September 27, 2006 @ 11:10 am
Creo que el TAO de la programacion enseña mucho como manejar un problema de esta indole, aunque lo mas comodo y menos riesgoso es seguir el principio KISS, como dices llega el momento en que tu cliente te pide algo mas alla, ahora todos tenemos egos que satisfacer y ganas de plantear nuestros conocimientos cuando se nos da la oportunidad en un proyecto con buen nivel. pero es importante tratar de medir bien nuestro alcance deacuerdo a los requirimientos y no permitir que la cosa se nos salga de control, que es la tendencia dependiendo de cuanta gente este involucrada en el proyecto.
mi opinion personal, nunca he sido muy buen amigo de los componentes construidos por casas de software y para plataformas particulares me parece, que la mayoria falla y reduce un mundo de posibilidades que pueden haber en el codigo a bajo nivel, ya me paso en una oportunidad, donde tuve que desarrollar un control en c++ para manejo de sockets, hay muchos controles propietarios para esto, solo q compatibles con las plataformas que ellos, y con las politicas de los diseñadores, si se nos ocurre desviarnos un poco, quizas lo paguemos caro.
Conclusion: a veces hay que volver a lo basico y simple para resolver problemas complejos.
September 27, 2006 @ 11:45 am
el tao es lo mejor que pude leer
!...
September 28, 2006 @ 1:37 pm
envialo
July 10, 2007 @ 7:59 pm