krása je v očiach toho, kto sa pozerá

Vývoju webových aplikácií sa venujem už dlho. Pred dlhým časom. Vaše prvé webové aplikácie v prostredí Lotus domino Stvoril som v tých dňoch, keď slovo "google" ešte nebolo sloveso a na vyhľadávanie informácií na internete ľudia používali Yahoo! a Rambler. Použil som to Infoseek'om - mali zúžené vyhľadávanie a nie také škaredé preťažené rozhranie ako Yahoo!

Vývoj aplikácií, akýchkoľvek aplikácií, nielen pre web, je kreatívna práca. Je nepravdepodobné, že by s týmto tvrdením niekto polemizoval. A krása v kreativite je ako prax vo vedeckom poznaní - kritérium pravdy. Ale ak je vedecká prax objektívna a založená na meraniach, potom je krása subjektívnym predmetom, v závislosti od toho, kto sa pozerá. Spýtal som sa teda sám seba, aká je pre mňa osobne krásna webová aplikácia?

krása je v očiach toho, kto sa pozerá

(na KDPV oko nie je moje, je to ženské oko, ale IMHO je ženské oko na KDPV vhodnejšie ako mužské, pretože - KDPV!)

Pod strihom sú moje vlastné kritériá na to, akú webovú aplikáciu možno v súčasnosti považovať za krásnu. Veľmi subjektívne tvrdenie založené na mojej osobnej skúsenosti. Možno sa niekomu moje kritériá krásy budú zdať ako kritériá škaredosti. Nečuduj sa, len máš inú skúsenosť.

A keďže ste už zadali strih, buďte opatrní vo svojich komentároch. Ak totiž dokážete prestať čítať článok hneď, ako sa vám to, čo je v ňom uvedené, zdá škaredé alebo dokonca škaredé, tak ja ako autor som nútený čítať všetky komentáre.

Habitat

Protokoly

Ani neviem, či sa oplatí robiť toto kritérium samostatne. Webové aplikácie žijú na webe a sú nútené dodržiavať zákony webu (protokoly). Hlavné protokoly na internete sú: TCP и IP. Na nich je založených mnoho ďalších protokolov, no pre webové aplikácie považujem za najdôležitejšie HTTP (alebo skôr jeho rozšírenie HTTPS na základni TLS). To znamená, že krásna webová aplikácia je dostupná cez HTTPS/TLS (voliteľne - cez HTTP) a ďalšie protokoly (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) ju robia menej krásnou s každým dodatočne podporovaným protokol. Samotná aplikácia môže využívať externé zdroje pomocou týchto dodatočných protokolov.

Pokiaľ ide o WebSocket, potom nemám dostatok skúseností s používaním tohto protokolu s webovými aplikáciami. Vyzerá to krásne a sľubne, ale nemôžem povedať, aké je to stabilné a praktické.

Prehliadače

Webová aplikácia má iba jednu nohu na strane servera a druhú na strane klienta. Klientskou stranou je prehliadač. Moderný prehliadač poskytuje Mnoho vecí, ktorý moderná webová aplikácia môže a mala by využiť vo svoj prospech. Krásna webová aplikácia využíva moderné možnosti prehliadača a nevyžaduje sa, aby fungovala v prehliadačoch, ktoré neposkytujú moderné možnosti. Rozumiem tomu polyfilly - je to nevyhnutné opatrenie, ale je to škaredé. V konečnom dôsledku nielen vývojári musia držať krok s modernými technológiami, to platí aj pre používateľov a podniky.

YAP

S programovacími jazykmi, ktoré sa používajú na vytváranie webových aplikácií, je všetko veľmi mätúce. Pre klientsku stranu webových aplikácií existuje množstvo technológií, ktoré umožňujú vývojárom uľahčiť vytváranie HTML/CSS/JS triády (niečo, čomu rozumejú všetky moderné prehliadače). Ale raz som prišiel do úzkeho kontaktu s G.W.T. a myslím si, že je krásne, keď vývojár vidí pôvodný kód v prehliadači a nie výsledok kompilácie alebo transpilácie. Preto používajte webpack'a podobné produkty na generovanie klientskeho kódu, IMHO, sú škaredé. Čím viac je kód, ktorý beží v prehliadači, podobný zdrojovému kódu vytvorenému vývojárom, tým lepšie. neveríš mi? Skúste odladiť kód generovaný GWT vo výrobe.

Na strane servera je väčšia voľnosť (Java, PHP, perl, python, C#, Ruby, ...), ale zdá sa mi, že je krásne, keď sa na strane servera aj v prehliadač - JavaScript. Stále jazyk určuje mysleniea tímy rovnako zmýšľajúcich ľudí sú produktívnejšie.

ľudskosť

Krásna webová aplikácia by mala byť užitočná. Užitočné predovšetkým pre ľudí ako konečného spotrebiteľa. Preto to nemôžem nazvať krásnou webovou aplikáciou webové služby. Pre bežného človeka (nie webového vývojára) je ťažké s nimi pracovať. Webové služby sú krásne svojím vlastným spôsobom,

Krásna webová aplikácia by mala mať intuitívne rozhranie. O tom sa dá polemizovať UITo je dosť subjektívna vec. Nos UX všetko je oveľa jednoduchšie, ak používateľ nemôže používať aplikáciu bez cenného RTFM - zlé UX, škaredá webová aplikácia. Najkrajšie webové aplikácie vzhľadom na toto kritérium môžu ľahko používať deti, ktoré ešte nevedia čítať.

Inverzná škálovateľnosť

Kedysi sa programy dali prenášať na diskety, teraz - na flash disky alebo okamžite stiahnuť z internetu. Skopírovanie bežnej aplikácie a jej spustenie na inom počítači je triviálna úloha. Situácia s webovými aplikáciami je trochu zvláštna. Sieť je globálne prostredie, v ktorom nie je potrebné mať klony rovnakej webovej aplikácie. Na internete stačí jeden Facebook, Twitter, Instagram, Mail.ru alebo Yandex. Môžete mať rôzne webové aplikácie v rovnakom tematickom výklenku, ale s rôznym publikom (napríklad Facebook a Vkontakte, Mail.ru a Gmail, Mapy Google a Azure Maps). Na zabezpečenie globálnej dostupnosti takýchto webových aplikácií sú potrebné hardvérové ​​zdroje, povedzme, netriviálne.

S webovými aplikáciami tejto úrovne som ako vývojár nikdy nepracoval a netuším, ako vo vnútri fungujú. Na zabezpečenie funkčnosti takýchto webových aplikácií sú potrebné tímy relevantných špecialistov a samostatné dátové centrá. Obdivujem schopnosť ľudí spolupracovať v takom rozsahu a vytvárať takéto produkty, no mojím štandardom krásy je webová aplikácia, ktorú je možné spustiť na samostatnom notebooku.

Krásna webová aplikácia sa mení nielen smerom nahor a von (pre používateľov), ale aj smerom nadol a dovnútra (pre vývojárov).

"Obojživelnosť"

Na prístup k moderným webovým aplikáciám sa používajú dva typy zariadení:

  • počítače (notebooky, stolné počítače);
  • mobilné zariadenia (smartfóny a tablety);

Niekde na obzore sa črtá viac"internet vecí"Ale to je zatiaľ všetko.

Počítače sa líšia od mobilných zariadení rovnako, ako sa suchozemské tvory líšia od vodného vtáctva. Sú to rôzne prostredia a kladú rôzne nároky na tvory (programy) v nich žijúce. Krásne webové aplikácie nie sú tie, ktoré vyzerajú obojživelníkova tí vo vode sú ako ryby, na zemi ako zvieratá a vo vzduchu (SEO) - ako vtáky.

Podľa mňa je to škaredé"obojživelnosť“, je to ako snažiť sa sedieť na dvoch (so SEO - troch) stoličkách. Lepšie ako Fiona zo Shreka – jedna cez deň a druhá v noci. Áno, drahšie. Ale lepšie.

Krížové zdieľanie

Už som poznamenal v odseku „Reverzná škálovateľnosť“, že globálnosť siete umožňuje mať jednu webovú aplikáciu na planétu. Každá webová aplikácia sa preto musí aspoň trochu odlišovať od ostatných, aby bola zabezpečená jej existencia. Avšak moje dlhoročné skúsenosti s Magento (rámec pre budovanie e-commerce obchodov) hovorí, že medzi jednotlivými webovými aplikáciami môže byť viac podobností ako rozdielov. Skvelá webová aplikácia by nemala byť len modulárna, ale mala by svoje moduly zdieľať aj s inými webovými aplikáciami. Do určitej miery sa táto myšlienka odráža v technické údaje JSR 168 a JSR 286 a frameworky ako napr WordPress, Django a to isté MagentoČím viac modulov webová aplikácia používa, tým je podľa mňa krajšia. Krížové zdieľanie umožňuje vytvárať kvalitnejšie moduly a v dôsledku toho stabilnejšie webové aplikácie.

Modulom nemyslím knižnice ako jQuery alebo RequireJS - skôr väčšie entity, ako sú pluginy v WordPress и Django. Ale pre knižnice platí aj téza, že rozšírené rozšírenie knižnice umožňuje robiť ju lepšou a udržateľnejšou.

Harvardská architektúra

Harvardská architektúra, na rozdiel od aktuálne vládnuceho plesu Princeton, znamená oddelenie kódu a údajov. Architektúra sa neujala, ale samotná myšlienka sa mi osobne zdá krásna. Najmä pre webové aplikácie. Akýkoľvek statický (HTML/CSS/JS/obrázky/…) je kód. Môže a mal by byť uložený do vyrovnávacej pamäte buď na strane servera alebo na strane klienta. A dáta sú REST/JSON (krásne) resp SOAP/XML (trochu menej pekné). Alebo WebSockets/JSON (možno je to najlepšia možnosť, ale neskúšal som to).

lokalizácia

Pri vývoji webových aplikácií ma znepokojujú najmä dve veci – viacjazyčné rozhranie a časové pásma. Pochádzam z Lotyšska, používame tri jazyky: LV, RU, EN. Krásna webová aplikácia by vám mala umožňovať nielen používanie viacerých jazykov v samotnej aplikácii, ale tiež by vám mala umožniť rozšíriť počet používaných jazykov pomocou externých zdrojov, ako napr. tlačenica. To isté platí pre moduly, z ktorých je webová aplikácia zostavená.

S časovými pásmami je všetko jednoduché, vo všetkých prípadoch, keď nie je jasné, ako spracovať dátum a čas, urobte toto: všetko, čo je na serveri, ide na server a pochádza zo servera - UTC, všetko, čo sa zobrazuje na klientovi - podľa časového pásma z užívateľského profilu. To je krásny.

Forge namiesto Hviezd smrti

Kedysi malo každé viac či menej veľké mesto svoju vyhňu. Možno nie sám. Niektoré sú lepšie, niektoré horšie. Boli kováči známi po celom svete a boli aj takí, ku ktorým prišli, pretože neexistovala alternatíva. Boli vojny, epidémie a prírodné katastrofy. Spolu s obyvateľstvom zanikli aj niektoré mestá. Ale kováčske remeslo zostalo živé. Na mieste zaniknutých miest vznikali nové a objavili sa v nich aj vyhne.

Teraz sa pozrite na službu ako DNS. Keď vypadnú koreňové servery, celý svet je v horúčke.

Podľa mňa krásna webová aplikácia nemôže byť taká veľká ako Facebook alebo Mail.ru. Toto je už bližšie k "Hviezda smrti„ako z hľadiska zdrojov potrebných na výstavbu, tak aj zdrojov potrebných na udržanie prevádzkyschopnosti. Áno, ak bude Facebook zničený, ľudstvo nezmizne, jeho funkcie rýchlo prevezmú iné aplikácie (to isté VC na území Ruskej federácie a priľahlých oblastí, Instagram, Twitter, ...). Uzamknutie významnej časti populácie planéty do jednej aplikácie však nie je pekné. Navyše, vzhľadom na dostupnosť oveľa udržateľnejších alternatív (napr. torrentov).

Zhrnutie

Ak ste dočítali až do konca a ste zmätení – “Čo to bolo?„Potom ti vyjadrujem úprimnú sústrasť. Nenútil som ťa to čítať. Len som sa snažil dať svoje myšlienky do slov, aby som našiel ostatných, ktorí zmýšľajú rovnako. Možno s nimi môžem prediskutovať niektoré aspekty vytvárania krásnych webových aplikácií a nájsť odpovede na moje otázky. A mám ich veľa.

Vďaka za prečítanie.

Zdroj: hab.com

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster