Již dlouho se věnuji vývoji webových aplikací. Opravdu dlouho. Svá první webová aplikace jsem vytvářel v prostředí 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 — 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?

(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 — !)
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 a . Na nich jsou založena mnohá další protokoly, ale pro webové aplikace považuji za nejdůležitější (čili jeho rozšíření na bázi ). 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 , 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 , 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 — 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 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í a 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ů, , 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 . 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 ‘krása’ je poměrně subjektivní záležitost. Ale s je to mnohem jednodušší, pokud uživatel nemůže používat aplikaci bez vzácného — š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, .
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ě „“, 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í , ale ty, které ve vodě — jako ryby, na souši — jako zvířata, a ve vzduchu () — jako ptáci.
Považuji „„ 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 (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 JSR 168 a JSR 286 a takových frameworků, jako jsou , 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 a . Ale pro knihovny platí také, že široké rozšíření knihovny umožňuje učinit ji kvalitnější a odolnější.
Harvardská architektura
, na rozdíl od nyní vládnoucí bal , 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 / (krásná) nebo / (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 . 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 . Když padnou kořenové servery, .
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 „“ 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 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 ).
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
