Sobre llenguatges de programació, framework, frontend y altres paraules rares

Hola mòn!

No m’ha passat ni una, ni dues, ni tres vegades que estant en una reunió amb un client se m’escapa algun anglicisme d’aquests, veig la seva cara i he de fer un stop per explicar que és cada cosa. I és que sóc així, no puc deixar anar backoffice i esperar que tothom sàpiga que és. Doncs per això és aquest post, Posar d’una manera clara i sense tecnicismes que es cada cosa.

Tot aquest post estarà enfocat sobretot a la programació web, ho dic perquè segur que hi ha moltes coses primmirades que es poden interpretar.

Servidors i clients

Primer de tot deixaré clar una cosa, client i servidor. Servidor ja hem vist en com funciona Internet, és aquest ordinador connectat a internet i que allotja els arxius que formen la teva web. L’altre és el client, que és qualsevol dispositiu que demana dades a aquest servidor. Per tant el mobil, la tablet o l’ordinador entren en aquest grup.

Per què us explico això? Perquè hi ha llenguatges de programació que s’executen al servidor, provoquen tots els càlculs i fan arribar 1 html ja muntat al client i per contra també hi ha que fan arribar uns fitxers al client i és el client el que s’encarrega de muntar tot el html.

Com veieu l’objectiu és aconseguir un HTML ben estructurat, ja sigui perquè el servidor ens el dóna muntat o perquè obliga el client a fer la feina. També implica qui fa l’esforç i és per això que de vegades es necessita un servidor molt potent i altres vegades amb un de més petit ja val. A efectes pràctics és qui ho treballa o un carnisser i et dóna les hamburgueses preparades o a tu t’arriba la carn picada i les fas la teva (o la teva xef;))

Llenguatges de programació

És l’idioma en què està escrit el codi i permet crear tot el que veus, fer funcions, algoritmes, objectes, … no explicaré com funcionen i és com les cerveses, cada programador té la seva favorita.

Els llenguatges de programació són molts però el primer llenguatge de programació que vaig a dir per ser gairebé el pare dels actuals i encara perdura és el “C” de 1972 i el seu fill C ++ de 1979. Però això és abans de l’era d’internet , per tant només els dic perquè sonin.

Els llenguatges de programació que s’utilitzen molt i hauràs sentit parlar són PHP, JAVA i JAVASCRIPT (que encara que els noms s’assemblin són coses molt diferents) Tots aquests van néixer el 1995 i a hores d’ara gairebé tot l’habitual està basat en aquests. D’aquests, PHP és un llenguatge de costat de servidor i JAVA pot fer-se servir a les dues bandes (A qui no li ha sortit el missatge d’instal·lar-se les llibreries?) D’altra banda, Javascript va néixer com un llenguatge de client però amb el naixement de NODE.JS es pot executar de la banda de servidor.

En Grafreak som experts en PHP i Javascript. I és que, a part de poder desenvolupar qualsevol cosa amb aquests llenguatges, tant WordPress com Prestashop estan escrits en aquests llenguatges.

Framework

Una altra paraula molt usada en el món de la programació i que sona molt rara. Això és un conjunt de funcions i objectes que faciliten programar en un llenguatge específic. També incorpora una estructura base amb la qual no has de pensar les coses des de 0, si no ja sabent com van a estar els arxius organitzats i importantíssim seguint unes bones pràctiques i amb unes documentació al teu abast. Les raons principals són:

  • El codi és més net, estructurat i ordenat.
  • Et permet treballar molt més ràpid.
  • Pots reutilitzar molt codi.
  • Augmenta la seguretat dels teus desenvolupaments.
  • Millora el treball en equip. A l’usar un framework, hi haurà més programadors que ho entenguin ràpid i podran treballar amb tu.

Els principals frameworks que s’utilitzen ara són:
Per JavaScript: Angular de Google, React de Facebook, VueJS i Meteor.
Per PHP: Laravel, Zend i Symfony

Per molt boig que sembli, he treballat amb tots ells;)

Les APPs que hem desenvolupat porten Meteor i Angular, React és el motor de Gutenberg a WordPress, Zend s’utilitza en Magento i Symfony està integrat en el Prestashop. De Laravel i VueJS hem realitzat coses soltes per a clients que ho demanaven així.

Val a dir que CSS també té els seus propis framework, que permeten dissenyar molt ràpid i tenir unes regles responsive de primeres sense haver d’estar repensant les columnes i els seus comportaments. Els frameworks amb els que treballem nosaltres són Bootstrap i Bulma.

No puc acabar la secció amb el comentari que si tens pensat una cosa molt senzilla i sense escalabilitat no cal ficar-te en l’ús de framework, però en el cas contrari si no ho fas et estaràs ficant en un embolic. Consulta amb el teu equip d’experts web i que facin un bon anàlisi tècnic previ per saber que és el millor.

Frontend i backend

A veure no vull crear controvèrsia però molta gent confon aquests conceptes i s’utilitzen molt malament. Però espero deixar-ho ben clar en els següents paràgrafs.

El frontend és tot el que es pot veure i / o interactuar amb ell, per exemple la pàgina web que es veu, una intranet quan estàs logat, la part de administració del web i tot el que impliqui interacció d’usuari. Implica controlar el javascript, el css, l’html i tota la part visual dels llenguatges que es facin servir.

Per contra el backend seria algú que controla el servidor, les bases de dades i el que es retorna. Són els que programen perquè ens tornin el que i com ho volem (que si ens posem tècnics i perquè soni la paraules serien les REST API)

A veure un exemple de com interactuarien:
– Volem que el servidor ens retorni les dades de tots els productes que estan a la base de dades amb un camp de combinacions, s’encarregaria un tècnic de backend.
– Volem que els productes es mostrin en columna de 4 i cas que tinguin combinacions surti icona de “més en la fitxa”, s’encarregaria un tècnic de frontend.
– Hem de canviar a tots els usuaris un camp en base de dades i que si compleixen una condició se’ls marqui un altre camp, seria el tècnic de backend.
– Que en l’administrador del web surti una nova opció, és el de frontend.

Quan es busca un programador normalment es demana que sigui d’un costat o de l’altre, encara que existeix la figura (en la qual jo m’incloc) estaria el fullstack que implica conèixer i saber dels dos àmbits. I és que hi hauria casos que podríem discutir si els ha de fer un, un altre o tots dos perquè podríem pensar alguna funcionalitat molt complicada.

Backoffice i els CMS

Molta gent, i incloc a programadors, confonen el backend amb el backoffice i això no està bé. Com he explicat en el punt anterior, backend és tot el que queda al fons, les consultes i les coses tècniques de servidor, per trobar el sinònim correcte backoffice és el gestor / administrador del web.

Aquests gestors abans es creaven a mida o el webmaster havia d’entrar en base de dades i tocar els arxius de la web. Per sort van sorgir els CMS, que el seu significat és “content management system” o sistema de gestor de continguts. El CMS per tenir milions de webs és WordPress i després vindrien els específics de botigues en línia, Prestashop i Magento.

Llavors com últim apunt, si agafem la definició de framework (és un conjunt de funcions i objectes) podem extrapolar que WordPress també es comporta com un framework.


I fins aquí. Pot ser que algun terme quedi ambigu però espero que amb el que has llegit en l’article entenguis aquest paràgraf.

“WordPress és un CMS que està programat en PHP. Ara li han posat l’editor Gutenberg que fa el frontend del backoffice amb React. Li he demanat a el programador de backend que prepari l’API perquè pugui recuperar les metadades de l’article. Així en el frontend de el client es veurà millor. “

Aquí la deixo. Si teniu algun comentari sereu benvinguts.

Fins aviat!