9 sammu: tehnopaki valimine veebirakenduse jaoks

Uue veebirakenduse kavandamine võib olla keeruline (foto Luca Bravo saidil Unsplash).

Kas olete asutaja, tegevjuht, CTO, konsultant või mõni muu sidusrühm, kes peab otsustama, kuidas tarkvaratoode üles ehitada? Kas teil on probleeme oma veebirakenduse tehnilise korstna üle otsustamisel? Kas peaksite keelena kasutama Pythoni või Java? Kas node.js või Flask / Django on veebiraamistiku jaoks õige valik? Milline on parim esiotsa valik: nurgeline, reageeriv või VueJS? Aga andmebaas - MySQL, Postgres või MongoDB? Kas peaksite ise hostima DigitalOceani Apache või Nginxiga või lihtsalt minema Amazon AWS-iga? Võib-olla eelistaksite pigem töötada sellise PaaS-iga nagu Heroku?

Kui teil on miljon küsimust ja te ei tea, kust alustada, võib see artikkel aidata teil otsust teha.

1. Hoidke see lihtsana. Minge agar!

Sageli ei lõpe teie valitud tehnoloogia kunagi asja, sest toode ise ebaõnnestub. Paljud idufirmad kasutavad mõõtmetehnoloogiat ja kulutavad aega ja energiat jõulisele ehitusele, et vaid teada saada, et nende toodetel pole turgu.

Kui soovite toodet nullist üles ehitada, on parim võimalus minna lihtsama lahendusega. Piisab ka Wordpressi või Unbounce'i sihtlehest. Võib-olla töötaks isegi staatiline leht, mis võltsib seda, mida proovite lahendada. Enne toote ehitamisega seotud probleemide lahendamist on oluline oma toote vastu huvi tunda. On okei, kui idee kontseptsiooni tõestamise tehnoloogia erineb sellest, mida lõpuks kasutate.

Niipea kui teate, et teie kontseptsioon töötab, saate toote loomisega edasi liikuda. Selles etapis olge agar. Te ei tohiks kunagi kulutada mitu kuud 100-leheküljelise süsteemi spetsifikatsiooni (saksa keeles “Pflichten- und Lastenheft”) väljatöötamisele arendajatele, eriti kui toote realiseerimiseks on vaja 6 või 12 kuud. Selle tulemuseks on tõenäoliselt toode, mis on vananenud või tarnitakse liiga hilja.

Mõelge: kõigepealt kõigepealt asjad. Hankige põhileht, seejärel esimene funktsioon ja siis teine. Sel viisil toimimise eeliseks on see, et saate reaalajas edenemist hinnata ja vastavalt vajadusele suunda muuta. Minimeerite oma riski miinimumini, kuna teie süsteem juba töötab. Teil ei pruugi veel olla kõiki funktsioone, mida olete ette kujutanud, kuid see töötab!

2. Mõelge oma isiklikele vajadustele

Pidage oma probleemiruumi silmas. Valitud tehnoloogia peaks sõltuma probleemist, mida soovite lahendada. Mõnda asja saab paremini teha ühes keeles kui teises - näiteks Python sobib suurepäraselt arvutamiseks ja statistika koostamiseks.

Kasutajad enne tehnoloogiat

Tooted tuleks luua nende kasutajate jaoks. Millist toodet soovite ehitada? Kuidas saate luua parima kasutajakogemuse? Mõelge sellele, kes teie süsteemi kasutab. Kas nad töötavad lauaarvutites või tahvelarvutites? Kas nad saavad asjadele juurdepääsu mobiilside kaudu (nagu seda teeb praegu 60% kõigist kasutajatest)? Kas peaks olema töölaua stiilis rakendus? Milliseid brausereid kasutatakse kõige sagedamini?

Kiirus ja jõudlus

Kas teil on (välja arvatud) kriteeriumid? Kas tarkvara töötab teie sisevõrgus? Sel juhul võivad esialgsed laadimisajad olla optimaalsest lühemad.

A Jällegi, mõelge alati vilgas, kui vähegi võimalik. Kas jõudlus on tõesti probleem, millega peate praegu tegelema? Kui kavatsete olla suur, võite enne oma infrastruktuuri jõudluse parandamist alati alustada teenusega Platvorm teenusena (näiteks Heroku). Kui olete veel väga väike, aja ja raha kulutamise asemel võite muretseda jõudluse pärast, kui olete ületanud sobiva suuruse läve.

Migratsiooni- ja pärandsüsteemid

Kas teil on andmebaase ja / või andmeid, mida tuleb migreerida? Kas teil on pärandsüsteeme, mis tuleb uude süsteemi üle viia? Neid ja sarnaseid kaalutlusi tuleb uurida ja hinnata.

Turvalisus

Turvalisust ei tohiks kunagi unarusse jätta. Sõltuvalt sellest, milliseid andmeid te töötate, võib turvalisus olla isegi kõige olulisem tegur. Enne kui otsustate, kuidas seda kindlustada, tehke kindlaks, miks peate midagi turvama. Kuid pidage meeles, et tehnoloogia pole veel kõik - pidage meeles, et turvalisus sõltub peamiselt teie arendajate oskustest, töökeskkonnast ja rakendatud poliitikast.

3. Otsige avatud lähtekoodiga tehnoloogiaid

Uue tarkvara loomisel peaksite otsima avatud lähtekoodiga lahendusi. Need takistavad teil seda, et peate kõike nullist üles ehitama; see säästab palju aega ja on tõenäoliselt kindlam (paljud pead on paremad kui mõned). Samuti saate keskenduda asjade äripoolele ja oma toote eristumisele. Ärge unustage, et annate tagasi avatud lähtekoodiga kogukonnale!

Kui olete tulevase tehnoloogia välja valinud, peaksite läbi käima kontrollnimekirja. Milline litsents sellel on? Kas keeles või raamistikus on funktsioone, mida te või teie arendajad vajate? Kui palju põhiarendajaid on? Saate vaadata kaastöötajaid või tähti Githubi hoidlas ja kuidas nad on aja jooksul muutunud. Kas lähtekoodi on lihtne mõista, kui peate minema sügavamale ja kontrollima kapoti all olevat algoritmi? Kas dokumentatsioon on põhjalik, kas tehnikat on põhjalikult testitud ja kas on olemas käivituskatlad, mis võimaldavad teil kiiresti tööle minna?

Veel üks oluline küsimus: kuidas tehnoloogia taga olev meeskond turvaprobleemidega toime tuleb? Kas turvaaukudest teatamiseks on olemas e-posti aadress?

4. Kontrollige ökosüsteemi

Igal tehnoloogial on ökosüsteem, mis koosneb inimestest ja tööriistadest.

Kui suur on keele või raamistiku taga olev ökosüsteem? Kui palju on Stackoverflow küsimusi, konverentse ja veebipõhiseid õpetusi (nt Udemy)? Mida ütleb Google Trends? Kas huvi tarkvara vastu kasvab endiselt? Mitu paketti (npm, PyPi jne) on ja kas neil on litsentse, millega saate töötada?

Kas teate hämmastavate vingete nimekirjade kohta? Need aitavad teil süveneda keele või raamistiku ökosüsteemi. Saate kontrollida antud tehnoloogiaga seotud õpetusi, artikleid ja olulisi pakette. Seal on loendid Django, node.js, React, Angular ja paljude teiste jaoks.

Samuti on oluline: kas kogukond võtab vastu uusi liikmeid ja kui aktiivne on kogukond? Kuidas toetatakse kasutajaid ja arendajaid? Kas on olemas meililisti, vestluskanal, Slack room või piletimüügisüsteem? Kas inimesed ajakohastavad seda tehnoloogiat?

5. Pikaajalised suundumused ja tugi

Turu elutsüklid

Igal tehnoloogial on elutsükkel. Soovite valida küpsemaid tehnoloogiaid, kuna need on usaldusväärsed. Peaksite kontrollima uusimat tehnoloogiaradarit, et saada aimu tulevikukindlate tehnoloogiate kohta; see aitab teil otsustada, kas võtta need kasutusele või panna need ootele. Tehnoloogiaradar on tasuta ja see jaotab tehnoloogiad tehnikate, platvormide, tööriistade ning keelte ja raamistike kategooriatesse. Sellegipoolest peaksite ressurssi kasutama ettevaatlikult, kuna pakutav teave ei ole kivisse pandud.

Teine idee on kontrollida tööstuse lemmiktehnoloogia korstnaid saidil stackshare.io või techstacks.io. Vaadake, mida Airbnb kasutab või mis meeldib inimestele AngularJSi kohta ja kes seda kasutavad. Kui te pole tehnoloogias kindel, võite otsida alternatiive. Siin on Antole JS alternatiivide loetelu saidil Alternato.net.

Pikaajaline müüja tugi

Kas tehnoloogia müüja näeb välja selline, nagu nad oleksid mõnda aega kohal? Kas suurettevõtted toetavad kõnealuse tehnika arendamist? Google on nurga taga ja Facebook reaktori taga. See tähendab, et mingisugust edasiminekut tuleks teha, kuni ettevõte otsustab lõpuks oma toetuse loobuda (jah, see võib juhtuda). Kuid mida suurem on kogukond, seda suurem on võimalus, et asjad püsivad üsna pikka aega kinni.

Mõnel rakendusel on pikaajalise toega versioonid. Seejärel pakutakse täpsustatud versioonidele veaparandused teatud aja jooksul. Samuti peaksite kontrollima tehnoloogia veebisaiti: kuidas värskendusi käsitletakse? Kui lihtne on värskendamise / migreerimise protsess? Kas on olnud eriti kokkusobimatuid versioone (näiteks nurk 1 ja nurk 2)?

6. Inimressursid ja värbamine

Mis arendajad teil on? Kui teil on vaja otsustada esiotstarbelise tehnoloogia üle ja teil on kolm tugevat nurga arendajat, peaksite tõenäoliselt nendega töötama. Kiire liikumine võib olla oluline ja uue tehnoloogia õppimise asemel on inimestel, kes asuvad mugavustsoonis, eeliseks. Lisakasu on ka olemasolevad teadmised ökosüsteemi kohta.

Värbamise osas kontrollige kindlasti järgmist: kas leiate soovitud tehnoloogia jaoks piisavalt kvaliteetseid arendajaid? Kui palju peate nende eest maksma? Kas suured ettevõtted töötavad samade tehnoloogiatega ja haaravad kinni kõik head arendajad? Kas arendajad, kelle hulgast leiate, on enamasti väljakujunenud spetsialistid või on neil raske vahet teha skripti kiddiesi vahel? Hea Java arendaja võib olla lihtsamini leitav kui hea Ruby on Rails või PHP arendaja. Teadustöö jaoks võite vaadata XING-, LinkedIn- või tööotsinguportaale. Samuti saate kontrollida töösuundumusi (nt võrrelda nurkkiiret reaalajaga).

Kas tehnoloogiat on lihtne õppida? Lihtne keel aitab teil nooremaid arendajaid leida ja koolitada ning kogu ökosüsteem võiks meelitada rohkem inimesi.

Viimane, kuid mitte vähem oluline: HR-is on suur ressurss Stackoverflow Developer'i uuring. See annab suurepärase ülevaate arendaja tüüpidest, kasutatud tehnoloogiatest ja palgaaruannetest. Vaata!

7. Kas olete piisavalt paindlik?

Teenuse detailsus

Asjad muutuvad palju kiiremini kui 20 aastat tagasi. Pikka aega töötasid inimesed peamiselt lauaarvutites ja Windowsiga. Järgmise 10 aasta jooksul pole see tõenäoliselt nii. Teie valitud tehnoloogia jääb teile tõenäoliselt 5–10 aastaks: see on pikk aeg ja te ei saa olla kindel, kuidas asjad arenevad. Sellepärast peate olema valmis tehnoloogiate muutmiseks, kui selleks vajadus tekib.

Mõelge üksikasjalikult, mõelge väikestes pakendites ja mõelge muredest eraldi. Teenused, tagaküljed ja kasutajaliidesed tuleks eraldada väiksemateks rakendusteks ja mikroteenusteks. Kui olemasolevad ei tööta enam teie heaks, peaksite saama tehnoloogiaid hõlpsalt vahetada. Tutvuge selliste kontseptsioonidega nagu teenusele orienteeritud arhitektuur (SOA) ja domeenipõhine disain (DDD).

Kas saate päästa? Kas see skaleerub?

Kas teil on andmetele alati juurdepääs? Kas tehnoloogia muutmiseks on alati võimalik oma andmeid eksportida? Kas tehnoloogial on API, mis võimaldab teisest küljest paindlikkust? Võib-olla soovite avada oma klientide või klientide jaoks rakenduse või soovite valitud tehnoloogiale lisaks ehitada mobiilirakendusi, töölauarakendusi või muid süsteeme.

8. Kuidas see tundub?

Paluge oma arendajatel seda tehnoloogiat uurida või tehke seda ise. Millised on teie esimesed muljed? Laske teil väike piloot seadistada, proovige olemasolevaid katlaplaate või (kui võimalik) pisut katseprojekti. Kui pakute graniitteenuseid, saate antud tehnoloogiaga ehitada uue väikese teenuse ja vaadata, kuidas see töötab.

Samuti on olemas reaalmaailma rakendusi, mis aitavad teil erinevusi paremini mõista. TodoMVC on suurepärane projekt - lihtne Todo rakendus on realiseeritud erinevate Javascripti raamistikega ja saate kontrollida lähtekoodi arhitektuuri. Näiteid on igasuguseid ja saate võrrelda nurga all Reaketi või Vue Emberiga.

Vinge RealWorldi projekt läheb veelgi kaugemale: see on keskmise laadiga täispakk-rakendus, mille taustal on kas Django või node.js ja liideses Nurga all või React. Selle kohta saate lugeda sissejuhatavat artiklit Eric Simons.

9. Alusta

Kui olete väike alustaja, on turule jõudmine olulisem kui täiusliku tehnika omamine. Keskenduge oma ärile ja turundusele, selle asemel et kogu tehnoloogia eel-optimeerimine oleks vajalik, et käsitleda Facebooki kasutajate arvu. Tõenäoliselt pole teil varases staadiumis kõiki nõutavaid teadmisi, kuid kasvades saate oma asju täpsustada ja optimeerida või muuta tehnikapakette (ja teil on vajalik eelarve).

Ettevõttena võivad asjad olla erinevad. Otsus on niikuinii enamasti poliitiline - teie ettevõtte inimesed peavad teie otsusega hästi suhtuma. Juhtkond (ja loodetavasti ettevõttesisesed / tulevased arendajad) on tõenäoliselt kõige olulisemad sidusrühmad, kellel pardal on.

Oluline on meeles pidada, et kvaliteet on õigete asjade tegemine. Tehnoloogia pole ainus oluline: vajate õiget kujundust, õigeid nõudeid, õigeid testimisprotseduure jne. Kõige olulisem on veenduda, et te ei piirduks tulevikus oma ulatuse ega uue tehnoloogiaga rändamisega.

Rohkem ressursse:

  • Kuidas valida oma tarkvaraprojekti jaoks sobivaid tehnoloogiaid (kiire loetav täpploend)
  • Kuidas valida oma rakendusele sobiv tehnoloogiapakk (tore artikkel, kus arutatakse otsust sõltuvalt ettevõtte suurusest / staatusest)
  • 5 näpunäidet oma Startupi tehnoloogiapaki valimiseks (tore nimekiri ja Tech Stirrersi hoiatus)

Täname huvi eest Kas ma unustasin midagi olulist? Kas teil on teistsugune arvamus? Mul on alati hea meel tagasisidet saada.

Jälgige mind Twitteris värskenduste ja muu kohta: @jensneuhaus -