Cristal este un generator de cod sursă deschisă pentru orice limbaj de programare, cadru, CMS și chiar bază de date, permite combinarea și unificarea atât a configurării, cât și a codului, făcându-l un instrument perfect pentru optimizarea timpilor de dezvoltare în orice proiect.
Filozofia lui este O intrare - Orice ieșire, ceea ce înseamnă o singură intrare - orice ieșire, și anume Cristal gestionează ca date de intrare lucruri la fel de simple ca un JSON, XML sau chiar YAML oferindu-ne astfel posibilitatea de a utiliza oricare dintre acestea pentru a genera cod pentru ambele PHP, Python, Java, Rails, Django, Ruby Da Node.js a numi câteva.
Din moment ce știm cu ce putem face CristalSă vedem cum îl instalăm în mediul nostru și să punem în funcțiune acest instrument puternic.
Instalarea Crystal
La instalează Crystal trebuie să avem în mediul nostru Node.js și managerul său de pachete NPM, odată ce am verificat aceste cerințe, vom executa următoarea comandă pentru instalare Cristal:
npm instalați crystal-cli -gOdată ce instalarea noastră este terminată, executăm comanda cristal -v pentru a verifica versiunea aceluiași și pentru a verifica dacă totul a mers bine.
MARI
Inițializarea cristalului
Odată ce avem generatorul de cod instalat, vom inițializa un nou proiect de tip Cristal. Pentru aceasta, vom crea un nou director și în cadrul acestuia vom executa următoarea comandă:
inițial de cristalOdată ce am executat comanda, Crystal ne va cere să adăugăm câteva date pentru fișierul de configurare, cum ar fi numele, descrierea, autorul, printre altele.
MARI
Odată ce completăm aceste informații, această comandă va inițializa proiectul nostru și va genera în cadrul căii.cristal / fișierul nostru de configurare config.yml care ar trebui să arate astfel:
name: first_steps_crystal description: Tutorial care arată utilizarea Crystal autor: nume: Jonathan Acosta e-mail: [email protected] url: www.solvetic.com drept de autor: „2015”Acesta este un fișier cu notație YAML, care menține o anumită similitudine cu JSON în ceea ce privește structura și ușurința de citire a datelor din acesta. Avem deja proiectul nostru pregătit pentru a folosi avantajele Cristal Să trecem la generarea primului nostru cod.
Generarea codului nostru
Pentru a genera cod, Cristal utilizează anumite elemente care permit realizarea acestei sarcini, unul dintre aceste elemente este Specificații sau specificații și sunt cele care permit definirea datelor de intrare și astfel generarea unei ieșiri.
Tot ceea ce vrem să definim pentru a fi inclus în generația noastră trebuie să fie sub elementul nostru ieșiri, unde trebuie să specificăm atât generatorul, cât și specificațiile. Ceea ce este responsabil pentru generator este să indice că acesta ar trebui generat, de exemplu a PHP, Rubin, Un pachet de PIP, un fișier Grunt sau chiar un fișier readme, care va fi primul exemplu pe care îl vom face.
în afară de SpecificațiiEste important să importați modulele, care sunt cele care vor avea funcționalități pentru fiecare generator, specificații etc. Pentru aceasta trebuie să includem această linie în fișierul nostru config.yml:
importuri: cristal / readme: ~ 0.2.2În acest fel, este mult mai ușor să urmărim modulele pe care dorim să le includem în proiectul nostru, odată ce adăugăm această linie, trebuie doar să ne actualizăm proiectul cu următoarea comandă:
actualizare cristalAceastă comandă va actualiza proiectul nostru și va instala modulele pe care le-am specificat în importurile. Odată ce acest lucru este făcut, putem genera rezultatele noastre, pentru aceasta vom adăuga specificațiile și generatorul după cum urmează:
ieșiri: - generator: readme.ReadmeGenerator spec: nume: Readme versiune: 1.2.3 descriere: Acesta este un test al unui fișier ReadmeDeja cu dosarul nostru config.yml finalizată trebuie doar să executăm comanda construi pentru a genera codul nostru, în acest caz fișierul nostru Citește-mă.
Să vedem cum arată fișierul nostru Citește-mă generat cu Cristal.
Cu aceasta am avut prima noastră abordare cu acest instrument puternic, care în câteva secunde poate genera cod pentru limbile pe care le dorim, inclusiv cadre și baze de date, unificând atât cunoștințele, cât și efortul și scurtând considerabil timpii de dezvoltare în proiectele noastre.