9 passos: l'elecció d'una pila de tecnologia per a la vostra aplicació web

Planificar la nova aplicació web pot ser difícil (foto de Luca Bravo a Unsplash).

És un fundador, conseller delegat, CTO, consultor o un altre grup d’interessats que ha de decidir com s’ha de crear un producte de programari? Tens problemes per triar la pila de tecnologia per a la teva aplicació web? Heu d’utilitzar Python o Java com a idioma? Node.js o Flask / Django són l’opció adequada per al marc web? Quina és la millor opció frontal: Angular, React o VueJS? Què passa amb la base de dades: MySQL, Postgres o MongoDB? Haureu d’allotjar-vos a Apache o Nginx a DigitalOcean o simplement treballar amb Amazon AWS? Potser preferiria treballar amb un PaaS com Heroku?

Si teniu un milió de preguntes i no sabeu per on començar, aquest article us pot ajudar a decidir-vos.

1. Manteniu-lo senzill. Va àgil!

Sovint, la tecnologia que trieu no importa perquè el producte en si falla. Moltes startups confien en la tecnologia d’escalat i inverteixen molt temps i energia en una construcció robusta per determinar que no hi ha mercat per al seu producte.

Si voleu crear un producte des de zero, el millor és triar la solució més senzilla. Una pàgina de destinació amb Wordpress o Unbounce podria ser suficient. Potser fins i tot una pàgina estàtica funciona, fingint el que esteu intentant resoldre. És important que valoreu l’interès pel producte abans de començar a construir el producte. Està bé si la tecnologia de la prova del concepte és en definitiva diferent de la que feu servir.

Tan aviat com sàpigues que el teu concepte funciona, podràs continuar desenvolupant el producte. Mantingueu-vos àgils en aquesta fase. Mai haureu de passar diversos mesos creant una especificació del sistema de 100 pàgines ("especificacions") per als desenvolupadors, especialment si triguen 6 o 12 mesos a implementar el producte. Probablement, es produirà un producte que no hagi quedat actualitzat o que es faci entrega massa tard.

Penseu: primer les coses. Obteniu una pàgina bàsica en funcionament, i després la vostra primera funció, després la segona. Aquest plantejament té l’avantatge que es pot avaluar el progrés en temps real i canviar de direcció si és necessari. Minimitzeu el vostre risc perquè el vostre sistema ja funciona. És possible que no tingueu totes les funcions que vau imaginar, però funciona.

2. Penseu en els vostres requisits personals

Tingueu en compte la vostra zona de problemes. La tecnologia que trieu ha de dependre del problema que vulgueu solucionar. Algunes coses són més fàcils de fer en un idioma que un altre, per exemple, Python és ideal per a càlculs i estadístiques.

Usuaris tecnològics

Els productes s’han de crear per als seus usuaris. Quin producte voleu construir? Com podeu crear la millor experiència d’usuari? Penseu en qui utilitzarà el vostre sistema. Treballes en escriptoris o tauletes? Accedeixen a coses mitjançant una connexió mòbil (com ho fa el 60% de tots els usuaris actualment)? Hi hauria d’haver una aplicació d’estil d’escriptori? Quins navegadors s’utilitzen més sovint?

Velocitat i rendiment

Tens criteris (exclusius)? El programari funciona a la intranet? En aquest cas, és possible que els temps de càrrega inicials no siguin òptims.

A Sempre ser àgil quan sigui possible. El rendiment realment és un problema que cal afrontar ara? Si voleu ser grans, sempre podeu començar amb Plataforma com a servei (com Heroku) abans de millorar el rendiment amb la vostra pròpia infraestructura. En comptes d’invertir temps i diners quan sou molt petit, podeu començar a preocupar-vos pel rendiment un cop superat el llindar de mida adequat.

Migracions i sistemes llegats

Teniu bases de dades i / o dades que cal migrar? Tens sistemes antics que s’han de transferir al nou sistema? Aquestes consideracions i similars cal examinar-les i avaluar-les.

Seguretat

Mai s’ha de descuidar la seguretat. Segons el tipus de dades amb què treballeu, la seguretat fins i tot pot ser el factor més important. Determineu per què cal fer una còpia de seguretat d’alguna cosa abans de decidir com voleu fer una còpia de seguretat. Tanmateix, tingueu en compte que la tecnologia no ho és tot. Tingueu en compte que la seguretat depèn principalment de les habilitats dels desenvolupadors, de l’entorn de treball i de les polítiques que implementeu.

3. Trieu tecnologies de codi obert

Quan creeu un nou programari, heu de buscar solucions de codi obert. Li impedeixen haver de construir tot des de zero. Això estalvia molt temps i probablement és més segur (molts caps són millors que uns quants). També podeu centrar-vos en el negoci i ressaltar el vostre producte. Recordeu-vos de tornar alguna cosa a la comunitat de codi obert.

Un cop seleccionada una tecnologia potencial, haureu de passar per una llista de comprovació. Quin tipus de llicència té? El llenguatge o el marc contenen les funcions que necessiteu o els desenvolupadors? Quants desenvolupadors bàsics hi ha? Podeu revisar els col·laboradors o les estrelles del dipòsit de Github i la seva evolució al llarg del temps. És fàcil d'entendre el codi font si cal aprofundir en l'algorisme? La documentació és completa, s’ha comprovat la tecnologia a fons i hi ha calderes d’arrencada amb les quals pots començar ràpidament?

Una altra pregunta important: com tracta l'equip de la tecnologia que tracta els problemes de seguretat? Hi ha una adreça de correu electrònic per denunciar les vulnerabilitats?

4. Comproveu l’ecosistema

Tota tecnologia té un ecosistema de persones i d’eines.

Quin gran és l’ecosistema que hi ha darrere de la llengua o el marc? Quantes preguntes, conferències i tutorials en línia sobre stackoverflow (per exemple, Udemy) hi ha? Què diu Google Trends? L’interès pel programari està creixent? Quants paquets (npm, PyPi, etc.) hi ha i tenen llicències amb les quals podeu treballar?

Coneixes les fantàstiques llistes fantàstiques? T’ajuden a submergir-te en l’ecosistema d’un idioma o marc. Podeu visualitzar tutorials, articles i paquets clau relacionats amb una tecnologia concreta. Hi ha llistes per a Django, node.js, React, Angular i molts més.

També és important si la comunitat accepta nous membres i com d'activa és la comunitat. Com és el suport per als usuaris i desenvolupadors? Hi ha una llista de correu, un canal de xat, un saló o un sistema de bitllets? La gent fa blogs sobre tecnologia?

5. Tendències i suport a llarg termini

Cicles de vida del mercat

Tota tecnologia té un cicle de vida. Voleu triar tecnologies madures perquè són fiables. Heu de consultar el radar d’última tecnologia per tenir una idea de com són les tecnologies a prova futura. Això us pot ajudar a decidir si el feu càrrec o ajornar-lo. El radar tecnològic és gratuït i divideix les tecnologies en les categories tècniques, plataformes, eines i llenguatges i marcs. Tot i això, haureu d’utilitzar el recurs amb precaució ja que la informació que es proporciona no està configurada.

Una altra idea és revisar les piles tecnològiques preferides per la indústria amb stackshare.io o techstacks.io. Informeu-vos de què utilitza Airbnb o què els agrada la gent sobre AngularJS i qui la utilitza. Si no teniu dubtes sobre una tecnologia, podeu buscar alternatives. A continuació, es mostra una llista d’alternatives a Angular JS a alternativeto.net.

Suport a llarg termini dels proveïdors

Sembla que el proveïdor de tecnologia es veurà una estona? Les grans empreses donen suport al desenvolupament de la tecnologia en qüestió? Google està al darrere d'Angular i Facebook és al darrere de React. Això significa que hi hauria d’haver alguns avenços fins que finalment l’empresa decideixi suspendre l’assistència (sí, això pot passar). Però, com més gran sigui la comunitat, més gran és la possibilitat que les coses s’allarguin força durant un temps.

Algunes aplicacions tenen versions amb suport a llarg termini. Les versions especificades es proporcionen amb les correccions d'error durant un període de temps determinat. També heu de consultar el lloc web de tecnologia: com es gestionen les actualitzacions? Què fàcil és el procés d’actualització / migració? Hi ha hagut versions especialment incompatibles (com ara Angular 1 i Angular 2)?

6. Personal i contractació

Quins desenvolupadors teniu al vostre lloc? Si heu de triar la tecnologia front-end i teniu tres desenvolupadors angulars forts, probablement haureu de treballar amb ells. Movir-se ràpidament pot ser important i tenir gent a la vostra zona de confort és un avantatge més que no pas aprendre noves tecnologies. El coneixement existent de l’ecosistema també és un avantatge afegit.

Pel que fa a la contractació, comproveu el següent: Podeu trobar prou desenvolupadors de qualitat per a la tecnologia que voleu? Quant haureu de pagar? Les grans empreses treballen amb les mateixes tecnologies i fan tots els bons desenvolupadors arrabassar? Són els desenvolupadors que es troben principalment professionals establerts, o és difícil distingir entre ells i els kiddies de script? Pot ser més fàcil trobar un bon desenvolupador de Java que un bon desenvolupador de Ruby on Rails o PHP. Podeu consultar els portals XING, LinkedIn o de cerca d’ocupació per a la vostra recerca. També podeu cercar tendències de feina (per exemple, comparar Angular amb React).

La tecnologia és fàcil d’aprendre? Un llenguatge senzill pot ajudar-vos a trobar i formar joves desenvolupadors i tot l’ecosistema podria atraure més gent.

Per últim, però no per això menys important: un gran recurs al departament de recursos humans és l'enquesta Stackoverflow Developer. Proporciona una excel·lent visió general dels tipus de desenvolupadors, de les tecnologies utilitzades i dels informes salarials. Mira!

7. Seràs prou flexible?

Granularitat de servei

Les coses canvien molt més ràpid que fa 20 anys. Durant molt de temps la gent va treballar principalment en ordinadors de sobretaula i amb Windows. Probablement aquest no serà el cas d’aquí a deu anys més. La tecnologia que trieu probablement us quedarà entre 5 i 10 anys. Això fa molt de temps i no podeu estar segur de com es desenvoluparan les coses. Per aquest motiu, cal estar preparat per canviar les tecnologies si cal.

Penseu granularment, en paquets petits i separats de les preocupacions. Hauríeu de dividir els serveis, els extrems posteriors i els frontals en aplicacions més petites i micro serveis. Hauríeu de poder intercanviar tecnologies fàcilment quan les existents ja no funcionin per a vosaltres. Consulteu conceptes com l'arquitectura orientada al servei (SOA) i el disseny dirigit per dominis (DDD).

Es pot anar sota fiança? Escalarà?

Sempre teniu accés a les dades? Sempre és possible exportar les vostres dades quan necessiteu canviar de tecnologia? Té la tecnologia una API que permet, d’altra banda, la flexibilitat? Potser voleu obrir la vostra aplicació als vostres clients o clients, o voleu crear aplicacions mòbils, aplicacions d'escriptori o altres sistemes amb la tecnologia escollida.

8. Com se sent?

Deixa que els desenvolupadors facin la tecnologia o ho facin tu mateix. Quines són les teves primeres impressions? Feu una petita configuració pilot, proveu les plaques de caldera existents o feu un petit projecte de prova (si és possible). Si trieu els serveis granulars, podeu utilitzar una tecnologia específica per crear un nou servei petit i veure com funciona.

També hi ha aplicacions del món real que us poden ajudar a comprendre millor les diferències. TodoMVC és un gran projecte: una senzilla aplicació Todo s’implementa mitjançant diversos frameworks Javascript i podeu comprovar l’arquitectura del codi font. Hi ha tot tipus d’exemples i podeu comparar Angular amb React o Vue amb Ember.

El gran projecte RealWorld va encara més enllà: es tracta d’una aplicació de pila completa de mida mitjana que utilitza Django o node.js per al fons i Angular o React per al front end. Podeu llegir un article introductori d’Eric Simons al respecte.

9. Comença

Si ets un xicotet engegat, el llançament és més important que la tecnologia perfecta. Centreu-vos en el vostre negoci i màrqueting, en lloc de optimitzar prèviament tota la tecnologia necessària per gestionar el nombre d’usuaris que té Facebook. Probablement no tingueu tots els coneixements que necessiteu, però podeu ajustar-lo o canviar els requisits tècnics a mesura que creixeu (i disposeu del pressupost).

Com a empresa, les coses poden ser diferents. La decisió normalment serà política de totes maneres: les persones de la vostra empresa han d’acord amb la seva decisió. La gestió (i esperem que els desenvolupadors interns / futurs) siguin probablement els grups d'interès més importants a bord.

És important recordar que la qualitat es refereix a les coses. L’única cosa que importa és la tecnologia: cal un disseny adequat, els requisits adequats, els procediments de prova adequats, etc. El més important és que en el futur no us limitareu a les restriccions de mida ni a la migració cap a una altra tecnologia.

Més recursos:

  • Com triar les tecnologies adequades per al vostre projecte de programari (una llista clara de paraules clau)
  • Com triar la pila de tecnologia adequada per a la vostra aplicació (bon article que discuteix la decisió en funció de la mida i l’estat de l’empresa)
  • 5 consells per triar la pila tecnològica de la vostra startup (bon llistat i advertiment dels agitadors tècnics)

Gràcies pel vostre interès. Vaig oblidar alguna cosa important? Tens una opinió diferent? Sempre agraeixo el comentari.

Seguiu-me a Twitter per obtenir més actualitzacions i més: @jensneuhaus -