Ilusus on vaatleja silmades

Ma olen juba pikka aega tegelenud veebirakenduste arendamisega. TĂ”eliselt pikka aega. Oma esimesed veebirakendused lĂ”in ma keskkonnas Lotus Domino , kui sĂ”na «google» ei olnud veel tegusĂ”na, ja internetis infokogumiseks kasutasid inimesed Yahoo! ja Ramblerit. Mina kasutasin Infoseek’i — neil oli kitsendav otsing ja vĂ€hem kaootiline kasutajaliides kui Yahoo-l.

Rakenduste arendamine, igasuguste rakenduste, mitte ainult veebirakenduste, on loominguline töö. Harva keegi vaidlustab selle vĂ€ite. Kuid ilu loomingus, see on nagu praktika teaduslikus tunnetamises — tĂ”e kriteerium. Kuid teaduslik praktika on objektiivne ja pĂ”hineb mÔÔtmistel, samas kui ilu on subjektiivne, sĂ”ltudes vaatajast. Nii ma kĂŒsisin endalt, mis on minu arvates ilus veebirakendus?

Ilusus on vaatleja silmades

(KĂŒpsenud, minu jaoks pole see esteetika, aga IMHO, naiselik vaade on sellel teemal kohasem, kui mehelik, sest see on — KĂŒpsenud!)

Allpool jagan enda kriteeriume, mille alusel vĂ”ib praegust veebirakendust pidada ilusaks. VĂ€ga subjektiivne esitlus, mis tuleneb minu isiklikust kogemusest. VĂ”imalik, et mĂ”nele tunduvad mu ilu kriteeriumid hoopis koleduse kriteeriumid. Ärge imestage, teie kogemus on lihtsalt erinev.

Ja kuna te juba allpool olete, siis palun olge kommentaarides ettevaatlikud. Kui te saate artikli lugemise lÔpetada, kui selle sisu tundub teile kole vÔi isegi vastik, siis mina, autori poole, pean lugema kÔiki kommentaare.

Elukeskkond

Protokollid

Ma ei teagi, kas selle kriteeriumi eraldi vĂ€lja toomine on vajalik. Veebirakendused elavad Internetis ja peavad vastama vĂ”rgu seadustele (protokollidele). Peamised protokollid Internetis on TCP ja IP. Nendele pĂ”hinevad paljud teised protokollid, kuid ma pean veebirakenduste jaoks kĂ”ige olulisemaks HTTP (vĂ”i pigem selle laiendust HTTPS pĂ”hjal TLS). See tĂ€hendab, et ilus veebirakendus on saadaval HTTPS/TLS kaudu (vĂ”imalus — HTTP kaudu), kuid kĂ”ik teised protokollid (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, 
) muudavad selle vĂ€hem ilusaks iga uue toetatava protokolliga. Ise rakendus vĂ”ib nende tĂ€iendavate protokollide abil kasutada vĂ€liseid ressursse.

Mis puudutab WebSocket, aga mul ei ole piisavalt kogemusi selle protokolli kasutamise osas veebirakendustes. See nĂ€eb vĂ€lja ilus ja lubav, kuid kui stabiilne ja praktiline see on — seda ma ei oska öelda.

Brauserid

Veebirakendus toetab serveripoolt vaid ĂŒhe jalaga, teine ​​on kliendipool. Kliendipool on brauser. Kaasaegne brauser pakub palju erinevaid vĂ”imalusi,mida kaasaegne veebirakendus saab ja peab oma huvides kasutama. Kaunis veebirakendus kasutab kaasaegseid brauserite vĂ”imalusi ja ei pea töötama brauserites, mis neid ei toeta. Ma mĂ”istan, et polyfillid on sunnitud lahendus, kuid see ei ole ilus. LĂ”ppude lĂ”puks ei tohiks ainult arendajad kaasas kĂ€ia kaasaegsete tehnoloogiatega, see puudutab ka kasutajaid ja Ă€ri.

KTP

Veebirakenduste loomiseks kasutatavate programmeerimiskeeltega on kÔik vÀga keeruline. Veebirakenduste kliendipoolte jaoks on palju tehnoloogiaid, mis vÔimaldavad arendajal lihtsustada HTML/CSS/JS triadi loomist (kui need on kÔik kaasaegsete brauserite arusaadavad). Kuid mina puutusin omal ajal tihedalt kokku GWT ja pean ilusaks, kui arendaja nÀeb brauseris algset koodi, mitte kompileerimise vÔi transpileerimise tulemust. SeetÔttu on webpack's ja sarnaste toodete kasutamine kliendikoodi genereerimiseks, IMHO, inetuks. Mida rohkem on brauseris tÀidetav kood sarnane arendaja loodud algkoodiga, seda parem. Ei usu? Proovi debugida tootmises GWT loodud koodi.

Serveripoolsetes rakendustes on rohkem vabadust (Java, PHP, Perl, Python, C#, Ruby jne), kuid mulle tundub ilusam, kui serveripoolses ja brauseris kasutatakse ĂŒht programmeerimiskeelt — JavaScripti. LĂ”ppude lĂ”puks keel mÀÀrab mĂ”tlemise, ja sarnaste mĂ”tteviisidega meeskonnad on produktiivsemad.

Inimlikkus

Kaunis veebirakendus peab olema kasulik. EelkĂ”ige peab see olema kasulik inimesele, kui lĂ”ppkasutajale. SeetĂ”ttu ei saa ma nimetada kauniks veebirakenduseks veebiteenuseid. TĂŒĂŒpilisel inimesel (mitte veebi arendajal) on nende kasutamine keeruline. Veebiteenused on ilusad omal moel,

Kaunis veebirakendus peab omama intuitiivselt arusaadavat liidest. VĂ”ib vaielda, UI' kas see on pĂ€ris subjektiivne asi. Kuid UX on palju lihtsam, kui kasutaja ei saa rakendust kasutada ilma ihaldatud RTFM — halb UX, inetuks veebirakenduseks. KĂ”ige ilusamad veebirakendused selle kriteeriumi suhtes saavad lastega, kes ei oska veel lugeda, kergesti hakkama.

Tagasiulatuvus

Kaua aega tagasi oli programme vĂ”imalik kanda disketidel, nĂŒĂŒd - mĂ€lupulkadel vĂ”i laadida otse Internetist. Tavalise rakenduse kopeerimine ja selle kĂ€ivitamine teisel masinal on triviaalne ĂŒlesanne. Veebirakenduste puhul on olukord aga veidi eriline. VĂ”rk on globaalne keskkond, kus pole vaja omada ĂŒhe ja sama veebirakenduse kloone. Internetis piisab ĂŒhest Facebookist, Twitterist, Instagramist, Mail.ru vĂ”i Yandexist. Samas teemas vĂ”ib olla erinevaid veebirakendusi, kuid erinevate sihtrĂŒhmadega (nĂ€iteks Facebook ja Vkontakte, Mail.ru ja Gmail, Google Maps ja Azure Maps). Nende veebirakenduste globaalsete kĂ€ttesaadavuse tagamiseks on vajalikud, ĂŒtleme nii, mitte triviaalne.

Ma ei ole kunagi töötanud veebirakendustega sellisel tasemel arendajana ja ei kujuta ette, kuidas need seestpoolt toimivad. Nende veebirakenduste toimimise tagamiseks on vajalikud vastava ala spetsialistide meeskonnad ning eraldi andmekeskused. Mind imetleb inimeste vĂ”ime koostööd teha sellisel skaalal ja selliste toodete loomine, kuid minu iluideaal on veebirakendus, mida saab kĂ€ivitada eraldi sĂŒlearvutis.

Kaunis veebirakendus ei skaala mitte ainult ĂŒlespoole ja laiali (kasutajate jaoks), vaid ka allapoole ja sissepoole (arendajate jaoks).

„Amfiibsus“

Kaasaegsete veebirakenduste kasutamiseks kasutatakse kahte tĂŒĂŒpi seadmeid:

  • arvutid (sĂŒlearvutid, lauaarvutid);
  • mobiilsed seadmed (nutitelefonid ja tahvelarvutid);

Kusagil horisondi taga kumab veel „asjade Internet“, aga praegu on see nii.

Arvutid erinevad mobiilseadmetest sama palju kui maismaaolendid vees elavatest olenditest. Need on erinevad keskkonnad ja need seavad neis elavatele olenditele (programmidele) erinevad nÔudmised. Kaunid veebirakendused ei ole need, mis sarnanevad amfiibidega, vaid need, mis vees - nagu kalad, maal - nagu loomad, ja Ôhus (SEO) - nagu linnud.

Ma pean 'amfiibsust' inetu, see on nagu proovida istuda kahel (SEO puhul - kolmel) toolil. Parem olla nagu Fiona Shrekist - pĂ€eva jooksul ĂŒks, öösel teine. Jah, see on kallim. Aga parem.

Cross-sharing

Olen juba maininud jaotises „Tagasiulatuv skaleeritavus“, et vĂ”rgu globaalsus vĂ”imaldab luua ĂŒhte veebirakendust kĂ”igile. SeetĂ”ttu peaks iga veebirakendus mĂ”nevĂ”rra erinema teistest, et tagada oma ellujÀÀmine. Sellegipoolest ĂŒtleb minu aastatepikkune kogemus Magento (e-kaubanduse jaoks mĂ”eldud raamistik), et erinevate veebirakenduste vahel vĂ”ib olla rohkem ĂŒhist, kui erinevusi. Kaunis veebirakendus ei peaks mitte ainult olema modulaarne, vaid ka jagama oma mooduleid teiste veebirakendustega. Teatud mÀÀral peegeldab seda ideed spetsifikatsioonidest JSR 168 ja JSR 286 ning sellised raamistikud nagu WordPress, Django ja sama Magento. Mida rohkem mooduleid veebirakenduses kasutatakse, seda ilusam see minu jaoks on. Ristjagamine vĂ”imaldab luua kvaliteetsemaid mooduleid ja seega stabiilsemaid veebirakendusi.

Moodulina ei mĂ”tle ma sellistele teekidele nagu jQuery vĂ”i RequireJS — pigem suurematele struktuuridele, nagu pluginad WordPress ja Django. Kuid ka teekide puhul kehtib vĂ€ide, et teegi laialdane levik vĂ”imaldab selle kvaliteeti ja vastupidavust suurendada.

Harvardi arhitektuur

Harvardi arhitektuur, erinevalt praegusest valitsevast Princetoni arhitektuurist, eeldab koodi ja andmete lahusust. Arhitektuur ei saanud tuule tiibadesse, kuid idee iseenesest tundub mulle ilus. Eriti veebirakenduste jaoks. Iga staatika (HTML/CSS/JS/Pildid/
) on kood. Seda saab ja tuleb vahemÀlustada nii serveripoolselt kui ka kliendipoolselt. Andmed on REST/JSON (ilus) vÔi SOAP/filestream (veidi vÀhem ilus). VÔi WebSockets/JSON (vÔib-olla parim variant, kuid ma pole proovinud).

Lokaliseerimine

On kaks asja, mis mind veebirakenduste arendamisel eriti muretsema panevad — see on mitmekeelne liides ja ajavööndid. Olen ise LĂ€tist, meil on kasutusel kolm keelt: LV, RU, EN. Kaunis veebirakendus peaks vĂ”imaldama mitte ainult kasutada mitmeid keeli rakenduses, vaid ka laiendama kasutatavate keelte arvu vĂ€liste ressursside abil, nagu Crowdin. See kehtib ka moodulite kohta, millest veebirakendus on kokku pandud.

Kellaegade on lihtsad: kĂ”ik, mis asub serveris, lahkub serverist ja naaseb serverisse — UTC, kĂ”ik, mis kuvatakse kliendile — vastavalt kasutaja profiili ajavööndile. See on ilus.

Seppade töötoad asemel "Surma TÀhed"

Amorani kord, igas suurimas linnas oli oma sepikoja. VÔib-olla isegi mitmeid. MÔned paremad, mÔned halvemad. Oli sepikoja meistreid, kes olid tuntud kogu maailmas, ja oli ka selliseid, kelle juurde mindi sunniviisiliselt. LÀbisid sÔjad, epideemiad, loodusÔnnetused. MÔned linnad kadusid koos rahvaga. Kuid sepatööd elas edasi. Kadunud linnade asemele ehitati uusi, kuhu ilmusid samuti sepikojad.

Ja nĂŒĂŒd vaadake sellist teenust nagu DNS. Kui juurdeteenused kukuvad kokku, kĂ”ik maailm kannatab.

Minu arvates ei saa ilus veebirakendus olla sama suur kui Facebook vĂ”i Mail.ru. See lĂ€heneb juba "Surma TĂ€hele" nii ehitamiseks vajalike ressursside kui ka nende sĂ€ilitamiseks vajalike ressursside osas. Jah, kui Facebook hĂ€vitatakse, ei kao inimkond, selle funktsioonid vĂ”tavad kiiresti ĂŒle teised rakendused (nĂ€iteks VK Venemaa ja lĂ€hiriikide territooriumil, Instagram, Twitter jne). Siiski, olulise osa inimkonna seottamine ĂŒhte rakendusse — see ei ole ilus. Veelgi enam, kui olemas on palju stabiilsemaid alternatiive (nĂ€iteks torrents).

Elulookirjeldus

Kui olete lĂ”puni lugenud ja tunnete segadust — "mida see oli?", siis vĂ€ljendan teile oma siirat kaastunnet. Ma ei sundinud teid seda lugema. Ma lihtsalt proovisin oma mĂ”tteid sĂ”nadesse panna, et leida neid, kes mĂ”tleksid samamoodi. VĂ”ib-olla suudan arutada nendega mĂ”ningaid aspekte ilusate veebirakenduste loomisel ja leida vastuseid oma kĂŒsimustele. Ja neid mul on palju.

AitÀh lugemise eest.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster