Hace poco he terminado un bonito proyecto en Java. Como yo creo en eso de la educación continua y demás tonterÃas, pues me he matriculado en la universidad con la esperanza de complementar mi tÃtulo de fÃsica. Hasta ahora, sólo programaba en C++ y en PHP a la hora de hacer páginas web (hace tiempo que todas las páginas que hago usan una base de datos y código para construir lo necesario sobre la marcha, nada de HTML estático para mÃ). Pues bien, con esto de volver me he tenido que meter con Java y qué descubrimiento. Estoy enamorado. He abandonado definitivamente C++ y PHP.
Ahora sólo Java.
Mientras dure.
A lo que iba. Para la clase de Java (en realidad se llamaba TecnologÃas Orientadas a Objetos, pero podemos considerarlo Java nada más) mi proyecto consistÃa en un buscador en Google de términos médicos, haciendo uso del api que publicaron hace unos meses. El api en cuestión permite realizar búsquedas y algunas cosillas interesantes, pero con algunas limitaciones muy limitantes. Aún asÃ, el mundo está lleno de gente muy lista e ingeniosa y corren algunos ejemplos muy buenos de lo que se puede hacer con esa herramienta.
Sigo. Mi proyecto no se limita a buscar en Google. Lo que hace es buscar primero en un diccionario médico (en inglés), obteniendo una lista de sinónimos, y luego realiza tantas búsquedas como sean necesarias por cada uno de los sinónimos más el término original. El resultado en un árbol en el que cada sinónimo tiene la lista de páginas que Google devuelve como resultado. Por ejemplo, “stroke” ofrece sinónimos como: “cerebral seizure”, “Cerebrovascular accident”, “aploplexy” o “Apoplectic attack”. Opcionalmente, permite exportar el resultado como un archivo XML. La idea es que uno puede no estar buscando por el término más adecuado y que la página que realmente le interesa usa otra palabra para hablar de lo mismo.
Para montarlo todo tuve que usar, aparte de los apis, threads, procesamiento XML y Swing para el interfaz gráfico. Incluyendo mi favorito: patrones.
Además, era preciso presentar diagramas UML del proyecto. De UML no tenÃa más que muy vagas nociones, pero con ayuda de UML Distilled me fui haciendo una idea y descubrà también los diagramas de secuencia que me parecen simplemente perfectos para entender lo que se supone que está pasando.
Como evidentemente no sabÃa nada de Java, pero partiendo de C++, aparte de los libros habituales compré también Effective Java de Joshua Bloch. Otro descubrimiento. No es un libro para aprender Java, sino un libro para, no sé cómo decirlo… perfeccionarlo una vez que uno lo ha aprendido. El carácter es casi filosófico, en el sentido de que describe más bien una aproximación vital al lenguaje, la forma de usarlo para sacarle el mejor partido. Está dividido en pequeños capÃtulos, muy jugosos, que pueden leerse en cualquier orden y que están bien cargados de chicha. El libro perfecto para convertirse en un gurú.
Pues eso, que me lo he pasado pipa este último cuatrimestre. Y que me he convertido en un javero más. Ahora, a por el próximo proyecto.
—–









