el blog de los proyectos de Olga Berrios

Programación

¿Cuántas herramientas son necesarias para programar una web o una app?

De la manera más sencilla que puedo, explico para qué sirven algunas de las herramientas que estamos aprendiendo en el curso de Ruby que estoy haciendo. Mi intención es que veáis la cantidad de cosas que hacen falta, o que te pueden ayudar, a poder programar un sitio.

Por cierto… estas son sólo unas pocas… ¡aún no ha acabado el curso!

SublimeText

Es nuestra principal herramienta: un editor de código. La extensión para los archivos es .rb, así que un ejemplo de archivo es “Programa.rb”.

Consola

Es nuestra segunda herramienta. Con ella vamos ejecutando y probando lo que programamos.

2 examples - 0 failures

En esta captura, a la izquierda la consola y a la derecha Sublime. La consola, además, está ejecutando un test con Rspec.

Pry

Es un complemento para mejorar la consola y poder editar código en ella y buscar bugs.

Scrapfy

Es un editor de código online. Es útil para trabajar en equipo o pasarle a una o varias personas un código. Simplemente eliges el lenguaje que vas a usar y te genera una página de edición. En ella incluyes el código. Para compartir, sólo tienes que enviar el enlace del editor.

scrapfy-frontpage

Portada de Scrapfy

Captura de pantalla de 2015-07-07 14:24:27

Varias personas a la vez jugando con una pantalla de edición en Scrapfy. Abajo veis la ristra de personas, a la derecha un chat.

Git

Es un sistema para controlar las versiones de tu código. Lo habitual (y cutre) es ir guardando las versiones en archivos numerados cuando vas a cambiar cosas importantes y no quieres arriesgarte a perder el trabajo avanzado, ¿no? Algo del tipo “Programa01.rb”, “Programa02.rb”, etc. Este programa, que se maneja desde la consola, va guardando las versiones de cada archivo y puedes recuperarlas en cualquier momento, sin necesidad de que crees nuevos archivos para cada versión.

Github

Es un sistema para guardar y compartir en la nube tus programas y las versiones de estos. Está muy relacionado con el anterior.

Sinatra

La primera semana sólo pasamos el tiempo programando y viendo los resultados en una consola. A veces te preguntas: ¿y todo este código cómo se muestra luego en una web? Sinatra es una herramienta que nos muestra los resultados, que conecta casi todo. Necesitas, además de la herramienta y los archivos de código Ruby (recuerda, los de extensión .rb), otros archivos de código HTML y CSS.

El lenguaje HTML pone la estructura de la web, el CSS le da formato (colores, tamaños, etc) y Ruby le da la interactividad: que puedas hacer cosas más de pulsar enlaces o mandar formularios. Por ejemplo: crear cuentas de usuarias, calcular cosas, realizar búsquedas, etc.

Una curiosidad técnica es que Ruby va embebido en código HTML, se le llama desde el archivo de HTML para que realice las acciones. Es decir, aunque tú estés viendo una única web, y puedas pensar que se trata de un único archivo, ésta puede estar compuesta por un archivo de HTML (o varios), uno de CSS (o varios) y uno de Ruby (o varios)… y quizá incluso otros lenguajes. Uno va llamando al resto y cogiendo lo que necesita.

Sinatra también se usa desde la consola.

Rspec

Es una aplicación que te ayuda a automatizar el testeo del código. En lugar de probarlo continuamente en la consola, estableces algunos resultados que esperes que dé con ejemplos concretos. Si al programar los resultados esperados de los ejemplos no se consiguen, sabes que algo estás haciendo mal. Aunque también es posible que la automatización esté mal hecha, de manera que bromeamos a menudo con que tenemos que testear el testeo, …luego testear el testeo del testeo… y así en bucle.

También la usas desde la consolas.

¡Muchas herramientas más!

Estas, como digo al principio, son solamente algunas herramientas. Faltarían algunas imprescindibles como un servidor, algo para subir los archivos, etc. Os dejo esta captura de pantalla de una presentación que nos hicieron. (¡Gracias, Jessica!)

Muestra los logos del montón de herramientas y servicios que han necesitado para construir llollo, una app para solicitar el servicio de un/a aparcacoches.

llolloapp-tools

Leave a Reply