Desenvolvo aplicativos da web há muito tempo. Muito tempo. Criei meus primeiros aplicativos da Web no ambiente Lotus Domino em um momento em que a palavra "google" ainda não era um verbo e as pessoas usavam o Yahoo! para pesquisar informações na Internet. e Rambler. Eu usei o Infoseek - eles tinham uma pesquisa restrita e uma interface sobrecarregada não tão feia como o Yahoo!
Desenvolver aplicativos, qualquer aplicativo, não apenas para a web, é um trabalho criativo. É improvável que alguém discuta com essa afirmação. E a beleza da criatividade é como uma prática do conhecimento científico - um critério da verdade. Mas se a prática científica é objetiva e baseada em medições, a beleza é um assunto subjetivo, depende de quem está olhando. Então me perguntei, mas o que é um aplicativo da web bonito para mim pessoalmente?
(o olho no KDPV não é meu, o olho é feminino, mas IMHO, o olho feminino no KDPV é mais apropriado que o olho masculino, porque esse é o KDPV !)
Sob o corte, meus próprios critérios para quais aplicativos da Web podem ser considerados bonitos no momento. Apresentação muito subjetiva, devido à minha experiência pessoal. Talvez alguém veja meus critérios de beleza como critérios de feiura. Não se surpreenda, você só tem uma experiência diferente.
E desde que você foi ao corte, tenha cuidado nos comentários, por favor. Afinal, se você pode parar de ler um artigo assim que o que é declarado lhe parecer feio ou até feio, então eu, como autor, tenho que ler todos os comentários.
Habitat
Protocolos
Eu nem sei se esse critério deve ser tomado separadamente. Os aplicativos da Web vivem na Web e são forçados a cumprir as leis da Web (protocolos). Os principais protocolos na Web são TCP e IP . Muitos outros protocolos são baseados neles, mas para aplicativos da web considero o HTTP o mais importante (ou melhor, sua extensão HTTPS baseada em TLS ). Ou seja, um belo aplicativo da Web está disponível via HTTPS / TLS (como opção - via HTTP) e outros protocolos (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) tornam menos bonito a cada protocolo opcionalmente suportado. O próprio aplicativo pode usar recursos externos usando esses protocolos adicionais.
Quanto ao WebSocket , não tenho experiência suficiente usando este protocolo com aplicativos da web. Parece bonito e promissor, mas não posso dizer o quão estável e prático é.
Navegadores
Um aplicativo da Web com apenas um pé fica no lado do servidor e o outro no lado do cliente. O lado do cliente é o navegador. Um navegador moderno fornece muitas coisas que um aplicativo Web moderno pode e deve usar para sua vantagem. Um aplicativo da Web bonito usa os recursos modernos dos navegadores e não é necessário para trabalhar nesses navegadores que não fornecem recursos modernos. Entendo que os polifiles são uma medida necessária , mas isso é feio. No final, não apenas os desenvolvedores devem acompanhar o ritmo das modernas tecnologias, os usuários e os negócios também são afetados.
YaP
Com as linguagens de programação usadas para criar aplicativos da Web, tudo é muito confuso. Existem muitas tecnologias para o lado cliente de aplicativos Web que permitem ao desenvolvedor facilitar a criação da tríade HTML / CSS / JS (algo que todos os navegadores modernos entendem). Mas uma vez tive um contato próximo com o GWT e o considero bonito quando um desenvolvedor vê o código original em um navegador, e não o resultado de compilação ou transpilação. Portanto, usar o webpack e produtos similares para gerar o código do cliente, IMHO, é feio. Quanto mais o código executado no navegador for semelhante ao código fonte criado pelo desenvolvedor, melhor. Não acredita? Tente desviar na produção o código criado pelo GWT.
Há mais liberdade no lado do servidor (Java, PHP, perl, python, C #, Ruby, ...), mas me parece que é bonito quando o servidor e o navegador usam uma linguagem de programação - JavaScript. Ainda assim, a linguagem determina o pensamento , e equipes com idéias semelhantes são mais produtivas.
Humanidade
Um aplicativo da web bonito deve ser útil. Útil, antes de tudo, para uma pessoa como usuário final. Portanto, não posso chamar os serviços da Web de um aplicativo da Web bonito. É difícil para uma pessoa comum (não um desenvolvedor da Web) fazer isso. Os serviços da Web são bonitos à sua maneira,
Um aplicativo da web bonito deve ter uma interface intuitiva. Você pode discutir sobre as interfaces do usuário - isso é algo bastante subjetivo. Mas com o UX, tudo é muito mais simples se o usuário não puder usar o aplicativo sem o cobiçado RTFM - um UX ruim, um aplicativo da web feio. Os aplicativos da Web mais bonitos sobre esse critério podem ser facilmente usados por crianças que ainda não sabem ler.
Escalabilidade Reversa
Antigamente, os programas podiam ser transferidos em disquetes, agora em unidades flash, ou baixados imediatamente da Web. Copiar um aplicativo comum e executá-lo em outra máquina é uma tarefa trivial. Com aplicativos da web, a situação é um pouco especial. Uma rede é um ambiente global no qual não há necessidade de ter clones do mesmo aplicativo da web. Um Facebook, Twitter, Instagram, Mail.ru ou Yandex é suficiente na Web. Você pode ter diferentes aplicativos da Web no mesmo nicho temático, mas com diferentes públicos (como Facebook e Vkontakte, Mail.ru e Gmail, Google Maps e Azure Maps). Os recursos de hardware para garantir a disponibilidade global desses aplicativos da web são necessários, digamos, não triviais .
Eu nunca trabalhei com aplicativos da Web de um nível como desenvolvedor e não consigo imaginar como eles estão organizados por dentro. Para garantir a operacionalidade de tais aplicativos da Web, são necessárias equipes de especialistas relevantes e data centers separados. Admiro a capacidade das pessoas de cooperar em tal escala e criar produtos semelhantes, mas meu padrão de beleza é um aplicativo da Web que pode ser executado em um laptop separado.
Um aplicativo da Web bonito é dimensionado não apenas para cima e para baixo (para usuários), mas para baixo e para dentro (para desenvolvedores).
"Anfibiosidade"
Dois tipos de dispositivos são usados para acessar aplicativos da web modernos:
- computadores (laptops, desktops);
- dispositivos móveis (smartphones e tablets);
Em algum lugar no horizonte, aparece outra " Internet das coisas ", mas até agora.
Computadores de dispositivos móveis diferem tanto quanto criaturas terrestres diferem de aves aquáticas. São ambientes diferentes e exigem demandas diferentes das criaturas (programas) que vivem neles. Os aplicativos da web bonitos não são os que parecem anfíbios , mas os que estão na água como peixes, na terra como animais e no ar ( SEO ) como pássaros.
Considero o anfibianismo feio feio, é como tentar sentar em duas (com SEO - três) cadeiras. Melhor como Fiona de Shrek - uma durante o dia e outra à noite. Sim, mais caro. Mas melhor.
Compartilhamento cruzado
Eu já observei no parágrafo "Escalabilidade Reversa" que a natureza global da Rede torna possível ter um aplicativo da Web no Planeta. Portanto, cada aplicativo da web deve ser pelo menos um pouco diferente dos outros para garantir sua sobrevivência. No entanto, meus muitos anos de experiência com Magento (a estrutura para a construção de lojas de comércio eletrônico) afirma que pode haver mais em comum entre aplicativos da Web individuais do que diferenças. Um aplicativo da web bonito não deve ser apenas modular, mas também deve compartilhar seus módulos com outros aplicativos da web. Até certo ponto, essa idéia é refletida nas especificações do JSR 168 e JSR 286 e em estruturas como WordPress , Django e o mesmo Magento. Quanto maior o número de módulos de aplicativos da web usados por outros aplicativos da web, mais bonito é do meu ponto de vista. O compartilhamento cruzado permite criar módulos melhores e, como resultado, aplicativos Web mais estáveis.
Por módulo, não me refiro a bibliotecas como jQuery ou RequireJS - em vez disso, formações maiores, como plugins no WordPress e Django . Mas para as bibliotecas, a tese também é verdade que a ampla distribuição da biblioteca torna possível torná-la melhor e mais estável.
Arquitetura de Harvard
A arquitetura de Harvard , diferentemente da atual regra de Princeton , envolve a separação de código e dados. A arquitetura não decolou, mas a ideia em si me parece bonita. Especialmente para aplicativos da web. Qualquer estatística (HTML / CSS / JS / Images / ...) é código. Pode e deve ser armazenado em cache pelo menos no lado do servidor, pelo menos no lado do cliente. E os dados são REST / JSON (bonito) ou SOAP / XML (um pouco menos bonito). Ou WebSockets / JSON (pode ser a melhor opção, mas ainda não tentei).
Localização
Há duas coisas que me interessam especialmente ao desenvolver aplicativos da Web: essa é uma interface multilíngue e fusos horários. Eu mesmo sou da Letônia, usamos três idiomas: LV, RU, EN. Um aplicativo da Web bonito deve oferecer uma oportunidade não apenas de usar vários idiomas no próprio aplicativo, mas também de expandir o número de idiomas usados com recursos externos, como Crowdin . O mesmo vale para os módulos a partir dos quais o aplicativo da web é construído.
Tudo é simples com fusos horários, em todos os casos em que não está claro como processar a data e a hora, faça o seguinte: tudo o que está no servidor vai para o servidor e vem do servidor - UTC, tudo o que é exibido no cliente - de acordo com o fuso horário de perfil de usuário. É lindo.
Forjas em vez de Estrelas da Morte
Era uma vez, toda cidade mais ou menos grande tinha sua própria forja. Talvez não um. Alguns são melhores, outros são piores. Havia mestres de ferreiro conhecidos em todo o mundo, e havia aqueles que não tinham alternativa. Guerras, epidemias, desastres naturais ocorreram. Algumas cidades desapareceram junto com a população. Mas a ferraria continuava viva. Em vez das cidades desaparecidas, novas foram erguidas e forjas também apareceram nelas.
Agora olhe para um serviço como o DNS . Quando os servidores raiz ficam inativos, o mundo inteiro está com febre .
Na minha opinião, um belo aplicativo da Web não pode ser tão grande quanto o Facebook ou o Mail.ru. Isso está mais próximo da Estrela da Morte , tanto em termos dos recursos necessários para a construção quanto nos recursos necessários para manter a operacionalidade. Sim, caso o Facebook seja destruído, a humanidade não desaparecerá, suas funções serão rapidamente assumidas por outros aplicativos (o mesmo VK na Federação Russa e adjacente, Instagram, Twitter, ...). No entanto, bloquear uma parte significativa da população do planeta em um aplicativo é feio. Além disso, na presença de alternativas muito mais estáveis (por exemplo, torrents ).
Sumário
Se você leu até o fim e está perplexo - “o que foi isso? ”, Então eu lhe expresso minha sincera simpatia. Eu não fiz você ler isso. Eu apenas tentei colocar meus pensamentos em palavras para encontrar aqueles que pensam o mesmo. Talvez eu possa discutir com eles alguns aspectos da criação de aplicativos da Web bonitos e descobrir as respostas para minhas perguntas. E eu tenho muitos deles.
Obrigado pela leitura.