Buscar
Social
Ofertas laborales ES
« Ubuntu for phones: una nueva plataforma móvil | Main | ZKPushState: Manejar el API de Historial de navegación en HTML5 directamente desde Java »
domingo
ene062013

Arquitectura Java Solida: libro gratuito de JEE en español

Acabo de terminar de escribir mi primer libro "Arquitectura Java Sólida" . El libro es gratuito en formato electrónico y trata sobre como construir soluciones JEE apoyándose en los distintos frameworks existentes y patrones de diseño. Espero que sea útil para la comunidad ya que de estos temas existe poca bibliografía en español.

La web de donde se puede bajar el libro es :

http://www.arquitecturajava.com

Nota: noticia enviada por Cecilio Alvarez Caules (Sun Certified Enterprise Architech)

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (46)

Muchas Gracias por compartirlo con la comunidad!

enero 7, 2013 | Unregistered CommenterVerdeLimon

Se que toma mucho trabajo escribir, y que es muy fácil para los que no hicieron el trabajo criticarlo, pero si tengo una observación: El libro se llama Arquitectura Java Solida, empece a revisarlo y se habla en un inicio de la recopilación de las practicas que ha tenido el autor sobre su experiencia como arquitecto y consultor, y de repente en los primeros ejemplos de código de ejemplo de JSP veo la siguiente linea:
String consultaSQL = "insert into Libros (isbn,titulo,categoria) values ";
consultaSQL += "('" + isbn + "','" + titulo + "','" + categoria + "')";

Es correcto concatenar así una consulta SQL en un libro con ese titulo que puede servir de referencia para mucha gente?, no hay duda de que el aporte a la comunidad es realmente valioso, solo expongo mi punto de vista sobre todo por el titulo del mismo, ya que supondria que es para alguien que quiere mejorar su nivel de desarrollo a traves de buenas practicas y una arquitectura solida.

enero 7, 2013 | Registered Commentergishac

mis mas sinceras felicitaciones a Cecilio

@gishac
eres un clásico ejemplo de lo que me molesta tanto cuando alguien da el ejemplo de como hacer código ordenado fácil de entender fácil de modificar salen con esas minucias "tu te olvidaste de concatenar de la manera correcta" mira en primer lugar la concatenación de la forma correcta toma 0 mili-segundos es decir ni-siquiera se puede medir directamente lo mismo pasa con la concatenación de forma incorrecta también toma 0 mili-segundos

la única forma de medir es que se efectué el experimento cientos de veces seguidas es decir que si concatenas 800 veces seguidas de la forma correcta vas a ahorrar 57 milisegundos

mira si vas a ahorrar menos de un segundo para decir que "yo si se usar de forma eficiente" no le veo el sentido prefiero de la forma lenta por que es mas fácil leer es mas fácil de entender y es mas fácil de escribir

el usuario final jamas te va a pedir que no concatenes con "+" eso es absurdo el usuario final jamas va a notar la diferencia.Tiempos menores a un cuarto de segundo nadie los nota

eso es clásico lo veo todo el tiempo lo único que notan los inexpertos son detalles que no influyen en nada y no ven la idea global no entienden de arquitectura solo ven por pedasitos aislados y no ven como funciona todo el sistema en conjunto ni las decisiones arquitectonicas

enero 8, 2013 | Unregistered Commenterluis

Luis, yo creo que el comentario de gishac va más en la línea de inyecciones SQL (respecto a lo cual el código que pone como ejemplo es una auténtica aberración) que sobre eficiencia de concatenación.

enero 8, 2013 | Registered CommenterAbraham

Efectivamente, gishac tiene toda la razón del mundo: esa concatencación de trozos de sentencia sql es un suicidio desde el punto de vista de la seguridad (aparte de que es una pesadilla de cara al mantenimiento). Pero es que el libro está plagado de errores gravísimos de arquitectura.

He preferido no seguir leyendo el libro después de ver lo de la concatenación de trozos de sql y esto (¡madre mía!):


public ResultSet seleccionarRegistros(String consultaSQL) {
Connection conexion = null;
Statement sentencia = null;
ResultSet filas = null;
try {
Class.forName(DRIVER);
conexion = DriverManager.getConnection(URL,
USUARIO, CLAVE);
sentencia = conexion.createStatement();
filas = sentencia.executeQuery(consultaSQL);
} catch (ClassNotFoundException e) {
System.out.println("Error Driver" + e.getMessage());
} catch (SQLException e) {
System.out.println("Error de SQL " + e.getMessage());
}
return filas;
}

De verdad, no sé cómo decirlo suavemente, el libro es un ejemplo de cómo NO se deben hacer las cosas.

enero 8, 2013 | Unregistered CommenterJuan

La idea del libro es precisamente enseñar como a partir de código de baja calidad (p.e. sql a pelo) aplicando patrones y buenas prácticas se puede llegar a algo decente. Evidentemente hay que leerse el libro... para poder criticarlo.

enero 8, 2013 | Unregistered Commenteruno

@uno pues no termino yo de entender ese concepto… ¿puedes elaborar sobre él?

enero 8, 2013 | Registered CommenterAbraham

Buenas a todos

Primero agradecer a la gente que se ha leido el libro o se lo esta leyendo sus opiniones . Es evidente que es una aberración usar SQL inyectada en el propio código y en los capítulos posteriores se elimina ese código y se substituye por Hibernate y mas adelante por JPA. . Si los primeros capítulos traen el código de esa manera es para iniciar al lector que tenga poca experiencia sin que le resulte el libro demasiado avanzado desde un primer momento.

Ojala hubiera espacio en el libro para comentar todo .Para hablar de consultas preparadas o para hablar de StringBuilder y StringBuffer o de caches... pero al final lamentablemente no me cabia todo .

Espero que la gente lo pueda entender y diseñe su arquitectura basándose en los últimos capítulos y no los primeros que son de iniciación.

Gracias

enero 8, 2013 | Unregistered CommenterCecilio Alvarez Caules

Buenas

Gracias a todos los que os estais leyendo mi libro por vuestros comentarios .Aprovecho este post para comentar alguna cosa sobre el libro . El libro intenta comenzar desde cero y servir a todos los desarrolladores Java a mejorar sus conocimientos sobre la plataforma de una forma progresiva . Es normal que en los primeros capítulos os encontreis cosas como inyección de SQL (claramente erroreas) ya que el libro simplemente esta comenzando y para explicar algunos conceptos de arquitectura es necesario ver que problemas dan los SQL y otras muchas cosas .

Los capítulos mas avanzados de Hibernate y JPA se encargan de eliminar este código de la aplicación así como otras muchas cosas. Os animo a leer los capítulos mas avanzados y luego poder valorar el libro en su conjunto.

Muchas gracias a todos

enero 8, 2013 | Registered Commentercecilioalvarez

La idea del libro es precisamente enseñar como a partir de código de baja calidad (p.e. sql a pelo) aplicando patrones y buenas prácticas se puede llegar a algo decente. Evidentemente hay que leerse el libro... para poder criticarlo.

WTF!

enero 8, 2013 | Unregistered CommenterJuan

Cecilio:

- NO es "normal" encontrar código erróneo en un libro. Y, si lo hay, el autor debe decirlo claramente.

- El SQL, en sí mismo, no da "problemas". ¿Por qué no has usado una sentencia preparada en vez de una sentencia construida concatenando cachitos?

- Hay veces en que es mejor usar sql a pelo y hay veces en que es mejor usar JPA. Pero lo que no puedes hacer es justificar el uso de JPA diciendo que SQL "da problemas". Lo que da problemas, insisto, es tu concatenación de cachitos, no el sql en sí mismo.

- El método seleccionarRegistros que recibe un String con una select de sql y devuelve un ResultSet es para echarse a llorar. No puedes pretender devolver un ResultSet en un método que debería cerrar la sentencia y debería liberar la conexión. Y no culpes a SQL del problema, puesto que hay formas correctas de hacer algo así, de hecho, me suena que entre los jdbctemplates (o como se llamen) de Spring hay algún método que recibe un String con una select de sql y devuelve el resultado como una lista de objetos, NO con un ResultSet. Me temo que tu problema es que sabes mucho de "enterprise" pero te falta experiencia en programación estructurada modular.

- Y del tratamiento de excepciones mejor no hablo...

enero 8, 2013 | Unregistered CommenterJuan

Buenas Juan

Se te fijas un poco mas adelante del libro se comenta que lo de los ResultSet es erroneo se cierra la conexión y se modifica para que devuelva una lista de objetos . Ya te digo que el código va modificandose poco a poco para que la gente pueda entender el porque.

Un saludo

enero 8, 2013 | Registered Commentercecilioalvarez

bueno no creo que el problema sea de fondo pienso que el libro tienen mucho sentido

el problema es de forma debió dejar bien en claro que esta presentado ejemplos malos y explicar detalladamente por que esta mal y dejar bien en claro que solo es para mostrar como no se ase.luego inmediatamente después mostrar como se corrigen los errores

@Luis Puse el comentario con mucho respeto, y como dice Abraham, es por el tema de buenas practicas, mas no por un tema de rendimiento.
@uno Si es así como dices entonces bajo mi humilde criterio el nombre de la publicación deberia ser diferente, ya que llama a entender que es algo un poco mas avanzado, he leido un sinnúmero de publicaciones y no es lo mismo "Java for dummies" que "Java Advanced", seguí leyendo el libro para ver la evolución del tema, y solo ya deja de aparecer el sql cuando se utilizan hibernate y jpa, lo cual es obvio... pero te dejaría con ese concepto de uso de jdbc puro.
@cecilioalvarez Es bueno el aporte, no estoy criticando con espiritu de troll, estoy dando mi punto de vista sobre el tema; hasta traducir un texto en la documentacion de un proyecto de codigo abierto es un gran aporte, mucho mas aun un libro de mas de 400 paginas.

enero 8, 2013 | Registered Commentergishac

Buenas Gishac

Os agradezco los comentarios de veras ,las criticas están para aprender . Ni se me había pasado por la cabeza que hubiera gente que considerara los primeros capítulos... como un "referente" a como trabajar . Aunque es un libro que empieza con lo mas básico avanza muy rapidamente y puede que genere dudas o enfoques incorrectos a la gente que esta comenzando. Intentare las próximas semanas publicar algo en mi blog que ayude a aclarar dichos temas . Por otro lado no considero que usar SQL sea algo negativo de por si yo normalmente uso SQL en algunos proyectos a traves de Spring JDBC o MyIBatis y hay situaciones en las que es la mejor opción.

Un saludo

enero 8, 2013 | Registered Commentercecilioalvarez

La cuestión, creo yo, es que se mezclan conceptos en la evolución que presenta el libro.

Si lo que se quería mostrar es una evolución en sofisticación, lo suyo hubiera sido empezar por JDBC puro pero correcto y luego mostrar por qué es mejor en algunos casos usar cosas más sofisticadas. Pero enseñar código terriblemente malo en JDCB y luego insinitar que se solucionan esos problemas pasando a Hibernate o JPA es un engaño: Se solucionan escribiendo el código correctamente. El usar o no ORMs o *batis viene dado por otras circunstancias, aunque de regalo te traigan otras cosas.

T recordar que si no queremos que no se hagan las cosas de una manera, no hay ni que mostrarlas. Pedagogía pura :D.

enero 8, 2013 | Unregistered CommenterKomorr

[...] es un libro que empieza con lo mas básico [...]

Engañado has discurrido.

No es que el libro empiece con "lo más básico", es que empieza con código incorrecto (montones de código incorrecto), aterrador. Y no son una o dos páginas, son muchas más. Si no lo quieres ver, allá tú; al fin y al cabo, es tu obra.

enero 9, 2013 | Unregistered Commenterprogramador

Buenos días. Voy a opinar de atrevido, porque no he leido el libro.

Pero si he leido Effective Java de Joshua Bloch, de hecho es uno de los mejores y más didácticos libros que he leído.

Y un recurso que Bloch utiliza frecuentemente es incluir código defectuoso o discutible, para luego explicar por qué es defectuoso, proponer soluciones, etc, etc. Incluso la forma que usa para indicar que el código es problemático muchas veces es simplemente con un comentario en Java:

// The worst possible legal hash function - never use!
@Override public int hashCode() { return 42; }


. . .


// Using ordinal() to index array of arrays - DON'T DO THIS!
public enum Phase { SOLID, LIQUID, GAS;
public enum Transition {
. . .
}

En resumen, me parece perfectamente válido la propuesta de partir desde código defectuoso y recorrer el camino hasta llegar al código de 'buena calidad'.

Saludos

enero 9, 2013 | Unregistered Commentermc

Gente, me parece que le están pegando demasiado duro al autor.
Creo, sin haber visto el libro, que si tiene los problemas que dicen se soluciona fácilmente poniendo un buen cartel al principio diciendo que el código en un principio es malo y puesto a propósito así para ir viendo los porque y como corregirlo.
Luego si alguien agarra un libro y usa el primer código que encuentra, ese es otro problema
Saludos y ánimos para el autor

enero 9, 2013 | Unregistered Commenterdiego

Yo tengo la opinión opuesta a casi todos los que escriben, me encanta la idea de que el libro, en vez de poner directamente la forma correcta de hacer algo, va construyendo la forma correcta paso a paso.
Ahora, dado que eso parece confundir y enojar a muchos, humildemente le aconsejo al autor que en cada fragmento erróneo (mejor dicho sin terminar) de código incluya una aclaración tipo "Éste no es un buen ejemplo de código, falta corregir mucho todavía".

Aclarando que estoy en principio a favor del libro, y que me gusta como esta planteado, diré que hay ejemplos de código final que deberían ser un poco más pulidos. Por ejemplo, no me gusta nada
log.error("Error de SQL" + e.getMessage());
No loguear el stack completo del error es terrible.
O usar System.out en vez de log4j DESPUÉS del capítulo sobre log4j
Una pasadita de PMD/Checkstyle puede mejorar bastante el código
La ausencia absoluta de maven...personalmente odio maven, pero no poner ni siquiera una referencia no puede estar bien
Aparte de eso hay algunas cosas que podrían mejorar el libro a nivel presentación:
Quizás el título del libro no sea el mejor, Arquitectura Java Paso a Paso podría haber sido más descriptivo.
Sería mejor que el código java/html/javascript esté identado y con colores.
Tabulaciones de solo 2 espacios, y letra de ancho fijo para el código mejoran la legibilidad en un libro
Los printscreens se ven un poco borrosos...quizás tienen un zoom, no deberían.
En fin, creo que le falta corregir cosas, pero felicito al autor por proponer un enfoque diferente. Pero da la impresión de que son más los que prefieren que les muestren directamente el código perfecto.

enero 10, 2013 | Registered Commenterpablogrisafi1975

De hecho en la página 153 el autor indica varias limitaciones del código presentado:

Hasta este momento hemos usado la clase DataBaseHelper para que se encargara de las operaciones ligadas con la base de datos (ver imagen).

Sin embargo la clase aunque funcional, tiene muchas limitaciones tales como:
• No soporta transacciones ...
• No soporta uso de pool de conexiones ...
• No soporta consultas preparadas y usa consultas SQL estándar con los
problemas de inyección de SQL que ésto genera
• No soporta varios tipos de motores de bases de datos ...

Podríamos continuar con la lista de limitaciones, pero parece claro que si queremos construir una solución Enterprise, la clase que hemos construido no es el mejor camino. Nos ha sido útil hasta el momento y ha ayudado a ir asentando conceptos. ...


Estoy de acuerdo con @diego y pienso que si nuestra mayor crítica es que esa aclaración debería estar antes, es porque el libro en general esta bien.

enero 10, 2013 | Unregistered Commentermc

Pues no estoy de acuerdo mc, precisamente por que esas características no están ahí por usar una clase DatabaseHelper y para solucionar esos problemas no hace falta usar un "framework empresarial". Eso de que para que nuestra solución sea más seria tenemos que ir por ahí... vaya, así que ¿cuando programábamos y no había Hibernate o similares sólo hacíamos jueguetes?
Así nos va que luego se acusa al mundo Java de usar soluciones pesadas y soltar "enterprise" por aquí y por allá. Si para usar un pool de conexiones, usar transaccionalidad o hacer código que evite SQLInjection tenemos que usar un "framework empresarial serio", estamos "apañaos".

enero 10, 2013 | Unregistered CommenterKomorr

@Komorr

La clase DataBaseHelper presentada en el libro es de juguete. No quiere decir que no existan otras clases "DataBaseHelper" que sean mejores, pero esa es de juguete.

Con respecto a la seriedad: no se trata de seriedad, sino de conveniencia. Por supuesto que te puedes programar desde cero algo serio que soporte transaccionalidad, pools, clusters, que sea independiente del motor y que haga tortafritas los días de lluvia. Pero la propuesta de JEE es que te da una plataforma con todas estas cosas ya resueltas. Nadie te obliga a usarlo, pero te conviene (evidentemente, si no necesitas esas cosas NO uses JEE)

Además JEE por ser un estándar te brinda otras cosas, pero si entramos en ese tema entiendo que nos alejamos del centro de la discusión.

enero 11, 2013 | Unregistered Commentermc

Pero es que precisamente esa es la pega que le veo (vemos creo). Que no hacía falta que DataBaseHelper fuese terriblemente mala como es para poder defender las bondades de usar Java EE.
Y lo de seriedad no lo digo yo, lo dice el libro literalmente, y esa era precisamente la coña :).
Y para hacer transaccionalidad, pools, clusters e independecia del motor... pues no hace falta Java EE. Yo tengo aplicaciones haciendo eso todos los días en simples Tomcats, con *batis o con JPA (fuera de servidor JavaEE). Tendré que mirar lo de los tortafritas los días de lluvia por si me obliga a actualizar a un servidor Java EE :).

Y nadie niega que Java EE tenga sus ventajas, simplemente nos parece equivocado venderlo de la forma que se hace en el ibro. Es como decir que el Ferrari de Alonso es mejor para las carreras que mi coche por que es rojo, por que yo no llevo casco y por que el mío tiene una rueda pinchada.
No es que creamos que el libro se equivoca diciendo que Java EE es mejor para según que, si no que habría otras formas de explicarlo más acertadas.

Y sí, enhorabuena por el libro y el gran trabajo que lleva, pero si el único "feedback" ha de ser "estupendo, todo perfecto", pues se avisa antes :). Por mi parte, termino aquí.

enero 12, 2013 | Unregistered CommenterKomorr

No entiendo porque se deben hacer comentarios tan ofensivos para dejar en claro una opinión. Opinar no es malo ayuda a la otra persona a mejorar esas falencias, existen formas mejores de presentar una opinión "tirarle mierda encima a otro es trabajo de los periodistas de farándula".

Felicitaciones por tu libro, lo voy a descargarlo para leerlo.

enero 17, 2013 | Unregistered CommenterPatricio Ascencio

Ya quiero ver a todos los críticos escribiendo un libro de buenas practicas.

enero 17, 2013 | Registered CommenterChristian Cabrejo J.

Leyendo los comentarios me he animado mas a leer el libro, es bueno saber las razones por las cuales las buenas practicas y patrones deben ser usadas y que mejor que partir de un codigo erroneo para explicarlo y para entenderlo.

enero 21, 2013 | Unregistered Commenterklinger

Muchas gracias Cecilio por escribir este libro y sobre todo por compartirlo.
Creo que está desarrollado con un método muy didáctico que lleva al lector paso a paso hacia lo que debe ser una programación sólida.
Creo que alguno de los puristas que se han rasgado las vestiduras deberían emplear su tiempo en enseñar lo que saben, pero de manera que se entienda.
Para enseñar no vale con ser el mas listo del corral, ademas hay que saber bajar hasta el nivel de los que quieran aprender, para llevarlos de forma natural hasta el nivel de los que quieren enseñar, y esto tu lo has hecho muy bien, felicidades.
Salu2, Ramón

enero 27, 2013 | Registered Commenterramonmico

Si tienen tanto tiempo para criticar ¿Porqué no hacen un verdadero trabajo constructivo y de muchas horas como lo hizo el autor de este libro, elaborando uno nuevo con todos sus conceptos para compartirlos con la comunidad? Yo pienso que los comentarios aquí se pueden transformar en sugerencias para mejorar el libro y no atacarlo en sí, ya que hay muchos trolls que critican y pocos con el ánimo y el tiempo como este señor, autor del libro, de escribirlo y ponerlo a disposición para su descarga gratuita.

enero 29, 2013 | Unregistered Commentersaiko

Muchas gracias Cecilio por el libro que has escrito. A pesar que tiene uno que otro pequeño error en los ejemplos (que los estoy anotando para enviártelos todo junto cuando termine el libro) en líneas generales encuentro que es un libro perfecto para mis necesidades.

Yo no sé realmente qué esperan los "haters" en estos comentarios. Opinar y/o criticar (constructivamente) está bien, pero pueden ahorrarse esas exclamaciones "¡Horror de horrores!" "¡madre mía!" y similares. Si hubieran puesto más atención era _OBVIO_ que el autor pone intencionalmente código """defectuoso""" en los primeros capítulos para que el iniciado en Java y/o Arquitectura (como yo) viera como iba evolucionando su solución.

Lo anterior es lo que más le destaco al libro. Como la solución de negocio que quiere implementar va evolucionando paso a paso hasta hacerla una aplicación digna de una arquitectura robusta y flexible que es lo que busca enseñar el autor. No te lanza ejemplos sueltos de cada patrón o principio que quiere explicar sino que primero lo define, muestra donde y por qué aplicarlo y el resultado de ello EN LA MISMA SOLUCION que va evolucionando. De verdad nos va mostrando paso a paso como hacer arquitectura, no como otros libros que te escupen ejemplos y definiciones sueltas.

Muchos libros en el área son un simple manual de referencia. Buscas en el índice lo que necesitas y vas a la página. Con el libro de Cecilio eso no es posible. Tienes que leerlo desde el principio o al menos entender lo que pasó en capítulos anteriores.

Después de urgar en muchos foros/blogs/pdf's del tema tanto en inglés como en español al fin encuentro un libro que explica (con peras y manzanas y con ejemplos seguibles) lo que es una arquitectura de software, o al menos sus prácticas más comunes.

Ya no tengo esa sensación de duda o ignorancia respecto al tema.

Un gran saludo

enero 29, 2013 | Unregistered Commenterrorro_chile

Agradezco ampliamente al autor del libro. Soy novato en el mundo de java y dia tras me estoy documentando para hacer mejor cada vez mejor las cosas. De entrada el libro me esta ayudando para avanzar paso a paso en temas que en algunos libros se me ha complicado entender por el nivel tan avanzado con el que se muestra el tema. Para las personas que estan criticanto tan duramente al autor me gustaría que mostraran donde puedo consultar su libro (articulo etc...) que hayan escrito de buenas prácticas que seguramente es buenisimo y me ayudaría mucho para seguir aprendiendo. Saludos.

enero 31, 2013 | Unregistered Commenterjmanuel_m

Muchas gracias Cecilio, por este aporte gratuito de tu parte, si el libro presenta errores los puedes corregir para una próxima versión, pero en general tu libro me parece un excelente recurso de referencia, felicitaciones.

febrero 23, 2013 | Unregistered Commenter@eds

Muchas gracias por el libro.

marzo 7, 2013 | Unregistered CommenterFerney

gracias por el aporte :)

marzo 8, 2013 | Unregistered Commenterflorentino

ah me olvidaba, que pena da esta gente, en vez de demostrar su conocimiento con aportes, se la pasan menospreciando los aportes que hacen otros, pudranse envidiosos

marzo 8, 2013 | Unregistered Commenterflorentino

No he leido el libro aun, el titulo me llamo mucho la atencion y quise leer los comentarios para ver que tal... El hecho de aportar a la comunidad ya tiene un valor y los comentarios me han parecido buenos tanto los 'buenos' como los 'malos'. No se debe confundir que las criticas son al libro y no al autor. Excelente que se pueda contar con una version mejorada del libro con todas las criticas aqui expuestas y las personas que han tenido mas experiencia puedan enriquecer el libro. En lo personal lo voy a leer y ojala que encuentre temas avanzados de arquitectura.

Estoy de acuerdo en 'no enseñar' malas practicas.... se debe indicar claramente que no esta correcto, asi los menos experimentados no inician mal... Tutoriales de java hay muchos... recoleccion de experiencias y temas avanzados y de arquitectura... creo que no muchos !!

Al autor mis felicitaciones y agradecimiento por tomarse el trabajo que muchos de nosotros ya quisieramos... y a los demas muchas gracias por sus comentarios.

Con mucho respeto!!

Jesus David.

marzo 13, 2013 | Unregistered CommenterJesus David

Hola,

Estoy siguiendo el libro, ahora mismo estoy en la página 302 (Spring Templates), y os cuento un poco mi experiencia:

Tengo una larga experiencia en programación Java SE y otros lenguajes "de escritorio" (Delphi y .NET, principalmente). También he hecho cosas web con PHP y Ruby on Rails, y tengo buenos conocimientos de seguridad web, SQL y patrones.

La verdad es que este libro es magnífico. PERO es una versión beta. No sé si es que el autor se hartó de escribir, pero le falta por lo menos un repaso general y grande.

Por normal general, en menos de una hora se hace un capítulo. El problema es que se necesita una hora más para dejar a la aplicación para que vuelva a funcionar. Hay errores, muchos errores. Se hacen modificaciones que rompen la aplicación, y no se cuenta. Se olvida de añadir jar's al proyecto, hay inconsistencias entre nombres de ficheros de capítulo a capítulo, etc. Además, estaría muy bien que se pudiera descargar el código fuente del proyecto que se hace en el libro, pero descargar de forma que se pueda ver en cada capítulo que es lo que se ha hecho...

A mi me está sirviendo mucho, estoy aprendiendo JEE muy bien, pero el libro necesita un GRAN repaso. Insisto, es cómo si fuera una versión beta.

mayo 15, 2013 | Unregistered CommenterFulanito de Tal

Hola Cecilio.

He visto una serie de comentarios sobre la forma en que has presentado el libro.

Bien, en lo personal me parece perfecto, es bueno ver un proceso evolutivo, desde lo terriblemente mal y como ir agregando los principios y patrones para lograr código de buena calidad.

Definitivamente difiero de aquellos que no son capaces de respetar la forma de ver las cosas de otras personas.

He leído algunos libros en 30 años de ejercicio de la profesión y la mayoría presentan todo por separado y se debe pasar largas horas escudriñando en montones de notas y libros para llegar a algún lugar.

Tu libro, en cambio, en pocas páginas muestra una serie de líneas muy útiles que he tomado de guía, como profesional se que no me puedo conformar con el contenido del mismo y no es porque no sea bueno, más bien es que estamos en una profesión que no deja de avanzar y aún no está escrita la última palabra ;)

Si es cierto que hay errores, pero me lo tomé como un reto personal, hasta que no logro hacerlo funcionar no avanzo, e incluso, luego de ir por la páginas 170 o más, empecé de nuevo y se aclararon algunos puntos que me había quedado borroso; entiendo que hay gente que prefiere que todos los libros funcionen de una y también es válido, jejejeje.

No más resuelva el asunto de los dólares (Vivo en Venezuela y tenemos control de cambio) compro tu segundo libro.

Ánimo, felicitaciones por el libro, ya se lo presenté a un colega y también le ha gustado mucho.

Lo mejor de lo mejor..

mayo 20, 2014 | Unregistered CommenterJorge Eastman

Yo pienso que el libro es un gran aporte a los desarrolladores que inician y tambien para los que estamos mejorando en conceptos de arquitectura. Creo que esta muy bien y claro no todos manejan bien los estandares de Java EE y por eso se la pasan criticando el contenido del libro. No crean que un libro les va a ensenar todo, sigan leyendo y se daran cuenta de que a veces en el trabajo debemos aplicar buenas practicas y tambien optimizar procesos. Cada quien debe elegir un modelo de desarrollo segun la necesidad.

mayo 30, 2014 | Unregistered CommenterVictor

Enhorabuena Cecilio

Aún no he leido el libro, he preferido primero leer las opiniones y he hecho bien porque tengo ganas de empezarlo. el problema de estas personas es que esperaban un tipo de libro de consultas rápidas donde se indique como hacer las cosas correctamente puesto que para hacerlas mal ya lo saben hacer ellos solos. El libro esta perfectamente enfocado de cara a la enseñanza de este maravilloso lenguaje. Muchas gracias por tu aportación

Saludos

junio 4, 2014 | Unregistered CommenterJavier

Es el primer libro que encuentro que relaciona los patrones de diseño con las diferentes APIs para alcanzar una explicación clara de como se puede mejorar un producto final. Y toda la explicación parte y finaliza con el mismo ejemplo simple. Felicitaciones.

junio 4, 2014 | Unregistered CommenterHernán

Felicitaciones y le animo a escribir una nueva version
No todo el mundo escribe un libro no es facil y yo ya quisiera tener le mio
Me sirve de mucho y los que saben pueden mejorar lo que deseen
les animos a todos que si algo no esta "como deberia" segun el conocimiento de cada uno nos remitan a sus trabajos, sus paginas , secciones de otros libros o anexen aqui lo que dicen debe ser correcto con ejemplos por suspuesto
Nuevamente Gracias por tan excelente aporte.

septiembre 7, 2014 | Unregistered CommenterWiliam Diaz

Felicitaciones Cecilio, la labor es monumental. lei alguno comentarios bastantes fuera de contexto, están viendo el árbol y no el bosque. Sería muy positivo, que complementaran el código del libro enviandolo con las buenas pácticas que sugieren y no solo con la critica. Adelante, voy a comprar y leer la versión 2014.

Saludos

noviembre 19, 2014 | Unregistered CommenterManuel Benítez Fajardp

Muchas gracias por el libro Cecilio me lo voy a leer, estoy retomando nuevamente el mundo Web asi que de algo me servirá tu aportacion. Dios te bendiga y te fortalezca día con día en la humildad como nos lo demostraste.

Saludos ...

diciembre 29, 2014 | Registered Commenterlinux-genesis

Acabo de leer el libro y me parece que es un gran libro que explica el funcionamiento de la aplicaciones Enterprise, si bien en los primeros capitulos se comenten faltas como la concatenaciòn, son sustituidos luego con Hibernate y JPA, me parece que la estructura del libro es perfecta inicia en el punto en que cualquiera iniciaria (si estas en universidad o comenzando a programar) pues inicias con funciones paso de parametros ( a mi me enseñaron asi) para luego explicar los modelos y paradigmas y luego usar framework, que dificil es para alguien incursionar en el tema de Frameworks, Cecilio muy buen aporte, te felicito espero la segunda version de ese libro un poco mas detallado pues me estanque en algunos puntos, saludos

enero 14, 2016 | Unregistered Commentercportocarrero

Estoy leyendo el libro y de verdad es una joya. Es cierto que hay cosas que pulir y otras que da por hecho que el lector conoce y no explica muy bien. Concuerdo con algunos comentarios en una segunda versión para seguir mejorando este gran aporte. De verdad amigo Cecilio, estoy agradecido por compartir tus conocimientos y las críticas de los puristas no desmerecen para nada el trabajo hecho. Si alguien tiene duda de la valía de esta obra, les recomiendo lo lea, no se arrepentirán de hacerlo.

abril 28, 2017 | Unregistered CommenterJBGoode

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>