Compartir fragments de codi amb GIST + Sublime

Com a desenvolupadors, sovint ens trobem fent tasques força semblants (i de vegades idèntiques) a d'altres que ja hem fet prèviament. A aquest post explicaré com mantenir una biblioteca amb control de versions per tal de trobar fàcilment, reutilitzar i compartir fragments de codi amb tothom (o amb unes persones determinades), tot integrat al nostre flux de treball habitual.

Depenent de la complexitat, les bones pràctiques de Drupal aconsellen utilitzar features, mòduls personalitzats o fins i tot perfils d'instal·lació per a no repetir-nos innecessàriament i estalviar molt de temps i minimitzar errors. Malgrat tot, hi ha vegades en què només volem reutilitzar petites parts de codi que fan una funcionalitat molt petita o un efecte molt concret i no val la pena (o directament no és possible) crear un mòdul per a això. Aquest és l'escenari perfecte en què administrar una biblioteca de fragments de codi pot ser-nos realment útil. Tot i que és probable que ja tinguem la nostra pròpia biblioteca de codi, això no és suficient si volem compartir-la i si volem trobar-la amb altres membres de l'equip o amb la comunitat. Una manera d'aconseguir-ho és fer servir dues eines ben conegudes: Sublime text i els Gist de Github.

Instal·lar i configurar el paquet Gist a Sublime

Aquestes instruccions assumeixen que ja tenim instal·lat Sublime Editor i que ja tenim un compte d'usuari a Github. Si encara no has fet alguna d'aquestes coses hi ha molts motius per a fer servir aquestes dues eines (de debó) i hi ha molta documentació sobre com fer-ho.

  1. Instal·lar Package Control for Sublime Editor, que és un gestor de paquets que facilita molt la tasca de trobar, instal·lar i actualitzar paquets dins de Sublime. Per a fer-ho només cal obrir la consola de sublime (ctrl+`) i enganxar el codi proporcionat al web oficial, que a més també proporciona instruccions més detallades: https://sublime.wbond.net/installation
  2. Instal·lar el paquet Gist package fent servir Package Control. Caldrà executar la Command Pallete fent servir la combinació de tecles ctrl+shift+p (Win, Linux) o cmd+shift+p (OS X) i escriure el nom del paquet.
  3. Configurar el plugin de Gist per tal d'enllaçar-lo al teu usuari de github.
    1. Accedir al teu compte de Github i generar el token que es farà servir per al paquet Gist.
      Pot fer-ho fent clic a l'enllaç https://github.com/settings/applications i a més, Github té una documentació molt ampliada sobre aquest aspecte a aquesta pàgina.
    2. Obrir l'arxiu de configuració del plugin GIST  i enganxar-hi el token que hem creat al pas anterior. Aquest arxiu s'obre automàticament la primera vegada que volem executar una comanda des de la Command Pallete o pot trobar-se al següent menú: Preferences/Package Control/Gist.
    3. (Opcional) Omplir la resta de configuracions opcionals que proporciona el plugin, totes elles detallades a aquest document.

Utilitzar el paquet Gist

El paquet Gist proporciona un seguit d'opcions a les que s'hi accedeix a través de la Command Pallete. El nom de totes elles és auto-explicatiu però les següents són les més utilitzades:

  1. Insert a gist: mostra una llista de tots els gists del teu compte i inserirà el contingut del gist seleccionat allà on tinguem el cursor.
  2. Open a gist: mostra una llista de totes els gist del teu compte i obrirà el fitxer que conté el gist seleccionat a una pestanya nova, per tal de modificar-los i desar-los.
  3. Create a private gist: crea un gist que només serà accessible per al seu creador i qualsevol persona que tingui la seva url exacta.
  4. Create a public gist: crea un gist públic que pot ser vist, copiar, modificat i comentat per tothom.
  5. Add a file into gist: afegeix l'arxiu que tinguem obert i seleccionat a un gist existent. Cal recordar que un gist pot contenir diversos arxius.
  6. Update a gist: actualitza el gist actual i fa un push amb els canvis al repositori de gist.

Utilitzar el paquet de Gist és senzill: només cal cridar-lo des de la Command Pallete i després seleccionar l'opció desitjada (consell: la majoria d'opcions proporcionen la seva dreçera de teclat que es mostra a la dreta del menú de la Command Pallete).

Editar, compartir i comentar fragments de codi a Gist

Potser sigui un pèl tard explicar això ara, però els Gists són bàsicament petits repositoris amb una breu descripció que idealment hauria de contenir un arxiu amb un fragment de codi, tot i que hi ha escenaris que requereixen la utilització de diversos arxius. Les descripcions són importants, ja que són l'única forma que tenim per a cercar (i trobar) un gist del nostre perfil o dels contribuits per la comunitat. Això vol dir que la descripció ha de ser realment explicativa del contingut o tindrem problemes de veritat per trobar els nostres propis codis al futur (Consell: podeu fer servir # a la descripció per a marcar gists). Cada usuari té la seva pròpia pàgina que mostra els seus gists públics (aquesta, per exemple: https://gist.github.com/ccamara) i també hi ha una pàgina que mostra tots els gist públics https://gist.github.com/discover/ que podem fer servir per a cercar altres fragments de codi.

Donat que es tracta d'un servei basat en git, també té algunes característiques interessants:

  1. Possibilitat de marcar, observar o fer un fork de qualsevol gist.
  2. Possibilitat de comentar cada gist.
  3. Possibilitat de clonar el teu propi repositori i treballar en local amb les eines habituals, sense alterar el teu propi fluxe de treball.
  4. Possibilitat d'editar gists des del lloc web.
  5. Possibilitat d'inserir un gist a una altra pàgina, de forma que si mai hi ha cap canvi al gist, les modificacions es mostraran automàticament, tenint el gist sempre actualitzat.

Bonus: motius per a fer servir Sublime text:

Pros: Ben documentat, multiplataforma, lleuger, arquitectura extensible, gran comunitat i gran quantitat de plugins contribuits, és ràpid (multitud de dreceres de teclat i comandes utilitzat la Command Pallete)...

Contres: No és opensource, no proporciona eines per a debugar, no està pensat per a OOP.

Si no coneixies Sublime text o no el fas servir, potser t'interessi llegir els següents articles: