Jeg har længe arbejdet med udvikling af webapplikationer. Meget længe. Mine første webapplikationer i miljøet skabte jeg i de tider, hvor ordet «google» endnu ikke var blevet et verbum, og når folk skulle søge information på internettet, brugte de Yahoo! og Rambler. Jeg brugte — de havde en indsnævrende søgning og ikke en så overfyldt grænseflade som Yahoo!
Udviklingen af applikationer, enhver applikation, ikke kun til web, er et kreativt arbejde. Der vil næppe være nogen, der vil argumentere imod denne påstand. Og skønhed i kreativitet er som praksis i videnskabelig viden — en sandhedens kriterium. Men mens den videnskabelige praksis er objektiv og baseret på målinger, er skønhed et subjektivt emne, der afhænger af den, der ser. Så jeg stillede mig selv spørgsmålet: hvad er for mig personligt en smuk webapplikation?

(med CDPV, mit øje, kvinders øje, men, IMHO, kvinders øje på CDPV er mere passende end mandens, for det er — !)
Under linjen er mine egne kriterier for, hvilken webapplikation der i øjeblikket kan betragtes som smuk. En meget subjektiv fremstilling, bestemt af min personlige erfaring. Måske vil nogle finde mine kriterier for skønhed som kriterier for grimhed. Bliv ikke overrasket, bare fordi du har en anden erfaring.
Og da du er kommet under linjen, så vær venligst forsigtig i kommentarerne. For hvis du kan stoppe med at læse artiklen, så snart det, der bliver præsenteret, virker grimt eller endda hæsligt for dig, så er jeg, som forfatter, nødt til at læse alle kommentarer.
Habitats
Protokoller
Ved ikke engang, om det er værd at udskille dette kriterium. Webapplikationer lever på nettet og er nødt til at overholde netværkets love (protokoller). De vigtigste protokoller på nettet er og . Mange andre protokoller bygger på dem, men for webapplikationer anser jeg det for det mest vigtige (eller rettere sagt, dets udvidelse baseret på ). Det vil sige, en smuk webapplikation er tilgængelig via HTTPS/TLS (eller som et alternativ — via HTTP), og de andre protokoller (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, …) gør det mindre smukt med hver yderligere understøttet protokol. Selve applikationen kan ved hjælp af disse ekstra protokoller bruge eksterne ressourcer.
Hvad angår , så jeg har ikke tilstrækkelig erfaring med at bruge denne protokol med webapplikationer. Det ser smukt og lovende ud, men hvor stabilt og praktisk det er — kan jeg ikke sige.
Browsere
Web-applikationen står kun med den ene fod på serversiden, den anden – på klientsiden. Klientsiden er browseren. Den moderne browser tilbyder , som moderne web-applikationer kan og bør udnytte til deres fordel. En flot web-applikation bruger de moderne muligheder, som browsere tilbyder, og er ikke forpligtet til at fungere i de browsere, der ikke tilbyder disse moderne funktioner. Jeg forstår, at er en nødforanstaltning, men det er ikke pænt. I sidste ende skal ikke kun udviklerne følge med i moderne teknologier; det gælder også brugerne og forretningen.
programmeringssprog
Med de programmeringssprog, der anvendes til at skabe web-applikationer, er der meget forvirring. Til klientsiden af web-applikationerne findes der mange teknologier, der gør det lettere for udvikleren at skabe triaden HTML/CSS/JS (det, som alle moderne browsere forstår). Men jeg har tidligere haft et nært forhold til , og jeg synes, det er flot, når udvikleren kan se den originale kode i browseren i stedet for resultatet af kompilering eller transpilering. Derfor er brugen af ’er og lignende produkter til generation af klientkode, IMHO, ikke pænt. Jo mere den eksekverede kode i browseren ligner den kildekode, der er skabt af udvikleren, jo bedre. Tvivler du? Prøv at debugge koden, der er skabt af GWT, i produktionen.
På serversiden er der mere frihed (Java, PHP, Perl, Python, C#, Ruby, …), men jeg synes, det er pænt, når der anvendes det samme programmeringssprog – JavaScript – både på serversiden og i browseren. Alligevel , og grupper af ligesindede er mere produktive.
Menneskelighed
En flot web-applikation skal være nyttig. Nyttig, først og fremmest, for mennesket som den endelige forbruger. Derfor kan jeg ikke kalde en web-applikation for flot . For den almindelige person (ikke web-udvikleren) er de svære at forstå. Web-tjenester er smukke på deres egen måde,
En flot web-applikation skal have et intuitivt interface. Man kan diskutere om ’ er et ret subjektivt emne. Men med er alt meget enklere; hvis brugeren ikke kan bruge applikationen uden den stræbende – dårlig UX, en grim web-applikation. De smukkeste web-applikationer med hensyn til dette kriterium kan nemt bruges af børn, der endnu ikke kan læse.
Tilbagevendende Skalerbarhed
For længe siden kunne programmer overføres på disketter, nu kan de overføres via USB-nøgler eller downloades direkte fra nettet. At kopiere en almindelig applikation og køre den på en anden maskine er en triviel opgave. Med webapplikationer er situationen dog lidt anderledes. Internettet er et globalt miljø, hvor det ikke er nødvendigt at have kloner af den samme webapplikation. Én Facebook, Twitter, Instagram, Mail.ru eller Yandex er tilstrækkeligt. Man kan have forskellige webapplikationer inden for den samme tematiske niche, men med forskellige publikum (som Facebook og Vkontakte, Mail.ru og Gmail, Google Maps og Azure Maps). De hardware-ressourcer, der kræves for at sikre global tilgængelighed af sådanne webapplikationer, er så at sige .
Jeg har aldrig arbejdet med webapplikationer på dette niveau som udvikler og kan ikke forestille mig, hvordan de er indeni. For at sikre funktionaliteten af sådanne webapplikationer kræves hold af relevante specialister og separate datacentre. Jeg er imponeret over menneskers evne til at samarbejde i sådanne skalaer og skabe sådanne produkter, men mit skønhedsideal er en webapplikation, der kan køre på en enkelt bærbar computer.
En smuk webapplikation skaleres ikke kun opad og sidelæns (for brugerne), men også nedad og indad (for udviklerne).
Amfibie-tilstand
Adgang til moderne webapplikationer sker via to typer enheder:
- computere (bærbare, stationære);
- mobile enheder (smartphones og tablets);
Et eller andet sted i horisonten lurer også, men indtil videre er det sådan.
Computere adskiller sig fra mobile enheder lige så meget, som landlevende væsner adskiller sig fra vandlevende. Det er forskellige miljøer, og de stiller forskellige krav til de væsner (programmer), der lever i dem. Smukke webapplikationer er ikke dem, der ligner , men dem, der i vandet - som fisk, på land - som dyr, og i luften () - som fugle.
Jeg finder "amfibie-tilstand" grim; det er som at forsøge at sidde på to (med SEO - tre) stole. Bedre at være som Fiona fra Shrek - én om dagen, en anden om natten. Ja, det er dyrere. Men bedre.», det er som at forsøge at sidde på to (med SEO – tre) stole. Bedre at være som Fiona fra Shrek – en om dagen, en anden om natten. Ja, det er dyrere. Men bedre.
Krydsdelings
Jeg har allerede nævnt i punktet «Tilbageholdelig Skalerbarhed», at globaliteten af nettet giver mulighed for at have én webapplikation for hele planeten. Derfor skal hver webapplikation adskille sig på en eller anden måde fra de andre for at sikre sin overlevelse. Alligevel viser min mangeårige erfaring med (rammen til opbygning af e-commerce butikker), at der kan være flere ligheder end forskelle mellem forskellige webapplikationer. En smuk webapplikation skal ikke kun være modulær, den skal også dele sine moduler med andre webapplikationer. På en eller anden måde er denne idé reflekteret i JSR 168 og JSR 286 samt i sådanne rammer som , og Magento. Jo flere moduler af webapplikationen der bruges af andre webapplikationer, desto smukkere er den i mine øjne. Cross-sharing tillader udviklingen af mere kvalitetsrige moduler og dermed mere stabile webapplikationer.
Med et modul mener jeg ikke biblioteker som jQuery eller RequireJS — nærmere større enheder, som plugins i og . Men for biblioteker gælder det også, at en bred udbredelse af biblioteket gør det mere kvalitetsrigt og stabilt.
Harvard-arkitekturen
, i modsætning til den nuværende herskende , indebærer en opdeling af kode og data. Arkitekturen er ikke slået igennem, men selve idéen virker, efter min mening, smuk. Især for webapplikationer. Enhver statisk indhold (HTML/CSS/JS/Billeder/…) er kode. Det kan og skal caches både på serversiden og klientsiden. Og data er / (smukke) eller / (lidt mindre smukke). Eller WebSockets/JSON (måske den bedste løsning, men jeg har ikke prøvet).
Lokalisering
Der er to ting, som jeg er særlig bekymret over ved udviklingen af webapplikationer — det er flersprogede grænseflader og tidszoner. Jeg kommer selv fra Letland, hvor vi bruger tre sprog: LV, RU, EN. En smuk webapplikation skal ikke kun give mulighed for at bruge flere sprog i selve applikationen, men også tillade udvidelsen af antallet af brugte sprog ved hjælp af eksterne ressourcer såsom . Det samme gælder for de moduler, som sammensætter en webapplikation.
Med tidszoner er alt simpelt; i alle tilfælde, hvor det er uklart, hvordan man behandler dato-tid, gør følgende: alt, hvad der ligger på serveren, går til serveren og kommer fra serveren - UTC, alt, hvad der vises for klienten - i henhold til den tidszone, der er angivet i brugerens profil. Det er smukt.
Smedjer i stedet for «Dødsstjerner»
For længe siden havde hver mere eller mindre stor by sin egen smedje. Måske ikke kun én. Nogle var bedre, nogle var dårligere. Der var smedemestrer, der var kendte overalt i verden, og der var dem, som man kun gik til i mangel af alternativer. Krige, epidemier, naturkatastrofer passerede. Nogle byer forsvandt sammen med deres befolkning. Men smedekunsten forblev i live. I stedet for de forsvundne byer blev der bygget nye, og der dukkede også smedjer op i dem.
Og nu, se på en tjeneste som . Når rotserverne fejler, .
Efter min mening kan et smukt web-applikation ikke være så stort som Facebook eller Mail.ru. Det er nærmere en «», både i de ressourcer, der kræves til opbygningen, og i de ressourcer, der kræves for at opretholde funktionaliteten. Ja, i tilfælde af Facebooks ødelæggelse forsvinder menneskeheden ikke; dens funktioner vil hurtigt blive overtaget af andre applikationer (den samme på russisk territorium og omkringliggende områder, Instagram, Twitter, ...). Alligevel er det grimt at binde en betydelig del af planetens befolkning til én applikation. Især i lyset af, at der findes meget mere pålidelige alternativer (for eksempel, ).
CV
Hvis du har læst til ende og føler dig forvirret - «hvad var det?», så udtrykker jeg min oprigtige medfølelse. Jeg har ikke tvunget dig til at læse dette. Jeg har bare forsøgt at sætte mine tanker i ord for at finde dem, der tænker ligesom mig. Måske kan jeg diskutere nogle aspekter omkring oprettelse af smukke web-applikationer med dem og finde svar på mine spørgsmål. Og jeg har mange spørgsmål.
Tak for at læse.
Kilde: habr.com
