Archivo

Posts Tagged ‘Desarrollo’

Metodologías ágiles en el desarrollo de software (2 imágenes)

Anoche durante la cena estuvimos hablando del desarrollo de software, y de las ventajas de las metodologías ágiles respecto a las tradicionales. Rápidamente surgieron 2 imágenes que teníamos en mente, y describen 2 aspectos fundamentales.

  • Desarrollo iterativo incremental.
  • Cercanía del cliente durante todo el proceso.

La primera es todo un clásico:

La segunda incluye el concepto de producto mínimo viable:

agileDevelopment2

Fuente: @madhava

 

Mejorar el estilo al programar reduce riesgos

Muy buena charla (y con su dosis de humor), aunque centrada en Javascript, los conceptos generales son aplicables a cualquier lenguaje.

La idea es reducir reducir riesgos mejorando el estilo al escribir código, siendo homogéneo, dejando el código lo más legible posible (esto incluye no pasarse de inteligente), y buscando eliminar las posibles ambigüedades de cada lenguaje.

Fuente:

Categorías: Desarrollo, Videos Etiquetas: , ,

11 pasos para convertirse en un mejor programador

Categorías: Desarrollo Etiquetas: ,

Recomendación libro sobre jQuery: «Beginning jQuery»

¿Qué es jQuery?

Jquery una utilísima librería para Javascript. Según la Wikipedia:

«jQuery es una biblioteca de JavaScript que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web.»

jQuery en Wikipedia

«Beginning jQuery»Beginnigjquery

«Beginning jQuery» de Jack Franklin está destinado a desarrolladores sin conocimientos (o muy bajos) en jQuery, con unas pequeñas nociones de Javascript.

Basado en ejemplos (desde declarar una variable jQuery, a implementar un plugin de una llamada AJAX a una API, o un visor de imágenes), de lectura rápida y fácil.

Extra – Curso básico de Javascript

Si estáis interesados en comenzar con Javascript (o incluso aprender las nociones iniciales de programación) os recomiendo el curso de Javascript de Codecademy. Si ya sabes programar te servirá para ir cogiendo la sintaxis de Javascript (y lo finalizarás en 2 sentadas), y si no sabes programar, a comenzar a aprender (en este caso llevará más de 2 sentadas…).

Actualización 1: Otra forma de empezar con jQuery:

Actualización 2: otra buena introducción a Javascript:

 

Recomendación libro sobre patrones de diseño: «Head First Design Patterns»

El libro «Head First Design Patterns» (de la editorial O’Reilly) aunque ya tiene unos años, me parece una de las mejores formas de adentrarse en el mundo de los patrones de diseño.

Cover of "Head First Design Patterns"

Cover of Head First Design Patterns

Los patrones de diseño constituyen un punto fundamental de estudio si quieres programar decentemente.

¿Qué es un patrón de diseño?

Un patron de diseño es una arquitectura específica orientada a resolver un problema conocido, buscando optimizar la calidad del diseño, permitiendo la ampliación del mismo realizando la menor cantidad de cambios en el resto del código.

Como indican en el libro, los patrones de diseño son un conjunto de herramientas que debemos tener en la cabeza para utilizarlas cuando sea apropiado.

¿Por qué «Head First Desing Patters»?
El libro es bastante ameno, sencillo y rápido de leer. Está muy orientado a ejemplos, y va ofreciendo diferentes explicaciones a la resolución de cada problema, de modo que se comprenda bien el por qué de cada diseño. En el capítulo de introducción explican la metodología que han seguido en su redacción,  buscando mejorar la atención del lector para facilitar su lectura (y está bien planteado, por eso se deja leer con facilidad).

Además de patrones de diseño, va acumulando, y demostrando, un conjunto de buenas prácticas en el diseño de aplicaciones orientadas a objetos (que como todos sabemos, se basan en: la encapsulación, herencia y polimorfismo), como por ejemplo:

  • Encapsular lo que varía.
  • Favorecer la composición sobre la herencia.
  • Programar sobre interfaces, no implementaciones.
  • Las clases deben ser abiertas para la extensión, pero cerradas para la modificación.

El libro me parece muy bueno para quien se está iniciando en el estudio de patrones de diseño, o para quien tenga pocos conocimientos sobre el tema, para un progrador senior seguramente se le quedará un poco corto.

¿Qué patrones abarca?

No trata todos los patrones de diseño, pero si los principales. Éstos son los patrones que están incluidos en el libro (os enlazo su definición en la Wikipedia):

Cómo podéis ver no he listado el archiconocido Modelo – Vista – Controlador (MVC), que no deja de ser una combinación de varios de los patrones incluidos en la lista (el libro tiene un capítulo dedicado a la combinación de patrones donde se detalla en profundidad el MVC).

Para programar bien, además de mucha mucha práctica, hace falta leer, leer, y leer… este puede ser un buen libro para empezar.

WebGL: Tecnología de escritorio pasada a la Web

Poco a poco se va logrando migrar tecnologías pensadas para ser ejecutadas en local sobre un PC  hacia los navegadores Web. En este caso, al ver los resultados obtenidos utilizando WebGL inmediatamente me recordó las horas haciendo prácticas en la universidad utilizando OpenGL (una API estándar destinada a diseñar aplicaciones con gráficos en 3D) sobre C++:

  • Las texturas,
  • la iluminación,
  • el efecto niebla…

Pero con la importante diferencia de estarlo viendo a través del navegador Web, y no desde una aplicación nativa en el PC.

WebGL es un estándar multiplaforma de uso gratuito que amplía las capacidades de Javascript para el renderizado de gráficos 3D, mostrándose sobre un control canvas de HTML5 . Y mi primera sensación fue acertada, ya que detrás del desarrollo de WebGL está el consorcio sin ánimo de lucro Khronos, quienes son también responsables de OpenGL, y del que forman parte muchos de los grandes actores del mundo tecnológico como son Apple, Google, Intel, Mozilla…

Como ejemplo, su desarrollo más conocido hasta ahora, una pequeña demo del famoso Quake 3, (a mi me ha funcionado sobre el Google Chrome) para estar funcionando a través del navegador Web los resultados son más que llamativos (en la web de Chrome Experiments hay unas cuantas demos bastante interesantes).

Uno de los ejemplos típicos cuando se habla de renderizado es la imitación del agua:

No falta mucho para que WebGL llegue  al usuario final, por ejemplo, Google ya tiene una opción para habilitarlo en Google Maps. En el siguiente vídeo nos explican la inclusión de esta tecnología en estos mapas:

Gracias a que es un estándar, y de libre uso, cualquier desarrollador que lo desee puede utilizarlo, y cualquier navegador puede implementar su especificación en cuanto se lo proponga (ya está soportado por Firefox, Chrome  y Safari, el Internet Explorer, para variar, va a lo suyo…), incluso navegadores de los teléfonos móviles, en los que el HTML5 se ha convertido ya no sólo en la mejor opción para realizar Webs con una interfaz elaborada (hasta el punto de poder llegar a reemplazar las aplicaciones nativas de cada plataforma por una aplicación Web desarrollado sobre HTML5 y CSS3, el Financial Times ya lo hizo hace unos meses, al igual que Playboy), si no que se ha quedado sin su gran rival al haber desistido Adobe del desarrollo de Flash para el navegador de estos dispositivos.

Me parece importante resaltar el hecho de que esta tecnología es multiplataforma, de modo que el mismo desarrollo puede funcionar en Windows, OS X, GNU/Linux, iOS, Android… siendo esto muy interesante para cualquier desarrollador, ya que supone un importante ahorro de tiempo al no tener que hacer una versión diferentes para cada plataforma.

Categorías: Desarrollo, Internet, Videos Etiquetas: , , ,