Krása je v očích pozorovatele

Již dlouho se věnuji vývoji webových aplikací. Opravdu dlouho. Svá první webová aplikace jsem vytvářel v prostředí Lotus Domino v dobách, kdy slovo „google“ ještě nebylo slovesem a lidé k vyhledávání informací na internetu používali Yahoo! a Rambler. Já jsem používal Infoseek— měli užší vyhledávání a ne tak chaotické rozhraní jako Yahoo!

Vývoj aplikací, jakýchkoli aplikací, nejen pro web — to je tvůrčí práce. Kdo by mohl s tímto tvrzením nesouhlasit? A krása v tvoření je jako praxe v vědeckém poznání — kritérium pravdy. Ale zatímco vědecká praxe je objektivní a založená na měřeních, krása je subjektivní záležitostí, závislou na tom, kdo se dívá. Tak jsem se zamyslel, co pro mě osobně znamená krásná webová aplikace?

Krása je v očích pozorovatele

(na KDPV můj pohled, pohled ženský, ale, IMHO, ženský pohled na KDPV je na místě více než mužský, vždyť to je — KDPV!)

Pod tímto článkem jsou moje vlastní kritéria toho, jaká webová aplikace může být považována za krásnou. Velmi subjektivní vyjádření, ovlivněné mými osobními zkušenostmi. Možná se někomu moje kritéria krásy budou zdát kritérii ošklivosti. Nezlobte se, máte jinou zkušenost.

A když už jste přešli pod článek, prosím, buďte opatrní v komentářích. Koneckonců, pokud můžete přestat číst článek hned, jakmile vám připadá, že je to krásné nebo dokonce ošklivé, já jako autor musím číst všechny komentáře.

Životní prostředí

Protokoly

Ani nevím, zda má smysl toto kritérium zmiňovat zvlášť. Webové aplikace žijí v síti a musí odpovídat Zákonům sítě (protokolům). Hlavní protokoly v síti jsou TCP a IP. Na nich jsou založena mnohá další protokoly, ale pro webové aplikace považuji za nejdůležitější HTTP (čili jeho rozšíření HTTPS na bázi TLS). Tedy, krásná webová aplikace je dostupná přes HTTPS/TLS (na výběr — přes HTTP), a ostatní protokoly (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, …) ji činí méně krásnou s každým dalším podporovaným protokolem. Samotná aplikace může s pomocí těchto dalších protokolů používat externí zdroje.

Co se týče WebSocket, ale nemám dostatek zkušeností s tímto protokolem v souvislosti s webovými aplikacemi. Vypadá to krásně a perspektivně, ale jak stabilní a praktické to je — nedokážu říci.

Prohlížeče

Webová aplikace stojí pouze jednou nohou na serverové straně, druhou — na straně klienta. Klientská strana je prohlížeč. Moderní prohlížeč poskytuje mnoho věcí, které moderní webová aplikace může a měla by využít ve svůj prospěch. Hezká webová aplikace využívá moderní možnosti prohlížečů a nemusí fungovat v těch prohlížečích, které moderní možnosti nenabízejí. Rozumím, že polyfily — to je nevyhnutelná opatření, ale je to neestetické. Konec konců, nejen vývojáři by měli stíhat moderní technologie, ale týká se to také uživatelů a podnikání.

Jazykové programování

S programovacími jazyky, které se používají k vytváření webových aplikací, je to velmi zamotané. Pro klientskou část webových aplikací existuje spousta technologií, které usnadňují vývojáři vytvoření triády HTML/CSS/JS (to, co rozumí všechny moderní prohlížeče). Ale v té době jsem se blízce setkal s GWT a považuji za hezké, když vývojář vidí v prohlížeči původní kód, a ne výsledek kompilace nebo transpilačního procesu. Proto používání webpackua podobných produktů pro generování klientského kódu mi, IMHO, připadá nehezké. Čím více kód, který se vykonává v prohlížeči, vypadá jako původní kód napsaný vývojářem, tím lépe. Nevěříte? Zkuste ladit v produkci kód vytvořený GWT.

Na serverové straně je větší svoboda (Java, PHP, Perl, Python, C#, Ruby, …), ale připadá mi hezké, když je na serverové straně i v prohlížeči používán stejný programovací jazyk — JavaScript. Koneckonců, jazyk určuje myšlení, a týmy souvěrců jsou produktivnější.

Humanita

Hezká webová aplikace musí být užitečná. Užitečná, především pro člověka jako koncového uživatele. Proto nemohu považovat za hezkou webovou aplikaci webové služby. Obyčejnému člověku (ne webovému vývojáři) se s nimi obtížně pracuje. Webové služby jsou hezké svým způsobem,

Hezká webová aplikace by měla mít intuitivní rozhraní. O tom se dá diskutovat, že UI‘krása’ je poměrně subjektivní záležitost. Ale s UX je to mnohem jednodušší, pokud uživatel nemůže používat aplikaci bez vzácného RTFM — špatné UX, nevzhledná webová aplikace. Nejkrásnější webové aplikace podle tohoto kritéria mohou být snadno používány dětmi, které ještě neumí číst.

Zpětná škálovatelnost

Kdysi dávno bylo možné programy přenášet na discích, nyní — na flash discích nebo je stáhnout přímo z Internetu. Zkopírovat běžnou aplikaci a spustit ji na jiném počítači — úkol triviální. S webovými aplikacemi je situace trochu jiná. Síť je globální prostředí, ve kterém není potřeba mít klony stejné webové aplikace. V síti stačí jeden Facebook, Twitter, Instagram, Mail.ru nebo Yandex. Může existovat více webových aplikací ve stejné tematické oblasti, ale s různými publiky (jako Facebook a Vkontakte, Mail.ru a Gmail, Google Maps a Azure Maps). Hardwarové zdroje potřebné pro zajištění globální dostupnosti takových webových aplikací jsou potřebné, abych to tak řekl, netriviální.

Nikdy jsem nepracoval s webovými aplikacemi takové úrovně jako vývojář a nedokážu si představit, jak to tam uvnitř funguje. Pro zajištění funkčnosti takových webových aplikací jsou potřeba týmy odpovídajících specialistů a samostatná datová centra. Obdivuji schopnost lidí kooperovat v tak rozsáhlých měřítkách a vytvářet podobné produkty, ale mým etalonem krásy je webová aplikace, kterou lze spustit na samostatném notebooku.

Krásná webová aplikace se škáluje nejen nahoru a do šířky (pro uživatele), ale také dolů a dovnitř (pro vývojáře).

„Amfibilita“

Pro přístup k moderním webovým aplikacím se používají zařízení dvou typů:

  • počítače (notebooky, desktopy);
  • mobilní zařízení (chytré telefony a tablety);

Kdesi na obzoru se rýsuje ještě „internet věcí“, ale zatím nic víc.

Počítače se od mobilních zařízení liší stejně silně, jako se suchozemské bytosti liší od vodních. Jsou to různé prostředí a kladou různé požadavky na obyvatele v nich (programy). Krásné webové aplikace nejsou ty, které se podobají amfibium, ale ty, které ve vodě — jako ryby, na souši — jako zvířata, a ve vzduchu (SEO) — jako ptáci.

Považuji „amfibilitu„ za nehezkou, je to jako pokus sedět na dvou (se SEO — třech) židlích. Raději jako Fiona z Shreka — ve dne jedna, v noci jiná. Ano, dražší. Ale lepší.

Cross-sharing

Již jsem zmínil v bodu „Zpětná škálovatelnost“, že globalita sítě umožňuje mít jednu webovou aplikaci pro celou planetu. Proto by se každá webová aplikace měla aspoň něčím odlišovat od ostatních, aby si zajistila přežití. Nicméně, mé mnohaleté zkušenosti s Magento (rámec pro budování e-commerce obchodů) říkají, že mezi jednotlivými webovými aplikacemi může být více společného než rozdílů. Krásná webová aplikace by nejen měla být modulární, ale také by měla sdílet své moduly s jinými webovými aplikacemi. Do jisté míry je tato myšlenka odrazena v specifikacích JSR 168 a JSR 286 a takových frameworků, jako jsou WordPress, Django a stejná Magento. Čím více modulů webové aplikace používají jiné webové aplikace, tím je podle mě krásnější. Křížové sdílení umožňuje vytvářet kvalitnější moduly a tím pádem stabilnější webové aplikace.

Pod modulem nemám na mysli knihovny jako jQuery nebo RequireJS — spíše větší celky, jako jsou pluginy v WordPress a Django. Ale pro knihovny platí také, že široké rozšíření knihovny umožňuje učinit ji kvalitnější a odolnější.

Harvardská architektura

Harvardská architektura, na rozdíl od nyní vládnoucí bal princetonské, předpokládá oddělení kódu a dat. Architektura se neujala, ale samotná myšlenka se mi osobně zdá krásná. Zejména pro webové aplikace. Jakákoli statika (HTML/CSS/JS/Obrázky/…) — to je kód. Může a má se kešovat jak na straně serveru, tak na straně klienta. A data — to jsou REST/JSON (krásná) nebo SOAP/XML (o něco méně krásná). Nebo WebSockets/JSON (což může být nejlepší možnost, ale nevyzkoušel jsem to).

Lokalizace

Existují dvě věci, které mě zejména zajímají při vývoji webových aplikací — to je vícejazyčné rozhraní a časové zóny. Jsem sám z Lotyšska, máme v oběhu tři jazyky: LV, RU, EN. Krásná webová aplikace by měla umožnit nejen používat více jazyků v samotné aplikaci, ale také by měla umožnit rozšíření počtu používaných jazyků pomocí externích zdrojů, jako je Crowdin. To platí i pro moduly, ze kterých se skládá webová aplikace.

S časovými pásmy je to jednoduché: ve všech případech, kdy není jasné, jak zpracovávat datum-čas, udělejte to takto: vše, co leží na serveru, odejde na server a přijde ze serveru — UTC, vše, co se zobrazuje klientovi — podle časového pásma z profilu uživatele. To je pěkné.

Kovářství místo „Hvězd smrti“

Kdysi dávno, v každém větším městě byla své kovářství. Možná i více než jedno. Některé lepší, některé horší. Byli kováři známí po celém světě, ale byli i takoví, k nimž se šlo z bezalternativnosti. Procházely války, epidemie, živelná neštěstí. Některá města zmizela spolu s obyvateli. Ale kovářské řemeslo přežilo. Místo zmizelých měst byla vystavěna nová a i v nich se objevila kovářství.

A teď se podívejte na takovou službu jako . Vytvořte A-záznam blog a určete pro něj nějakou fiktivní IP (to je oficiální. Když padnou kořenové servery, zatřese se celý svět..

Podle mého názoru nemůže být krásná webová aplikace tak velká, jako je Facebook nebo Mail.ru. To se už blíží k „Hvězdě smrti“ z hlediska prostředků potřebných k výstavbě a k udržení funkčnosti. Ano, v případě zničení Facebooku lidstvo nezmizí, jeho funkce rychle převezmou jiné aplikace (třeba VK na území RF a okolí, Instagram, Twitter, …). Přesto je zamykání významné části populace planety na jednu aplikaci — nepěkné. Tím spíše, že existují mnohem stabilnější alternativy (například torrenty).

Shrnutí

Pokud jste dočetli až do konce a cítíte zmatení — „co to bylo?“, tak vám vyjadřuji svou upřímnou soustrast. Nutil jsem vás číst to. Jen jsem se snažil obléknout své myšlenky do slov, abych našel ty, kdo myslí stejně. Možná budu moci s nimi prodiskutovat některé aspekty vytváření krásných webových aplikací a zjistit odpovědi na své otázky. A těch mám mnoho.

Děkuji za přečtení.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster