Makefiles como dejar de memorizar comandos en docker – Developer Vago

Si has trabajado con docker, o si lo has probado, seguro que te has dado cuenta de la cantidad de comandos que tiene y la cantidad de opciones posibles. Para simplificarme un poco la vida he estado buscando información y lo que más util me resulta es crear un pequeño Makefile con los comandos que más utilizo.

making waves
Elizabeth Donoghue – making waves

Así que hoy voy a contar algunos trucos y consejos sobre Makefiles y para que veáis la cantidad de comandos que hay aquí os dejo la lista:

Continúa leyendo “Makefiles como dejar de memorizar comandos en docker – Developer Vago”

“Clean Code” sin escribir una linea de código

Como desarrolladores nuestro trabajo es escribir código que ayude a resolver problemas, ni más ni menos que eso. Resolver problemas. Leemos libros como Clean Code, Software Craftmanship,… estamos al día de las últimas tendencias sobre programación, conocemos lenguajes, frameworks, en definitiva intentamos cada día hacerlo un poco mejor.

Pero, ¿es todo escribir código? da igual que sea PHP, Python, Javascript o Java nuestro día a día es resolver problemas y hacerlo bien. Una de las razones podría ser no generar demasiada deuda técnica y que nuestro código tarde más en convertirse en legacy code.

8314862395_bfef0bb766_z
One Shell Square

Además debemos luchar contra los deadlines,  así que en este post vamos a ver una serie de consejos para escribir mejor código sin escribir código.

Continúa leyendo ““Clean Code” sin escribir una linea de código”

Don’t be STUPID: SOLID and GRASP

Has oído hablar de SOLID? Seguramente: Es un término que describe una colección de principios para “buen código” que fue acuñado por Robert C. Martin (aka “uncle bob“) nuestro gran evangelista del “clean code”.

La programación está llena de acrónimos como este. Otros ejemplos son DRY(Don’t Repeat Yourself!) y KISS(Keep It Simple, Stupid!). Aunque obviamente hay muchos, muchísimos más.

Continúa leyendo “Don’t be STUPID: SOLID and GRASP”

Trabajando con parches, mejorando proyectos usando patch

Si necesitamos hacer un cambio en un proyecto que está dentro nuestro directorio vendor, ¿como hacer ese cambio de manera ágil y luego poder “transplantarlo/integrarlo”.

Todos tenemos dependencias en nuestros proyectos, seguro que os ha pasado, que estamos desarrollando una funcionalidad en un proyecto A y para poder completarla necesitamos “tocar” un proyecto B que es una dependencia de A. Tenemos al proyecto B dentro de nuestra carpeta vendor y tenemos que modificarlo, ¿cómo hacemos esto de manera ágil?

La manera más ortodoxa de crear una funcionalidad en el proyecto B que necesitamos para terminar una funcionalidad en A sería: abrir el proyecto B, crear una rama, realizar dichos cambios y testearlos, integrar la rama en master, subir de versión el proyecto B. Ir al proyecto A, crear una rama, modificar el composer, actualizarlo y empezar con la funcionalidad de B. Como veis, es sencillo pero un poco largo, es más puede que nos ea una funcionalidad, sino que tenemos que solucionar un bug importante, ¿como lo hacemos de manera más ágil? Creando un patch

Continúa leyendo “Trabajando con parches, mejorando proyectos usando patch”

Buenas prácticas y consejos para desarrollar en PHP (Recopilatorio)

Llevo algo de tiempo programando en PHP, al principio mi código era horrible pero poco a poco he ido aprendiendo más y más sobre buenas prácticas, SOLID, naming, uso de herramientas para mejorar el código (PHP Mess detectorPHP code Sniffer…). Además la serie de post sobre refactoring PHP legacy code he podido poner en práctica muchos de estos conocimientos.

Este post es un recopilatorio de buenas prácticas y consejos que he ido aprendiendo en estos últimos meses.

Instalación de PHP

Antes de empezar a desarrollar tenemos que tener bien configurado PHP y el archivo de configuración php.ini es esencial.

  • date.timezone -> tener bien definido la zona horaria nos evitará muchos quebraderos de cabeza.
  • charset -> trabajar con UTF-8.
  • error_reporting -> tener diferentes entornos (producción, desarrollo,…) y que cada uno notifique errores distintos.
  • Extensiones -> Instalar extensiones como XDebug,, mycript, intl,Imagemagick.*

Utilizar Composer

Existen miles de librerías en PHP, github esta lleno de componentes que puedes sernos muy útiles para ayudándonos en nuestro día a día. Librerías par manejar CSV, para log, para manejar peticiones HTTP,… Para gestionar todas estas dependencias creo que lo más útil es utilizar composer.

Continúa leyendo “Buenas prácticas y consejos para desarrollar en PHP (Recopilatorio)”

algunos comandos útiles para git

Hace ya tiempo vengo coleccionando algunos comandos útiles para Git, así que he decidido tenerlos por aquí para no olvidarme. Además haciendo una pequeña búsqueda buscando consejos sobre Git interesantes, como este post. Por ello vamos a escribir algunos consejos/trucos/comandos sobre Git.

Comprobar los merges

Si normalmente trabajamos con “una rama por tarea” o con varias ramas a la vez podemos tener el repositorio bastante “sucio”. Así que lo mejor es de vez en cuando limpiarlo.
¿Como saber que rama podemos eliminar y cual no?

Continúa leyendo “algunos comandos útiles para git”

Review de generadores de sitios html estáticos

Llevo un tiempo dándole vueltas a  esto de WordPress. Actualmente escribo los post en Word (sí en Word) ya que hay veces que no dispongo de conexión a Internet y porque conozco algunos de los atajos rápidos de teclado. El problema es el formato, al pasarlo a WordPress no queda como me gustaría y además a veces Word es un poco “caprichoso” con el estilo.

Así que me he puesto a buscar soluciones alternativas y una de ellas es utilizar Markdown. Para quien no lo conozca es un lenguaje de marcado ligero con el que añadir formato fácilmente a textos web, para utilizarlo en WordPress solamente es necesario un plugin

.

Aunque me ha picado el gusanillo de utilizar alguna herramienta que genere páginas estáticas, como Jekyll(http://jekyllrb.com/ ), Hyde(https://github.com/hyde/hyde ), pelican (https://github.com/getpelican/pelican/), Nikola (http://getnikola.com/), secondcrack(https://github.com/marcoarment/secondcrack), Spress (https://github.com/yosymfony/Spress). Como podemos ver hay muchísimas, por ello vamos  a probar unas cuantas y comentar sus impresiones.

Jekyll

Es de los generadores estáticos más utilizados, está escrito en Ruby y por ello es necesario tenerlo instalado en Windows. Podemos utilizar Markdown y tiene muchos plugins. Aquí podemos encontrar una lista de personas que utilizan Jekyll https://github.com/jekyll/jekyll/wiki/Sites

Continúa leyendo “Review de generadores de sitios html estáticos”

OpenXava, NaviOX y una aplicación de facturación completa

Hace ya bastante tiempo que hablamos de crear una aplicación con OpenXava y nos pusimos a crear clases, a modelar,…  siguiendo el libro Aprende OpenXava con ejemplos. Hasta ahí todo bien, lo que pasa es que Openxava ofrece muchísimas más cosas y que mejor que las descubramos mediante un post.

Hoy hablaremos sobre un proyecto creado en OpenXava que está en Sourceforge, este proyecto se llamado AcmeOX(http://sourceforge.net/projects/acmeox/)  es una aplicación de facturación realizada con OpenXava para mostrar la potencia del framework.

Además también me llego una noticia sobre NaviOX(http://www.openxava.org/es/naviox) que es un llamémoslo “contenedor de aplicaciones”. NaviOX proporciona a nuestra aplicación Seguridad (usuarios y roles) y navegabilidad. A mí personalmente me sirve para ir probando la aplicación a medida que la voy desarrollando, ya que es muy ligero y me ahorra tiempo a la hora de ir probando/ configurando diferentes entornos.

Creando un proyecto

Lo primero es tener configurado OpenXava, aquí en el blog hay algún artículo sobre esto, sino siempre tienes este manual: http://www.openxava.org/es/quick-start/1c aunque yo recomiendo la instalación del Capítulo 4 del libro “Aprende Openxava con ejemplos” disponible aquí http://www.openxava.org/es/book los 5 primeros capítulos.

Continúa leyendo “OpenXava, NaviOX y una aplicación de facturación completa”

Creando un demo con Spring Roo

Aprovechando que he instalado el paquete STS de Spring para desarrollar aplicaciones con Spring MVC, me he decidido a hacer una pequeña demo con Spring Roo.

Spring Roo es una herramienta de desarrollo rápido de aplicaciones o RAD, que permite el desarrollo de aplicaciones Java EE de forma muy productiva y cómoda para el desarrollador.

Así que allá vamos. Basándome en el tutorial http://static.springsource.org/spring-roo/reference/html/beginning.html intento explicar aquí el mismo ejemplo pero adaptado a mi configuración del equipo (utilizando Eclipse, Maven…)

En este artículo vamos a construir paso a paso y de manera rápida una aplicación web utilizando Spring Roo.

Antes de empezar es necesario descargar Spring Roo y descomprimirlo en algún lugar. Después cuando le demos a crear proyecto Spring Roo tendremos que seleccionar esta carpeta.

Este diagrama representa de manera simplificada el dominio del problema

Creando el proyecto

La configuración que tengo en mi equipo y las aplicaciones que tengo instaladas son:

–          Eclipse Juno

–          Spring Roo descargado

–          JDK instalado

–          Plugins de eclipse M2Eclipse, Spring Tool Suite

–          PostgreSQL o cualquier otra BD relacional

–          Xampp En realidad con Tomcat sería Suficiente

–          Tengo configurado Maven para desplegar directamente en  Tomcat  (Está en un post anterior 😉

Continúa leyendo “Creando un demo con Spring Roo”