La bellezza è negli occhi di chi guarda

Mi occupo di sviluppo applicazioni web da molto tempo. Tanto tempo fa. Le tue prime applicazioni web nell'ambiente Lotus domino Ho creato in quei giorni in cui la parola "Google" non era ancora un verbo, e per cercare informazioni su Internet si usava Yahoo! e Rambler. l'ho usato ricerca informazioni'om - avevano una ricerca restrittiva e non un'interfaccia così brutta e sovraccarica come Yahoo!

Lo sviluppo di applicazioni, qualsiasi applicazione, non solo per il web, è un lavoro creativo. È improbabile che qualcuno possa discutere con questa affermazione. E la bellezza nella creatività è come la pratica nella conoscenza scientifica: un criterio di verità. Ma se la pratica scientifica è oggettiva e basata su misurazioni, allora la bellezza è un argomento soggettivo, a seconda di chi guarda. Quindi mi sono chiesto: cos'è per me una bella applicazione web?

La bellezza è negli occhi di chi guarda

(sul KDPV l'occhio non è il mio, è l'occhio di una donna, ma, IMHO, l'occhio di una donna sul KDPV è più appropriato di quello di un uomo, perché è - KDPV!)

Sotto il taglio ci sono i miei criteri per quale applicazione web può attualmente essere considerata bella. Un'affermazione molto soggettiva basata sulla mia esperienza personale. Forse ad alcuni i miei criteri di bellezza sembreranno criteri di bruttezza. Non essere sorpreso, hai solo un'esperienza diversa.

E poiché hai già inserito il taglio, fai attenzione nei tuoi commenti. Dopotutto, se riesci a smettere di leggere un articolo non appena ciò che viene affermato ti sembra brutto o addirittura brutto, allora io, come autore, sono costretto a leggere tutti i commenti.

Habitat

protocolli

Non so nemmeno se valga la pena stabilire questo criterio separatamente. Le applicazioni Web vivono sul Web e sono costrette a rispettare le Leggi del Web (protocolli). I principali protocolli su Internet sono: TCP и IP. Molti altri protocolli si basano su di essi, ma per le applicazioni web li considero i più importanti HTTP (o meglio, la sua estensione HTTPS sulla base di TLS). Cioè, una bella applicazione web è disponibile tramite HTTPS/TLS (facoltativamente - tramite HTTP), e altri protocolli (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) la rendono meno bella con ciascuno inoltre supportato protocollo. L'applicazione stessa può utilizzare risorse esterne utilizzando questi protocolli aggiuntivi.

Per quanto riguarda WebSocket, allora non ho abbastanza esperienza nell'uso di questo protocollo con applicazioni web. Sembra bello e promettente, ma non posso dire quanto sia stabile e pratico.

i browser

Un'applicazione web ha solo un piede sul lato server, l'altro sul lato client. Il lato client è il browser. Fornisce un browser moderno molte cose, che una moderna applicazione web può e deve utilizzare a proprio vantaggio. Una bella applicazione web utilizza funzionalità di browser moderne e non è necessario che funzioni in browser che non forniscono funzionalità moderne. lo capisco polyfill - questa è una misura necessaria, ma è brutta. Alla fine non solo gli sviluppatori devono tenere il passo con le moderne tecnologie, ma questo vale anche per gli utenti e le aziende.

JP

Con i linguaggi di programmazione utilizzati per creare applicazioni web, tutto è molto confuso. Per il lato client delle applicazioni web, esistono molte tecnologie che consentono allo sviluppatore di facilitare la creazione della triade HTML/CSS/JS (qualcosa che tutti i browser moderni comprendono). Ma un tempo sono entrato in stretto contatto con GWT e penso che sia bellissimo quando uno sviluppatore vede nel browser il codice originale, e non il risultato di una compilazione o transpilazione. Pertanto utilizzare webpack'e prodotti simili per generare codice client, IMHO, sono brutti. Più il codice eseguito nel browser è simile al codice sorgente creato dallo sviluppatore, meglio è. Non mi credi? Prova a eseguire il debug del codice generato da GWT in produzione.

C'è più libertà lato server (Java, PHP, perl, python, C#, Ruby, ...), ma mi sembra bello quando si utilizza lo stesso linguaggio di programmazione sia lato server che in browser - JavaScript. Ancora il linguaggio determina il pensieroe i team di persone che la pensano allo stesso modo sono più produttivi.

umanità

Una bella applicazione web dovrebbe essere utile. Utile, innanzitutto, per l'uomo, in quanto consumatore finale. Pertanto, non posso definirla una bellissima applicazione web servizi web. È difficile per una persona comune (non uno sviluppatore web) lavorare con loro. I servizi web sono belli a modo loro,

Una bella applicazione web dovrebbe avere un'interfaccia intuitiva. Si può discutere UIE' una cosa piuttosto soggettiva. Naso UX tutto è molto più semplice se l'utente non può utilizzare l'applicazione senza il prezioso RTFM - pessima UX, brutta applicazione web. Le applicazioni web più belle relative a questo criterio possono essere facilmente utilizzate dai bambini che non sanno ancora leggere.

Scalabilità inversa

Una volta i programmi potevano essere trasferiti su floppy disk, ora su unità flash o scaricati immediatamente da Internet. Copiare un'applicazione normale ed eseguirla su un altro computer è un compito banale. La situazione con le applicazioni web è alquanto particolare. La rete è un ambiente globale in cui non è necessario avere cloni della stessa applicazione web. Su Internet è sufficiente un Facebook, Twitter, Instagram, Mail.ru o Yandex. Puoi avere diverse applicazioni web nella stessa nicchia tematica, ma con pubblici diversi (come Facebook e Vkontakte, Mail.ru e Gmail, Google Maps e Azure Maps). Sono necessarie risorse hardware per garantire la disponibilità globale di tali applicazioni web, diciamo, non banale.

Non ho mai lavorato con applicazioni web di questo livello come sviluppatore e non ho idea di come funzionino al loro interno. Per garantire la funzionalità di tali applicazioni web sono necessari team di specialisti pertinenti e data center separati. Ammiro la capacità delle persone di collaborare su tale scala e creare tali prodotti, ma il mio standard di bellezza è un'applicazione web che può essere eseguita su un laptop separato.

Una bella applicazione web si adatta non solo verso l'alto e verso l'esterno (per gli utenti), ma anche verso il basso e verso l'interno (per gli sviluppatori).

"Anfibio"

Per accedere alle moderne applicazioni web vengono utilizzati due tipi di dispositivi:

  • computer (laptop, desktop);
  • dispositivi mobili (smartphone e tablet);

Da qualche parte all'orizzonte si profila di più "Internet delle cose“Ma per ora è tutto.

I computer differiscono dai dispositivi mobili tanto quanto le creature terrestri differiscono dagli uccelli acquatici. Questi sono ambienti diversi e pongono esigenze diverse alle creature (programmi) che vivono in essi. Le belle applicazioni web non sono quelle che sembrano anfibi, e quelli nell'acqua sono come pesci, sulla terra come animali, e nell'aria (Gestione SEO) - come gli uccelli.

Penso che sia brutto"anfibia“, è come cercare di sedersi su due (con il SEO – tre) sedie. Meglio come Fiona di Shrek: uno di giorno e un altro di notte. Sì, più costoso. Ma meglio.

Condivisione incrociata

Ho già notato nel paragrafo “Scalabilità Inversa” che la globalità della Rete rende possibile avere una applicazione web per Pianeta. Pertanto, ogni applicazione web deve essere almeno leggermente diversa dalle altre per garantirne la sopravvivenza. Tuttavia, la mia esperienza pluriennale con Magento (un framework per la creazione di negozi di e-commerce) afferma che potrebbero esserci più somiglianze tra le singole applicazioni web che differenze. Una buona applicazione web non dovrebbe solo essere modulare, ma dovrebbe anche condividere i suoi moduli con altre applicazioni web. In una certa misura questa idea si riflette specificazioni JSR 168 e JSR 286 e framework come WordPress, Django e lo stesso MagentoA mio parere, più moduli utilizza un'applicazione web, più è bella. La condivisione tra moduli consente la creazione di moduli di qualità superiore e, di conseguenza, di applicazioni web più stabili.

Per modulo non intendo librerie come jQuery o RequireJS, piuttosto entità più grandi, come i plugin in WordPress и Django. Ma per le biblioteche vale anche la tesi che la distribuzione capillare della biblioteca permette di renderla migliore e più sostenibile.

Architettura di Harvard

Architettura di Harvard, a differenza della palla attualmente in vigore Princeton, implica la separazione del codice e dei dati. L'architettura non è decollata, ma personalmente l'idea in sé mi sembra bellissima. Soprattutto per le applicazioni web. Qualsiasi statico (HTML/CSS/JS/Immagini/...) è codice. Può e deve essere memorizzato nella cache sia sul lato server che sul lato client. E i dati lo sono REST/JSON (bello) o SOAP/XML (leggermente meno bello). Oppure WebSockets/JSON (potrebbe essere l'opzione migliore, ma non l'ho provato).

localizzazione

Ci sono due cose che mi preoccupano particolarmente quando sviluppo applicazioni web: un'interfaccia multilingue e i fusi orari. Vengo dalla Lettonia, abbiamo tre lingue in uso: LV, RU, EN. Una bella applicazione web non dovrebbe solo consentire di utilizzare più lingue nell'applicazione stessa, ma anche consentire di espandere il numero di lingue utilizzate utilizzando risorse esterne, come CrowdIn. Lo stesso vale per i moduli da cui è assemblata l'applicazione web.

Con i fusi orari tutto è semplice, in tutti i casi in cui non è chiaro come elaborare la data e l'ora, fai così: tutto ciò che è sul server va al server e proviene dal server - UTC, tutto ciò che viene visualizzato sul client - in base al fuso orario del profilo utente. È bella.

Forge invece di Morte Nera

Tanto tempo fa ogni città più o meno grande aveva la propria fucina. Forse non solo. Alcuni sono migliori, altri sono peggiori. C'erano fabbri conosciuti in tutto il mondo, e c'erano anche quelli a cui si rivolgevano perché non c'erano alternative. C’erano guerre, epidemie e disastri naturali. Alcune città scomparvero insieme alla popolazione. Ma il mestiere del fabbro è rimasto vivo. Al posto delle città scomparse ne furono costruite di nuove e in esse apparvero anche delle fucine.

Ora guarda un servizio come DNS. Quando i server root non funzionano, il mondo intero ha la febbre.

Secondo me, una bella applicazione web non può essere grande quanto Facebook o Mail.ru. Questo è già più vicino a "Morte Nera"sia in termini di risorse necessarie per la costruzione, sia di risorse necessarie per mantenere l'operatività. Sì, se Facebook viene distrutto, l’umanità non scomparirà; le sue funzioni verranno presto sostituite da altre applicazioni (le stesse VC sul territorio della Federazione Russa e zone limitrofe, Instagram, Twitter, ...). Tuttavia, vincolare una parte significativa della popolazione del pianeta a un’unica applicazione non è carino. Inoltre, data la disponibilità di alternative molto più sostenibili (ad es. torrents).

Riassunto

Se hai letto fino alla fine e sei confuso - "Cosa è stato?“Quindi ti esprimo la mia sincera solidarietà. Non ti ho obbligato a leggerlo. Ho solo provato a esprimere a parole i miei pensieri per trovare altri che la pensano allo stesso modo. Forse posso discutere con loro alcuni aspetti della creazione di bellissime applicazioni web e trovare risposte alle mie domande. E ne ho molti.

Grazie per aver letto.

Fonte: habr.com

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster