Saltar al contenido

Etiqueta: desarrollo

Todo el software está roto

Alejandro Crosa nos trae una charla llamada Todo el software está roto, donde nos comparte sus experiencias en el proceso de desarrollo de software en grandes empresas con miles de clientes, donde ocurren todo tipo de cosas (creo que todos los hemos vivido en nuestro trabajo pero a menos escala). Por ejemplo, en organizaciones como LinkedIn con mas de 200 millones de usuarios, cosas de que solo pueden pasar una vez en un millón, pues le ocurren a 200 usuarios y pues es una cifra significante, o cuando centésimas de segundo de carga por millones de visitas realmente importa.

En fin, te recomiendo ver esta charla que está en español para que disfrutes esas experiencias de Alejandro y notemos como esas empresas comenten errores, como cualquier otra organización.

¿Tienes una experiencia similar? Coméntanos.

Deja un comentario

Cloud 9 un entorno de desarrollo en la nube

Hace unas semanas debido a una fuerte gripe, me tocó trabajar en casa para un trabajo que debía hacer una oficina donde tenía mi computadora con todo el entorno de desarrollo configurado. Sin embargo en la organización tenían configurado el servicio Cloud9 para poder trabajar remotamente.

Cloud9 es un completo entorno de desarrollo y ejecución en la nube, permitiéndote desde tu navegador web crear y ejecutar software web. El mismo posee un editor muy parecido a Sublime Text (de hecho muchos atajos del teclado son iguales), acceso a la terminal de un servidor y la posibilidad de configurar dependencias necesarias para ejecutar el programa: servidor web, framework, base de datos, etc.

Entorno de desarrollo de Cloud9
Entorno de desarrollo de Cloud9, todo se está ejecutando desde el navegador

El espacio de trabajo

El uso de Cloud9 es muy sencillo, primero debes configurar un espacio de trabajo (Workspace), actualmente (al menos en la versión gratuita) te ofrece entornos como LAMP, Django, NodeJS, puro HTML, Rails, entre otros. Luego de seleccionar el entorno especificas asignas un repositorio de control de versiones (creo que es impensable hoy en día hacer un proyecto sin eso), para obtenerlas fuentes, haces las configuraciones requeridas por tu aplicación y listo. Luego se encarga de correr los servicios necesarios y puedes acceder a tu aplicación web desde una URL.

Plantilla de espacios de trabajo disponibles en Cloud9
Plantilla de espacios de trabajo disponibles en Cloud9

¿Por qué usarlo?

La principal ventaja de usar Cloud9 es poder escribir el código de un programa, guardar, cambiarte de equipo o de localidad y seguir escribiendo código el mismo código sin problemas. Aunque puedes sacrificar privacidad (en la licencia no se ve nada extraño) es muy útil en casos donde trabajas en distintos lugares y no puedes cargar tu portátil (en mi caso me muevo entre casa, universidad y oficinas de clientes pero por la inseguridad no puedo cargar mi portátil en todos lados). Otro caso, como en el que descubrí la herramienta, en organizaciones pueden usarlo como respaldo en caso que un empleado necesite trabajar desde su casa u otro lugar de forma urgente.

Algo interesante, es que en pocos segundos puedes tener un entorno de ejecución funcional. Con unos clics puedes tener un servidor web hecho Django y empezar a trabajar en él (o estudiarlo), luego con otros clics tienes un entorno en Ruby. Lo cual es mas fácil que estar instalando dependencias y configurar servicios en tu sistema operativo.

El editor está realizado en Javascript y tecnología detrás de ella es un servidor NodeJS que crea contenedores en Docker, me parece interesante esta arquitectura. Algo que me parece «fácil» de replicar en otros servidores y poder contar con una solución similar.

Si deseas contar con IDE y entorno de ejecución que puedas usar en cualquier computadora sin estar descargando cosas, te recomiendo utilizar Cloud9. Lo único es que como toda nube, dependes de un tercero y a veces puedes desconfiar de la seguridad del mismo o de la calidad de protección de los datos. Aunque, me parece un buen entorno para aprender tecnologías o hacer experimentos rápidamente.

Sitio oficial de Cloud9

1 comentario

Auto-completación de código PHP con YII en Netbeans

Netbeans es mi IDE favorito desde hace años y últimamente me ha tocado realizar varios proyectos usando el framework Yii. Para todo desarrollador / programador es una realidad que no conocemos en totalidad un lenguaje o framework y por ello siempre estamos acudiendo a la documentación  para repasar sintaxis y nombre de métodos, sobre todo de las variables u objetos manipulados en cierto momento. Por eso, es bueno configurar el IDE para que auto-complete el código y muestre la documentación de funciones para leer conocer el funcionamiento sin tener que cambiar de ventana.

Hace unos días descubrí en la documentación oficial como configurar Netbeans para trabajar con Yii. Y les explico aquí como realizarlo:

  • Entra al menu File (Archivo), luego a Project properties (Propiedades del proyecto) y finalmente a PHP Include Path (Ruta de cabeceras de PHP) e incluimos la ruta donde se guarda el framework de yii, de hecho la carpeta se llama «framework».
  • Luego entramos a Tools (Herramientas), luego a Options (Opciones), hacemos clic en la pestaña superior de Miscellaneous (Misceláneas) y hacemos clic en Files (Archivos), luego del paréntesis agregamos «yiilite\.php» para que quede algo como «^(yiilite\.php|CVS|SCCS|….»
  • Reiniciamos Netbeans y veremos como ahora se autocompleta el código, al momento de instaciar clases accederemos a sus métodos y documentación.

Para el caso de algunas vistas parciales donde recibimos objetos que no están declarados en el archivo, podemos decirle al IDE que tipo es cada variable usando la siguiente sintaxis:

/* @var $this MyController // @var $model MyObject */
$this->metodo() // se puede escribir usando auto completación
$model->id; // se puede escribir usando auto completación

Con estos sencillos pasos se hará mas fácil la escritura de código php usando Yii en Netbeans.

Completado de código PHP con Yii en Netbeans
Completado de código PHP con Yii en Netbeans
5 comentarios

Code Complete: Excelente libro para toda persona involucrada en el desarrollo de software

Hace unos días logré luego de unos meses terminar este libro tan largo pero muy valioso. Empecé a leer este libro por un artículo que vi por ahí donde recomendaban 10 libros indispensables para el desarrollo de software, este fué el segundo que escogí para leer y realmente me gustó porque cubre todo los aspectos del desarrollo de software: recolección de datos del cliente, diseño, arquitectura, desarrollo, pruebas, mejoramiento de procesos, trabajo en equipo, y mas.

A diferencia de «El programador pragmático«, Code Complete esta enfocado no solo a desarrolladores sino a cualquier persona que trabaje en esta rama, tiene capítulos dedicado al puro diseño del software, otros a diseño de interfaces gráficas, otro a como trabajar en equipo y tratar con los clientes. Sin embargo, si eres programador o desarrollador este libro es obligatorio que lo leas, te enseña a como programar mejor con ejemplos de código, como realizar pruebas automatizadas para mejorar tu productividad, como hacer código mantenible y entendible, selección de herramientas y tecnologías, etc.

Portada de Code Complete
Portada de Code Complete

Realmente vale la pena leer el libro, son casi 1000 páginas pero cada una de ellas lo vale. Incluso si dominamos los temas expuestos allí sirve de repaso volver a leerlos, o como me pasó a mi en muchos capítulos de temas que «conocía»: aprendí nuevas cosas y aprendí a mejorar hábitos existentes. Si eres una persona graduada o con experiencia en desarrollo de software, debes leer este libro de lo contrario es mejor esperar porque el libro exige tener cierta experiencia, para alguien nuevo puede ser muy útil pero mas difícil de comprender el contenido.

Si desean adquirirlo, pueden descargarlo o comprar Code Complete desde Amazon.

3 comentarios