Hoy quiero hablarles de algunas herramientas que para algunos son ya de uso común como en mi caso no se cuantas horas de mi vida he pasado frente a Netbeans desde el 2009 que lo adopte como mi IDE predilecto dejando Eclipse a un lado, y para otros quizás sean algo nuevas.
Quiero dejar en claro que solo voy a mencionar herramientas, si aún no sabes programar en Java te recomiendo que aprendas desde ya! por que este lenguaje de programación es muy importante y más ahora con Android dominando el mundo.
Sistema Operativo: Contar con un sistema operativo donde nos encontremos cómodos, y que tengamos el control del mismo para resolver problemas rápidamente. Yo aprendí a programar en Windows 2000 no me pregunten como hacia, pero desde entre el el mundo de linux con Red Hats 7 he adoptado linux como mi herramienta principal de trabajo actualmente uso debian… aun recuerdo como sufría con debian sarge pero ahora no puedo ni navegar por la Web o escuchar música sin Debían.
Oracle Java SDK: Vamos a comenzar con la herramienta más importante el JDK de Java, ya me van a decir que es más que obvio pero tengo que mencionarla ya que es el corazón de un programador Java.
Adoptar un buen IDE: En mi caso estoy usando Netbeans de Oracle ya que me parece menos complejo que Eclipse por el tema de los plugins que tienes que instalar muchos que para mi deberían venir incluidos.También tengo que mencionar el premiado Intellij IDEA. Este último es comercial, aunque tienen edición community, si te fijas bien este IDE tiene mucho parecido a Android Studio y por razones obvias su core de base de este. Yo lo descargue y ando metiendo mano pero aun sigo haciendo mi trabajo con Netbeans pero ya casi voy a migrar.
Apache Ant: 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 mayoría de los IDEs. Existen en el mercado alternativas mejores que ant, como Gradle o buildr, pero ant está muy implantado y sigue siendo el que más se usa.
Apache Maven: No se como alguna vez pude vivir sin usar maven. Es una herramienta de gestión de proyectos. Tiene infinidad de plugins. Su caracteristica más útil, es que te descarga y añade a tu classpath las librerías que usa tu proyecto. Solo tienes que definirlas en un fichero xml.
Sistema de control de versiones: No puede faltar, ni con java ni con cualquier otro lenguaje. El que más he utilizado es Subversion y para administrar usuarios y permisos USVN. Subversion tienen plugins para los IDEs más conocidos. También existen otros como Git que es uno de los más importantes y que estoy comenzado a usar con Gitub, y también tengo que mencionar CVS que fue el que me dio a conocer este tipo de herramientas. Al igual que Maven hoy en día no puedo iniciar un proyecto si no tengo el codigo en un control de versiones.
Un editor de texto con coloreado de sintaxis: Muy util para revisar nuestro código rápidamente en algún momento, yo uso Gedit que viene incluido en linux para aquellos que aún se encuentran en el lado oscuro (Windows) pueden usar Notepad++ o PsPad.
La terminal: Es muy útil e importante para tener accesos a los logs de los servicios usando el comando tail, o hacer búsquedas entre código con el comando grep, tener conexiones remotas por SSH, reiniciar servicios como las base de datos, entre otras funciones. Si tienes Windows… bueno que te puedo decir… puedes usar Putty para conectarse vía SSH al servidor que seguro estará en Linux.
Un frontend para la base de datos: Depende con cual base de datos estemos trabajando. En mi caso uso PgAdmin para postgresql, Mysql Workbench para mysql, SQL Developer si estoy trabajando con Oracle, es muy importante tener esta herramienta para crear o consultar nuestra base de datos.
Navegador con depurador JavaScript: En los desarrollos J2EE basados en Web siempre es necesario el navegador web, yo estoy usando Chrome, que viene con un depurador y una consola muy útil. Antes usaba Firefox junto con el plugin Firebug.
Servidor de aplicaciones. Actualmente uso el Glassfish por que su administrador es muy completo además de que es muy estable, existen otros que también he usado como tomcat, JBoss, IBM Websphere, Oracle WebLogic.
Bugtracker: Imprescindible para llevar un seguimiento de los bugs. Actualmente uso Jira, que es el más extendido. Tambien he usado Redmine, Trac y Bugzilla. algunos IDE tienen plugins, que me permite conectarme al bugtracker, ver los bugs disponibles y gestionarlos sin salirme del mismo.
Servidor de integración contínua: Uso Apache continuum. 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. Tambien he usado Jenkins.
Google: Es Imprescindible, esto lo usamos todos los programadores, de cualquier lenguaje si no googleas no puedes ampliar tus conocimientos y crear código de calidad.
Una aplicación de calendario: Yo el calendario de Google para recordar fechas de entrega o días importantes.
Manejo de correo electrónico: Yo uso el que todo el mundo usa Gmail.
Google Drive: Es importante documentar en todas las etapas del desarrollo y que mejor herramienta que google drive que se puede compartir con todo el equipo de trabajo y tener siempre nuestra documentación actualizada.
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. Teniéndolos en un mismo sitio y así ahorrar tiempo a la hora de consultarlos. También uso Mega para guardar herramientas que son complejas de encontrar en la nube.
Consular los repositorios de código open source: Siempre consulto los repositorios de Github, google code y sourceforge. Muchas veces busco código que me pueda ser de utilidad en el proyecto que estoy trabajando.
Mi cuadernito y un lápiz: Siempre necesito escribir mis dudas en una hoja para entenderme mejor, algunos necesitamos crear en papel antes de comenzar a realizar algo nuevo.
Herramientas en Línea para validar JSON: Si estoy desarrollando servicios web restful o consumiendo estos servicios siempre es necesario pasar el payload a Java en estos casos uso jsonschema2pojo o si solo quiero validar el payload uso jsonlint
No se si me falto mencionar alguna otra, pero en general estas son las que herramientas con las que paso mas tiempo por decirlo de alguna manera.
Hello
I want to like this script
can you help