Dash

dash

Cuando hablamos de las vacaciones y la posibilidad de tener la documentación off-line y las APIs de los lenguajes o componentes con los que estamos trabajando, apareció el nombre de Dash, la primera aplicación que sugería la posibilidad de disponer de toda esa información en local, evitando así el consumo elevado de datos o la incapacidad de conocimiento cuando estamos off-line.

Dash se trata de una aplicación sólo disponible para Mac y iOS que nos permite tener en nuestro local la documentación y APIs de cerca de 300 lenguajes y frameworks, entre ellos Angular, Bootstrap, CSS, Docker, Java EE8, MongoDB, Python, R, Swift, etc, algo idóneo para estas fechas de viajes y vacaciones. Pero además, cuenta con gran cantidad de funcionalidades que lo convierten en un imprescindible entre las herramientas de desarrollo de cualquier lenguaje.

Entre las funcionalidades más interesantes encontramos la posibilidad de descargar los hilos de Stack Overflow relacionados con la API que queramos, algo útil, incluso lo más útil, cuando estamos desarrollando. También cuenta con la posibilidad de crear snippets, o fragmentos de código, para agilizar el proceso de descarga, además, estos snippets podrán llevar asociados un tag para mejorar las búsquedas en un futuro. Otra función de los más útil son los playgrounds, es decir, la posibilidad de tirar código y probarlo al más puro estilo CodePen, aunque no disponible en todos los lenguajes debido a la complejidad que entrañaría.

El contar con aplicación para iOS, también es un punto a su favor, pues podremos tener nuestro manual de bolsillo disponible en todo momento, pudiendo enlazar ambos dispositivos y tener los docsets sincronizados. Pero no solo termina aquí la sincronización, si no que también posee integración con gran cantidad de IDEs, como por ejemplo con Atom, Sublime Text, Eclipse, Coda.

Habría que añadir el diseño cuidado y simple que favorece el uso, también que los recursos están actualizados a las últimas versiones, y algunos detalles como vista nocturna, o Dark mode, o la posibilidad de crear marcadores o un buscador por API que ayuda cuando tienes gran cantidad de documentación disponible.

Por todo ello, lo que son más que suficientes argumentos, Dash se ha convertido en una herramienta necesaria y un must en cada Mac con el que se quiera desarrollar. Para terminar, y lo mejor de todo, es que se trata de una herramienta gratuita, aunque existe una versión de pago para disponer de todas las mejoras y usar Dash sin limitaciones por 24,99€.

Página web oficial de Dash.


Documentación offline

error-connexion

Ahora que llega el verano, que se tiene más tiempo libre y que nos gusta salir del ambiente habitual y escaparnos a sitios remotos, nos encontramos con los problemas de conectividad típicos que hacen la vida de los desarrolladores más difícil, perdemos la conexión y no podemos consultar las guías de desarrollo, APIs y demás recursos online, con lo que el trabajo se ralentiza o nos fundimos la tarifa de datos.

En estos casos es necesario disponer de la mayor cantidad de documentación offline y para eso existen algunas herramientas útiles como Dash, solo para plataformas Mac y iOS, Zeal, la copia imperfecta de Dash para el resto de plataformas o DevDocs, un portal de APIs offline que posee una extensión para Google Chrome para cuando no tengamos acceso a internet.

Dash, el originario de los tres presentados, posee una gran cantidad de APIs, integración con IDEs y editores de código, además, una característica que lo convierte en una herramienta más potente para el desarrollador es la posibilidad de crear snipplets o fragmentos de códigos, etiquetarlos y así poder acceder a ellos de manera rápida y precisa, ahorrándonos tiempo de desarrollo. También cuenta con aplicación para iOS teniendo un manual de referencia de bolsillo en todo momento.

Zeal, la solución para Windows y Linux, comparte las características principales de Dash, de hecho, el desarrollo fue compartido con ayuda de gente de Dash. La única características con la que no cuenta se trata de la creación de snipplets y el diseño no esta tan logrado como su homónimo de Mac, algo que hace que la experiencia no sea tan perfecta como con Dash.

Por otro lado, y con la filosofía de las dos anteriormente mencionadas, se creó DevDocs, un portal desde el que podemos crear nuestro repositorio de APIs como una extensión de nuestro navegador favorito, yo lo he probado en Safari y Google Chrome y funciona de una manera excelente. Lo único que tendremos que hacer es descargarnos las APIs que queramos, cuenta con cerca de 300, y añadirlo a nuestros marcadores. Aunque al ser una página web tenga sus inconvenientes, el uso necesario del navegador y la pérdida de la usabilidad respecto a una aplicación nativa.

Así que ya no es un problema irse de vacaciones con la pérdida de productividad que puedas tener, con Dash, Zeal o DevDocs, o la combinación de algunas de ellas, puedes seguir desarrollando desde cualquier parte del mundo sin conexión.

Publicado el

Refactorizando

Refactorizar, para algunos desarrolladores la palabra más amarga que podría escuchar, para otros, en cambio, se trata de una religión. No hay desarrollador que se preste que no se haya encontrado con un código deprimente, ofuscado y confuso que requería de una refactorización extrema.

Si bien es cierto que no hay nada como un buen diseño y análisis previo antes de ponerse a crear un sistema de cero, no siempre se dispone de los elementos necesarios para que estos se den, ya sea por falta de planificación, de gente cualificada para ello o simplemente por pura desidia. Pero con el paso del tiempo, la falta de análisis se convierte en una amalgama de estilos, desarrollos y evolutivos que convierte un código en una entidad compleja de evolucionar o tan siquiera de mantener. Por eso, y para evitar seguir tirando el tiempo en un futuro, conviene dedicarle unas cuantas horas a la refactorización de código.

¿Que es refactorizar?

Según dicen por ahí, […] el término refactorización se usa a menudo para describir la modificación del código fuente sin cambiar su comportamiento, lo que se conoce informalmente por limpiar el código. La refactorización se realiza a menudo como parte del proceso de desarrollo del software: los desarrolladores alternan la inserción de nuevas funcionalidades y casos de prueba con la refactorización del código para mejorar su consistencia interna y su claridad… Totalmente de acuerdo con la definición, queda totalmente claro eso de limpiar el código y más importante aún, mejorar su consistencia interna y su claridad.

Por donde empezar

Evidentemente no siempre es fácil refactorizar, no sólo por la complejidad que puede entrañar un código realizado por otro desarrollador, sino por la parte heredada dentro del negocio y la funcionalidad integrada que pueda tener, convirtiendo cualquier cambio en crítico, aunque para evitar cualquier incompatibilidad o fallo existen las pruebas, tanto las unitarias como las de integración y de regresión.

Para que esta experiencia sea más agradable existen decenas de buenas herramientas que nos ayudarán en esta ardua tarea a la que todo desarrollador se debe enfrentar para mejorar su código y su manera de programar. Entre estas herramientas se encuentra https://sourcemaking.com/refactoring de SourceMarking, que nos ofrece consejos y técnicas para afrontar la refactorización. Todas las pautas son ilustradas con ejemplos reales, explicados a fondo y ofreciendo soluciones sencillas de implementar.

Todo ello para mejorar nuestra deuda técnica y tener unos informes positivos en SonarQube, herramienta que evalúa la calidad de nuestro código en función a unas reglas básicas que la mayoría deberíamos implementar en nuestro desarrollo. Más adelante hablaremos de SonarQube y de como su integración nos puede ayudar a ser mejores programadores y a dotar de mayor calidad, claridad y consistencia a nuestros proyectos.


Vapor, framework Swift

Vapor se trata de un framework de reciente creación, estamos hablando de aproximadamente un par de años desde que vio la luz, que nos permite usar Swift también desde el lado del servidor.

Que quiere decir esto, que podremos crear toda la parte del negocio o backend en el nuevo lenguaje de Apple. Esto es una nueva vía que en un futuro se extenderá para aquellos que conozcan Swift y no quieran montar sus aplicaciones en otros lenguajes.

Nos prometen que será sencillo de usar, 100 veces más rápido que algunos frameworks que se usan para Ruby o PHP y que es seguro, algo muy de actualidad en estos últimos días. Dispone de su espacio en Github donde podremos localizar toda su documentación y ejemplos para iniciarnos y parece que una amplia comunidad que nos podrá ayudar a resolver nuestras dudas y problemas.

Tal vez sea el momento de darle la oportunidad a este framework que promete el uso exclusivo de Swift para montar cualquier aplicación o sistema web.

Enlace a Vapor


Codility

Codility se trata de una plataforma de evaluación de capacidades y aptitudes para los programadores. Tanto para empresas como para profesionales del ámbito de la programación, intentan conectar a ambas partes y dar herramientas a las expresas para evaluar a sus candidatos.

Si eres programador, se trata de una plataforma interesante para mejorar tus habilidades como programador, ofreciéndote retos por medio de código y evaluando tus resultados y premiándote. Además sirve para dar visibilidad a tu perfil y pasar a formar parte de un catálogo de profesionales en los que las empresas que usen el sistema podrán conocerte.

Para las empresas, la plataforma ofrece servicios de gestión de candidaturas con rankings de valoración de los candidatos, gestión de posibles plagios y funcionalidades para la creación de pruebas de manera sencilla. Además de tener acceso a cientos de desarrolladores filtrados por niveles y lenguajes.

Enlace: Codility