Publicidad

RSS java

Voy a hablar de las herramientas que considero imprescindibles para un desarrollador Java, en concreto para desarrollo J2EE. Puede que alguna se pueda obviar, como por ejemplo, Maven, pero la verdad es que yo no puedo vivir sin él. No incluyo en la lista la maquina virtual, es obvio que sin eso no puedes hacer nada:

Lo primero es un IDE. Yo uso el Eclipse, que es el mas extendido, es opensource y es el que mas plugins tiene. Yo aconsejo descargarlo desde este enlace. Es una aplicacion web que te permite crearte tu propio paquete de plugins y descargarlo todo en un zip. Es muy útil para trabajar en un proyecto en equipo, ya que puedes distribuir ese zip entre los programadores, y te ahorras tiempo instalando los plugins desde el propio IDE. Otras opciones son Netbeans de Oracle (antes de SUN) o el premiado Intellij IDEA. Este último es comercial, aunque tienen edición community.

Apache Ant o sucedáneos. Es una herramienta para realizar tareas, como puede ser compilar y empaquetar un proyecto, aunque puedes configurar todo tipo de tareas, como desplegar un war en un servidor de aplicaciones, o subirlo por ftp por ejemplo. Utiliza un lenguaje XML para definirlas en un fichero build.xml en la raíz del proyecto. Se integra muy bien en la mayoria de los IDEs. Existen en el mercado alternativas mejores que ant, como Gradle o buildr, pero ant esta muy implantado y sigue siendo el que mas se usa. Apache Maven. Como ya he comentado, no puedo vivir sin maven. Es una herramienta de gestión de proyectos. Tiene infinidad de plugins. Su caracteristica mas útil, es que te descarga y añade a tu classpath las librerias que usa tu proyecto. Solo tienes que definirlas en un fichero xml. La mayoria de IDEs lo soportan. Para Eclipse, necesitas instalar m2eclipse de SonaType. Un sistema de control de versiones no puede faltar, ni con java ni con cualquier otro lenguaje. El que mas he utilizado es Subversion. La mayoría tienen plugins para los IDEs mas conocidos. Un editor de texto ligero con coloreado de sintáxis. Yo uso Notepad++ o PsPad en windows. En linux uso el GEdit. Cygwin. Es como un emulador de linux sobre windows. Siempre lo instalo cuando trabajo en windows porque no me gusta su terminal. Puedes instalar muchos programas de la linea de comandos de linux que puedes elegir en el instalador. Putty. Sirve para conectarse a un terminal remoto por SSH o telnet desde windows. Si estoy en linux, utilizo el comando ssh desde el terminal. Un frontend para la base de datos. Dependera con cual este trabajando. Ahora mismo utilizo DbVisualizer. Navegador con depurador JavaScript. Estoy usando Chrome, que viene con un depurador muy bueno. Antes usaba Firefox junto con el plugin Firebug. Servidor de aplicaciones. Actualmente uso el Glassfish. Bugtracker. Imprescindible para llevar un seguimiento de los bugs. Actualmente uso Jira, que es el mas extendido. Tambien he usado Redmine, Trac y Bugzilla. Uso un plugin para el eclipse, que me permite conectarme al bugtracker, ver los bugs disponibles y gestionarlos sin salirme del IDE. Servidor de integración contínua. Uso Jenkins (hasta hace nada llamado Hudson). Sirve para programar los builds de los proyectos. Para configurar los “builds” lo habitual es conectarlo con el servidor de control de versiones. Puedes configurar que ejecute tareas de ant, ‘goals’ de maven por ejemplo o cualquier otro tipo de script. Google. Imprescindible, esto lo usamos todos los programadores, de cualquier lenguaje. Una aplicación de notas. Yo uso Evernote. Es un programa para crear notas y capturar páginas web o fragmentos de estas. Yo lo utilizo para almacenar artículos y tutoriales interesantes para futuras referencias, o fragmentos de código, todo clasificado por carpetas y etiquetas. Dispone de aplicación para Windows, Mac, Android e iOS que se sincroniza con la aplicación web . Servicio de almacenamiento en la nube. Yo uso Dropbox. Lo utilizo para guardar documentos relacionados con Java, como manuales de referencia de diversas tecnologías y frameworks. Teniendolos en un sitio, ahorro tiempo a la hora de consultarlos. Repositorios de código opensource. Github, google code y sourceforge. Muchas veces busco código que me pueda ser de utilidad en el proyecto que estoy trabajando. Papel y lápiz. A pesar de todos los avances tecnológicos, aún uso este primitivo modo de escritura, jeje.

Estas son las herramientas que yo considero imprescindibles, aunque puede haber más, dependiendo el proyecto en el que este trabajando.

Metaprogramación en runtime con Groovy

14 Comentarios
Metaprogramación en runtime con Groovy

Una de las características que hacen de Groovy un lenguaje tan potente es su capacidad de Metaprogramación. El hecho de que sea un lenguaje dinámico (opcionalmente como ya vimos) hace que podamos postponer hasta tiempo de ejecución ciertas comprobaciones y decisiones que normalmente se harían en tiempo de compilación. Así podremos interceptar, inyectar e incluso sintetizar nuevas clases y métodos bajo demanda en tiempo de ejecución.

La metaprogramación es una técnica avanzada que básicamente nos permite escribir código que escribe código. Este tipo de técnicas, que a priori pueden no significar nada, hacen que podamos resolver nuestros problemas con un enfoque distinto y en ocasiones la solución puede ser mucho más elegante, eficiente y adecuada que si usamos un enfoque más tradicional.

Si eres desarrollador Java probablemente te vengan a la cabeza reflection, programación orientada a aspectos o incluso manipulación de bytecode o generación de código y pienses que esto es algo muy complicado, ¡nada más lejos de la realidad!
En este artículo nos vamos a centrar en la Metaprogramación en Runtime de Groovy, veremos qué es, cómo y por qué funciona en Groovy y explicaremos las distintas técnicas con ejemplos de código para que todo se entienda mejor.

Leer más »

¿Por qué deberías pensar en Gradle 3.0 como sustituto de Maven?

10 Comentarios
¿Por qué deberías pensar en Gradle 3.0 como sustituto de Maven?

Hace unas semanas el equipo de Gradle presentó la esperada versión 3.0 de esta herramienta open source de construcción de software. Aunque en el mundo Java el lider lleva siendo durante mucho tiempo Maven ya es hora de dejar atrás los interminables archivos XML de configuración y dar el paso algo más moderno y potente como Gradle.

En este artículo veremos las principales novedades de la versión 3.0 que puede que os den el empujón que falta para que migreis de Maven a Gradle.

Leer más »
Publicidad

Los 12 canales de Youtube de desarrollo en Español que merece la pena seguir

20 Comentarios
Los 12 canales de Youtube de desarrollo en Español que merece la pena seguir

Youtube es la nueva televisión, dicen unos. Youtube es la nueva universidad, dicen otros. Nosotros ni idea, que la túnica de Rappel no nos sienta nada bien (y la macedonia en el pelo de Paco Porras menos), pero lo que sí sabemos es que entre la marabunta de canales que hay en Youtube, entre tanto Rubius, Dalas y Wismichu, hay unos cuantos dedicados al desarrollo y en español. De entre ellos hoy te vamos a seleccionar los 12 canales de Youtube de desarrollo en Español que merece la pena seguir. ¡Al turrón!

Leer más »

Entendiendo la inmutabilidad: Qué es, para qué sirve y cómo usarla

9 Comentarios
Entendiendo la inmutabilidad: Qué es, para qué sirve y cómo usarla

En estos años en los que los lenguajes funcionales están empezando a convertirse en alternativas reales en casi todos los ámbitos, uno de los conceptos que suele venir asociado a ellos es el de la inmutabilidad.

Si bien es cierto que la inmutabilidad es una idea que no es exclusiva de la programación funcional, sí que cobra una importancia vital en este tipo de lenguajes.

La programación funcional se asienta sobre muchos conceptos matemáticos que requieren de la inmutabilidad para seguir siendo válidos.

Aún así, creo que es un concepto que es interesante de entender independientemente del tipo del paradigma de programación que utilices.

Leer más »

13 trucos y consejos de PHP que pueden hacerte la vida (profesional) más fácil

34 Comentarios
13 trucos y consejos de PHP que pueden hacerte la vida (profesional) más fácil

PHP tiene bastante mala prensa. En las conferencias no hay ponente que quiera ser cool que no lance su pullita hacia PHP y los phperos. Y lo cierto es que las múltiples atrocidades que los desarrolladores de PHP cometen (cometemos) envalentonados por su flexibilidad y sencillez tienen buena parte de culpa. Sin embargo si lleva tantos años siendo el lenguaje más utilizado para el desarrollo web, por algo será. En las siguientes líneas te daremos algunos trucos, consejos y buenas practicas (13 en concreto) de PHP para que tu código sea mejor, tu vida profesional más agradable y puedas ir a los congresos de desarrolladores con la cabeza alta y sin esconder el elefante. Hey ho, let's go!

Leer más »

Kotlin desde el punto de vista de un desarrollador Groovy

13 Comentarios
Kotlin desde el punto de vista de un desarrollador Groovy

Últimamente se está oyendo hablar cada vez más de Kotlin en el entorno de la JVM. Los desarrolladores Java y sobre todos los desarrolladores Android están entusiasmados con este nuevo lenguaje que promete ser una revolución para ellos.

Pero, ¿qué supone Kotlin realmente para un desarrollador Groovy? En GenbetaDev ya hemos hablado anteriormente tanto de Kotlin como de Groovy, así que si quereis conocer más en detalle ambos lenguajes os recomiendo echar un vistazo a ambos artículos. En esta ocasión os voy a contar mi experiencia desde el punto de vista de un desarrollador Groovy al usar (y aprender) Kotlin durante una semana.

¿Estás prepado? ¡Qué comience el combate!

Leer más »
Publicidad

Usando MVP e inversión de dependencias para abstraernos del framework en Android

19 Comentarios
Usando MVP e inversión de dependencias para abstraernos del framework en Android

Desde hace unos años se habla mucho sobre temas de arquitectura en Android, y quien más quien menos ha oído hablar de MVP (Model-View-Presenter), y de cómo usarlo para hacer las vistas (normalmente Activities o Fragments) lo más simples posibles, mientras el Presenter se encarga de toda la lógica de presentación.

Normalmente, una de las reglas que suelen imponerse es que desde el Presenter hacia abajo, ninguna de las capas sepa nada sobre Android, para aislarnos de ella, con todos los beneficios que ello conlleva. Seguramente, si te has puesto a ello por primera vez, rápidamente te surgirán dudas sobre cómo implementar esto.

Leer más »

Automatizando el testing de web móviles: Appium + Nightwatch.js

3 Comentarios
Automatizando el testing de web móviles: Appium + Nightwatch.js

Cada vez más, el tráfico que reciben los sitios web procede de dispositivos móviles, y nuestras pruebas, como los desarrollos, deben ir cada vez más hacía el 'mobile first', es decir, nuestras pruebas web deben realizarse pensando primero en los dispositivos móviles. Según el artículo 'Internet stats & facts for 2016' de hostingfacts.com:

There are more mobile internet users than desktop internet users; 52.7% of global internet users access the internet via mobile, and 75.1% of U.S. internet users access the internet via mobile

A esto debemos unir que en los entornos encaminados hacía el 'continuous delivery' en los que trabajamos, no tiene sentido que estas pruebas sean manuales. Si queremos ser eficientes, y rápidos en la entrega de valor, debemos tener baterías de pruebas automáticas, que se ejecuten en una cierta variedad de dispositivos, y que nos permitan asegurar que nuestros sitios web cumplen con el nivel de calidad que hemos decidido.

Leer más »

Mejora tu código Java usando Groovy

20 Comentarios
Mejora tu código Java usando Groovy

¿Y por qué querríamos mejorar nuestro código Java? Seguro que en más de una ocasión escribiendo Java has pensado que es muy verboso o que seguro que tiene que haber una forma más fácil y sencilla de hacer esto. En ese caso, Groovy es para ti.

Apache Groovy es un lenguaje dinámico, opcionalmente tipado, con posibilidad de tipado y compilación estáticos para la JVM. Tiene como objetivo multiplicar la productividad de los desarrolladores gracias a una sintaxis concisa, familiar y fácil de aprender. Se integra sin problemas con cualquier programa Java e inmediatamente proporciona a una aplicación poderosas características como scripting, DSLs, metaprogramación en runtime y compile-time y programación funcional.

Leer más »

Testeando tus aplicaciones Java con Spock: tests más expresivos, fáciles de leer y mantener

3 Comentarios
Testeando tus aplicaciones Java con Spock: tests más expresivos, fáciles de leer y mantener

No es ninguna sorpresa que en el mundo Java la herramienta de test más utilizada sea JUnit si tenemos en cuenta que fue creada hace más de 15 años. Esto, sin embargo, no implica que sea la mejor, sino que en muchas ocasiones seguimos utilizando las mismas herramientas por inercia o porque aquí siempre se ha hecho esto así sin plantearnos si existen alternativas mejores. Una de estas alternativas es Spock.

Spock es un framework de tests basado en Groovy que podemos utilizar para testear tanto aplicaciones Java como Groovy. Con Spock podemos escribir tests muy expresivos, fáciles de leer y mantener. Todo ello es posible por dos motivos principalmente: el magnífico DSL que proporciona Spock y la potencia de Groovy, lenguaje con el que escribimos los tests.

Leer más »
Publicidad

Ver más artículos