martes, 29 de diciembre de 2015

Generación de metainformación de elementos de código.

Así que la ultima versión de C# incorpora nameof como palabra clave para poder quitarnos de en medio bastantes de las horribles cadenas mágicas que el framework nos obliga a escribir.

Muy poco a poco, gracias a los genéricos, expresiones lambda, funciones y tipos anónimos, dynamic, expando, etc, nos estamos quitando una enorme cantidad de cadenas mágicas del código.

En mi opinión nameof se queda corto. Yo por mi parte llevo años utilizando una plantilla T4 que se encarga de generar metainformación de las estructuras de datos de un proyecto en tiempo de diseño, para luego poder utilizarla en tiempo de ejecución sin tener que usar ni la lenta reflexión en tiempo de ejecución ni las horribles cadenas, que me organizarán un pifostio enorme el día que cambie una triste clase en código fuente. A ver cuando MS se pone las pilas y hace algo parecido pero que este bien integradito en el VS y tenga más flexibilidad.

lunes, 28 de diciembre de 2015

Help wanted

Últimamente estoy metido en demasiadas movidas. Bots de Telegram, procesadores de lenguaje en  NodeJS y forks de github.

Con respecto a los forks de github, tengo uno a medio terminar para un pull request pero no doy abasto. Concretamente se trata de un fork de Newtonsoft.Json al que le estoy agregando soporte mejorado para GUID, URI y todas esas clases en .NET que en realidad son cadenas y/o churros de números que se han convertido en clases en el framework para ofrecer un mejor manejo.

TODO por orden de importancia:

Soporte GUID para versiones .NET < 4.0 (no exite TryParse y hay que currárselo a mano)
Test unitarios para todo el soporte nuevo de GUID.
Soporte URI todas las versiones.
Test unitarios para todo el soporte nuevo de URI.

Si algún espabilado tiene ganas de ponerse al tema es libre de clonar mi repositorio y ofrecer sus cambios.

Happy coding bastardillos.

jueves, 3 de diciembre de 2015

Los colorines que importan.

Ya he comentado en algún caso que todo buen desarrollador de software que se precie debe tener una mente despierta con respecto a los malos olores que puede desprender el diseño e implementación de un sistema de información.

Una cosa que ayuda a detectar estos malos olores es escoger los colorines adecuados en el editor de código fuente. Esto ofrece una ayuda visual para detectar esos malos olores.

martes, 1 de diciembre de 2015

Extensiones de Visual Studio Gratuitas

Para que no se me olviden, para ayudar a otros a encontrarlas y para que la gente comente sus extensiones favoritas y la lista se haga más larga, aquí va:


  1. Automatic Versions: Incremento automático de versiones de los ensamblados. Probablemente no siempre interese con la moda de CI&D y sus build bots, pero siempre está bien saber que lo tenemos.
  2. Build Vision: Visualización del proceso de build más cómodo y bonito. Una pijada tonta que me gusta tener.
  3. Code Maid: Formateo, limpieza, reorganización, etc. Comodidad sin pagar un chavo.
  4. Configuration Transform: Crea transformaciones automáticamente para cada configuración de build. Te quita curro oye.
  5. GhostDoc:  Para la documentación XML del código. También quita trabajo.
  6. JavaScript Parser: Productividad para JavaScript. Si a ti se te pone el pelo verde, como a mi, cuando tienes que leer JS de otro tío esta extensión te ayuda un poquito.
  7. Code Digger: Pequeña ayuda para ver lo mal que programas. Buena sinergia con Code Cotracts, MS Fakes y Test Unitarios.
  8. PowerShell Tools: Ahora que todo es PowerShell en el mundo MS esto te da una buena integración con VS.
  9.  Productivity Power Tools: Puñado de utilidades en el editor. Dicen que aumenta la productividad.
  10. Solution Dependency Viewer: Ayuda para ver lo mal que diseñas y la basura super acoplada que te esta quedando.
  11. SpecFlow: El Cucumber para .NET que tengo instalado y nunca he probado. ¿Alguien tiene algo que comentar sobre esta herramienta?
  12. T4 Editor: Yo soy muy fan de las plantillas T4. La versión gratuita es un poco capada pero aun así es útil.
  13. Visual F# Power Tools: Antes veías cine de autor Sur Coreano; ahora programas en F#. Eres un poser que va de indie pero ¡hey! tienes tus Power Tools como todo hijo de vecino.
  14. Web Essentials: Un porrón de cosas útiles y chulas para el desarrollo web. Incluso te inyecta mierda en el navegador del cliente para que perres tu app. Algún día aprenderé a utilizarla...
  15. LINQBridgeVS: Promete un montón ya que LINQPad me encanta pero no soy capaz de que me funcione en VS2013.