El IDE como parte esencial del desarrollo (Parte I)

Todos los ejemplos fueron creados usando la versión de prueba Webstorm 10. Por simplicidad de sintaxis se utilizó javascript.

«En ese instante gigantesco, he visto millones de actos deleitables o atroces; ninguno me asombró como el hecho de que todos ocuparan el mismo punto, sin superposición y sin transparencia. Lo que vieron mis ojos fue simultáneo: lo que transcribiré sucesivo, porque el lenguaje lo es.» El Aleph – J.L.Borges

Lo simultáneo y la eliminación de los pasos intermedios

Sobre esos dos conceptos, que están cerca de ser el mismo, hablaremos en los siguientes artículos.

Borges hablaba en 1945 de las limitaciones inherentes al lenguaje; hoy, humildemente trasladamos ese concepto al campo que nos ocupa.

¿Cuántas veces nos encontramos con obstáculos para llevar a cabo una tarea que en nuestra mente existe de forma completa? Sabemos cómo debe quedar, sabemos en qué estado se encuentra; pero nos vemos forzados a seguir una serie de pasos mecánicos y propensos a errores hasta obtener el resultado.

Es entonces cuando identificamos un foco de ineficiencia: «el método debe obedecer a nuestra forma de pensar, y no a la inversa».

La multiedición

La premisa es sencilla: si he de hacer cambios idénticos, bien podría hacerlos simultáneamente.

name2
Add selection for next ocurrence

name3
Column selection
Rename
Rename

Generación de código

Lo afín no siempre es simultáneo, la afinidad puede incluso ser inesperada. Esto es común en la documentación, la configuración, la definición de métodos y en casi todo lo que sea estático o rigurosamente estructurado.

Nuestra estrategia, entonces, radica en que lo sucesivo y similar puede ser réplica (total o parcial), y la réplica es trabajo del autómata.

Live templates

Un template no significa nada nuevo, pero la inserción arbitraria de código (en forma de template) es a la vez radical y fácil de adaptar a nuestro proceso.

Live templates
Live templates

Generación desde referencia

Antes mencionamos que el método debe obedecer a nuestra idea. No es inusual acotar nuestra atención a los elementos más representativos de un problema, postergando la implementación de métodos, clases, atributos o getters y setters.

La ausencia no debe ser un obstáculo.

Create Method
Create Method

Emmet

Emmet
Emmet (http://emmet.io/)

La extracción de código

La idea subyacente es: «Si dos cosas son similares, bien podrían ser una».

Muchas veces, a diferencia de lo que hemos visto, no todo se trata de creación o inserción.

Más de una vez nuestras manos (o manos ajenas) se han adelantado a un proceso de planificación, resultando en duplicados. Nuevamente, es el autómata quien debe adecuarse al estado de la realidad. 

Extract method
Extract method
Extract variable
Extract variable

«…el hombre posee entonces la entera certeza de que no conoce ni un sol ni una tierra, sino solamente un ojo que ve ese sol, una mano que toca esa tierra…» Schopenhauer

Navegación

Es un tema extenso, pero la idea central es más bien concisa: cualquier camino es el correcto.

Schopenhauer hablaba de la mano y la tierra; nosotros de la definición, la implementación y un tema que no por ser corriente deja de ser problemático: uno no siempre sabe dónde está cada cosa.

Navigate
Navigate

 


En esta primera parte se abordaron las funcionalidades que creemos indispensables en cualquier entorno de desarrollo y aquéllas que causaran un impacto directo y consistente en el trabajo diario. En el siguiente artículo se ahondará en la integración con VCS, plugins y soluciones a problemas menos genéricos.

Tags

Access top talent now!

Related

Get in Touch