Skönhet ligger i ögonen pÄ betraktaren

Jag har lĂ€nge arbetat med utveckling av webbapplikationer. Mycket lĂ€nge. Mina första webbapplikationer i miljön Lotus Domino skapade jag nĂ€r ordet «google» Ă€nnu inte var ett verb, och för att söka information pĂ„ internet anvĂ€nde folk Yahoo! och Rambler. Jag anvĂ€nde Infoseek— de hade en mer avgrĂ€nsad sökfunktion och ett mycket mindre överbelastat grĂ€nssnitt Ă€n Yahoo!

Utveckling av applikationer, alla typer av applikationer, inte bara för webben — det Ă€r ett kreativt arbete. Ingen kan nog argumentera emot detta pĂ„stĂ„ende. Och skönhet i skapande Ă€r, precis som praktik inom vetenskaplig kunskap — sanningens kriterium. Men medan vetenskaplig praktik Ă€r objektiv och baserad pĂ„ mĂ€tningar, Ă€r skönhet ett subjektivt Ă€mne som beror pĂ„ vem som betraktar. DĂ€rför stĂ€llde jag mig frĂ„gan, vad anser jag personligen Ă€r en vacker webbapplikation?

Skönhet ligger i ögonen pÄ betraktaren

(med KDPV, min blick Ă€r en kvinnas, men, IMHO, kvinnans blick pĂ„ KDPV Ă€r mer lĂ€mplig Ă€n mĂ€nnens, eftersom detta Ă€r — KDPV!)

Nedanför listar jag mina egna kriterier för vad en webbapplikation för tillfÀllet kan betraktas som vacker. Mycket subjektiv framstÀllning, prÀglad av min personliga erfarenhet. Kanske kommer mina kriterier för det vackra att verka som kriterier för det fula för nÄgon annan. Bli inte förvÄnad, bara för att du har en annan erfarenhet.

Och eftersom du har kommit till nedanstÄende del, var vÀnlig att vara försiktig med kommentarer. Om du kan avbryta lÀsningen av artikeln sÄ snart som det som presenteras dÀr verkar fult eller till och med styggt för dig, sÄ Àr jag, som författare, tvungen att lÀsa alla kommentarer.

Livsmiljö

Protokoll

Jag vet inte ens om det Ă€r vĂ€rt att sĂ€rskilt framhĂ€va detta kriterium. Webbapplikationer lever pĂ„ nĂ€tet och mĂ„ste följa nĂ€tets lagar (protokoll). Huvudprotokollen pĂ„ nĂ€tet Ă€r TCP och IP. MĂ„nga andra protokoll bygger pĂ„ dem, men för webbapplikationer anser jag att det viktigaste Ă€r HTTP (eller snarare, dess utvidgning HTTPS baserad pĂ„ TLS). D.v.s., en vacker webbapplikation Ă€r tillgĂ€nglig via HTTPS/TLS (eller alternativt — via HTTP), och andra protokoll (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) gör den mindre vacker för varje ytterligare protokoll som stöds. SjĂ€lva applikationen kan med hjĂ€lp av dessa extra protokoll anvĂ€nda externa resurser.

NĂ€r det gĂ€ller WebSocket, sĂ„ har jag inte tillrĂ€cklig erfarenhet av att anvĂ€nda detta protokoll med webbapplikationer. Det ser vackert och lovande ut, men hur stabilt och praktiskt det Ă€r — kan jag inte sĂ€ga.

WebblÀsare

Web-applikationen stÄr bara med ena benet pÄ serversidan, det andra benet Àr pÄ klientsidan. Klientsidan Àr webblÀsaren. En modern webblÀsare erbjuder mÄnga funktioner, som ett modernt web-applikation kan och bör anvÀnda till sin fördel. En vacker web-applikation anvÀnder moderna webblÀsarfunktioner och behöver inte fungera i de webblÀsare som inte erbjuder dessa moderna funktioner. Jag förstÄr att polyfills Àr en nödbroms, men det Àr inte snyggt. Slutligen, det Àr inte bara utvecklarna som mÄste hÀnga med i moderna teknologier, det gÀller ocksÄ anvÀndare och företag.

ProgrammeringssprÄk

Resan med programmeringssprÄk som anvÀnds för att skapa web-applikationer Àr vÀldigt förvirrande. För klientsidan av web-applikationer finns det massor av teknologier som gör det enklare för utvecklaren att skapa triaden HTML/CSS/JS (det som alla moderna webblÀsare förstÄr). Men jag kom pÄ min tid nÀra i kontakt med GWT och jag tycker att det Àr vackert nÀr utvecklaren kan se den ursprungliga koden i webblÀsaren istÀllet för resultatet av kompilering eller transpiling. DÀrför tycker jag att anvÀndningen av webpackoch liknande produkter för att generera klientkod Àr, IMHO, inte snyggt. Ju mer den körbara koden i webblÀsaren liknar den ursprungliga koden som skapats av utvecklaren, desto bÀttre. Tror du inte pÄ det? Försök att debugga koden frÄn GWT i produktion.

PĂ„ serversidan finns det större frihet (Java, PHP, perl, python, C#, Ruby, 
), men jag tycker att det Ă€r vackert nĂ€r samma programmeringssprĂ„k — JavaScript — anvĂ€nds bĂ„de pĂ„ serversidan och i webblĂ€saren. Trots allt sprĂ„ket definierar tĂ€nkandet, och team av likasinnade Ă€r mer produktiva.

MĂ€nsklighet

En vacker web-applikation bör vara anvÀndbar. AnvÀndbar, frÀmst för mÀnniskan som slutlig anvÀndare. DÀrför kan jag inte kalla webtjÀnster för en vacker web-applikation. WebtjÀnster.För en vanlig person (som inte Àr webbutvecklare) Àr de svÄra att hantera. WebtjÀnster Àr vackra pÄ sitt sÀtt,

En vacker web-applikation bör ha ett intuitivt anvĂ€ndargrĂ€nssnitt. Man kan diskutera om UIĂ€r en ganska subjektiv sak. Men med UX Ă€r det mycket enklare om anvĂ€ndaren inte kan anvĂ€nda applikationen utan den eftertraktade RTFM — dĂ„lig UX, ful web-applikation. De vackraste web-applikationerna i detta avseende kan enkelt anvĂ€ndas av barn som Ă€nnu inte kan lĂ€sa.

Återkopplingsskala

För lÀnge sedan kunde program överföras pÄ diskett, nu pÄ USB-minnen eller laddas ner direkt frÄn nÀtet. Att kopiera en vanlig applikation och köra den pÄ en annan maskin Àr en trivial uppgift. Web-applikationer Àr dock nÄgot annorlunda. NÀtverket Àr en global miljö dÀr det inte finns nÄgot behov av att ha kloner av samma web-applikation. Det rÀcker med en Facebook, Twitter, Instagram, Mail.ru eller Yandex. Man kan ha olika web-applikationer inom samma tematiska nisch, men med olika mÄlgrupper (som Facebook och Vkontakte, Mail.ru och Gmail, Google Maps och Azure Maps). De hÄrdvaruresurser som krÀvs för att sÀkerstÀlla global tillgÄng till sÄdana web-applikationer behövs, kan man sÀga, inte triviala.

Jag har aldrig arbetat med web-applikationer av den hÀr nivÄn som utvecklare och har ingen aning om hur de fungerar dÀr inne. För att sÀkerstÀlla att sÄdana web-applikationer fungerar krÀvs team av relevanta specialister och separata datacenter. Jag beundrar mÀnniskors förmÄga till samarbete i sÄdana skala och skapandet av sÄdana produkter, men min skönhetsideal Àr en web-applikation som kan köras pÄ en separat laptop.

En vacker web-applikation skalar inte bara uppÄt och utÄt (för anvÀndare), utan ocksÄ nedÄt och inÄt (för utvecklare).

Amfibiskhet

För att fÄ tillgÄng till moderna web-applikationer anvÀnds enheter av tvÄ typer:

  • datorer (bĂ€rbara datorer, stationĂ€ra datorer);
  • mobila enheter (smartphones och surfplattor);

NÄgonstans i horisonten skymtar ocksÄ "internet av saker", men tills vidare sÄ.

Datorer skiljer sig frĂ„n mobila enheter lika mycket som landlevande varelser skiljer sig frĂ„n vattenlevande. Det Ă€r olika miljöer och de stĂ€ller olika krav pĂ„ de varelser som lever i dem (program). Vackra web-applikationer Ă€r inte de som liknar amfibier, utan de som i vatten — som fiskar, pĂ„ land — som djur, och i luften (SEO) — som fĂ„glar.

Jag anser att "amfibiskhet" Ă€r oestetiskt, det Ă€r som att försöka sitta pĂ„ tvĂ„ (med SEO — tre) stolar. BĂ€ttre att vara som Fiona frĂ„n Shrek — ensam pĂ„ dagen, men en annan pĂ„ natten. Ja, dyrare. Men bĂ€ttre.

Cross-sharing

Jag har redan nĂ€mnt i avsnittet "Återkommande Skalbarhet" att nĂ€tverkets globalitet ger möjligheten att ha en web-applikation pĂ„ hela planeten. DĂ€rför mĂ„ste varje web-applikation skilja sig pĂ„ nĂ„got sĂ€tt frĂ„n andra för att sĂ€kerstĂ€lla sin överlevnad. Trots detta har min mĂ„ngĂ„riga erfarenhet med Magento (ramverk för att bygga e-handelsbutiker) visat att mellan separata web-applikationer kan det finnas fler likheter Ă€n skillnader. En vacker web-applikation bör inte bara vara modulĂ€r, den bör ocksĂ„ dela sina moduler med andra web-applikationer. PĂ„ nĂ„got sĂ€tt Ă„terspeglas denna idĂ© i specifikationerna JSR 168 och JSR 286 samt sĂ„dana ramverk som WordPress, Django och samma Magento. Ju fler moduler av web-applikationen som anvĂ€nds av andra web-applikationer, desto vackrare Ă€r den i min mening. Cross-sharing möjliggör skapandet av mer kvalitativa moduler och, som en följd, mer stabila web-applikationer.

Med moduler menar jag inte bibliotek sĂ„som jQuery eller RequireJS — utan snarare större enheter, som plugins i WordPress och Django. Men för bibliotek gĂ€ller ocksĂ„ tesen att bred spridning av biblioteket gör det mer kvalitativt och stabilt.

Harvardarkitektur

Harvardarkitektur, till skillnad frĂ„n den nuvarande dominanta Princeton-arkitekturen, innebĂ€r separation av kod och data. Arkitekturen tog aldrig fart, men sjĂ€lva idĂ©n verkar vacker för mig, sĂ€rskilt för web-applikationer. All statisk information (HTML/CSS/JS/Bilder
) Ă€r kod. Den kan och bör cachas, antingen pĂ„ serversidan eller klientens sida. Och data Ă€r REST/JSON (vackert) eller SOAP/XML (lite mindre vackert). Eller WebSockets/JSON (kan vara det bĂ€sta alternativet, men jag har inte provat).

Lokalisering

Det finns tvĂ„ saker som sĂ€rskilt oroar mig vid utveckling av web-applikationer — det Ă€r flersprĂ„kigt grĂ€nssnitt och tidszoner. Jag kommer sjĂ€lv frĂ„n Lettland, dĂ€r vi har tre sprĂ„k i bruk: LV, RU, EN. En vacker web-applikation bör kunna erbjuda möjligheten att anvĂ€nda flera sprĂ„k i sjĂ€lva applikationen, men ocksĂ„ tillĂ„ta utökning av antalet sprĂ„k med hjĂ€lp av externa resurser, sĂ„som Crowdin. Detta gĂ€ller ocksĂ„ för modulerna som en web-applikation byggs av.

Med tidszoner Ă€r det enkelt, i alla fall nĂ€r det Ă€r oklart hur man ska hantera datum och tid: allt som ligger pĂ„ servern gĂ„r till servern och kommer frĂ„n servern — UTC, allt som visas för klienten — enligt tidszonen i anvĂ€ndarprofilen. Det Ă€r vackert.

Smidesverk istÀllet för "DödsstjÀrnor"

För lÀnge sedan hade varje mer eller mindre stor stad sitt eget smedja. Kanske till och med flera. Vissa bÀttre, andra sÀmre. Det fanns smeder som var kÀnda över hela vÀrlden, och sÄ fanns det sÄdana man gick till av brist pÄ alternativ. Krig, epidemier och naturkatastrofer hÀrjade. Vissa stÀder försvann tillsammans med sin befolkning. Men smideskonsten fortsatte att leva. IstÀllet för de försvunna stÀderna byggdes nya, och i dem dök det ocksÄ upp smeder.

Och nu, titta pÄ en sÄdan tjÀnst som DNS. NÀr rotservrarna gÄr ner, krÀks hela vÀrlden.

Enligt min mening kan en vacker webbtjĂ€nst inte vara av samma storlek som Facebook eller Mail.ru. Det ligger nĂ€rmare "DödsstjĂ€rnan" bĂ„de nĂ€r det gĂ€ller resurser som behövs för byggande och resurser som behövs för att upprĂ€tthĂ„lla funktionalitet. Ja, om Facebook skulle försvinna skulle mĂ€nskligheten inte försvinna, dess funktioner skulle snabbt övertas av andra applikationer (samma VK i Ryssland och angrĂ€nsande omrĂ„den, Instagram, Twitter, 
). ÄndĂ„ Ă€r det oetiskt att lĂ„sa en betydande del av planetens befolkning till en applikation — det Ă€r fult. SĂ€rskilt med mer robusta alternativ som finns (till exempel, filmer).

Sammanfattning

Om du har lĂ€st till slutet och kĂ€nner förundran — "vad var det hĂ€r?", sĂ„ uttrycker jag mitt uppriktiga deltagande. Jag tvingade dig inte att lĂ€sa detta. Jag försökte bara sĂ€tta mina tankar i ord för att hitta de som tĂ€nker likadant. Kanske kan jag diskutera vissa aspekter av att skapa vackra webbtjĂ€nster och fĂ„ svar pĂ„ mina frĂ„gor. Och jag har mĂ„nga sĂ„dana.

Tack för att du lÀste.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster