He estado desarrollando aplicaciones web durante mucho tiempo. Mucho tiempo Cre茅 mis primeras aplicaciones web en el entorno Lotus Domino en un momento en que la palabra "google" a煤n no era un verbo, y la gente usaba Yahoo! para buscar informaci贸n en Internet. y Rambler. Us茅 Infoseek : ten铆an una b煤squeda m谩s estrecha y una interfaz no tan fea y sobrecargada como Yahoo!
Desarrollar aplicaciones, cualquier aplicaci贸n, no solo para la web, es un trabajo creativo. Es poco probable que alguien discuta con esta declaraci贸n. Y la belleza en la creatividad es como una pr谩ctica en el conocimiento cient铆fico: un criterio de verdad. Pero si la pr谩ctica cient铆fica es objetiva y se basa en mediciones, entonces la belleza es un tema subjetivo, depende de qui茅n est茅 mirando. Entonces me preguntaba, pero 驴qu茅 es una hermosa aplicaci贸n web para m铆 personalmente?
(el ojo en KDPV no es m铆o, el ojo es femenino, pero, en mi humilde opini贸n, el ojo femenino en KDPV es m谩s apropiado que el ojo masculino, 隆porque esto es KDPV !)
Bajo el corte, mis propios criterios para qu茅 aplicaci贸n web se puede considerar hermosa en este momento. Presentaci贸n muy subjetiva, debido a mi experiencia personal. Quiz谩s alguien ver谩 mis criterios de belleza como criterios de fealdad. No te sorprendas, solo tienes una experiencia diferente.
Y dado que te quedaste por debajo del corte, ten cuidado en los comentarios, por favor. Despu茅s de todo, si puede dejar de leer un art铆culo tan pronto como lo que le dice le parezca feo o incluso feo, entonces yo, como autor, tengo que leer todos los comentarios.
Habitat
Protocolos
Ni siquiera s茅 si este criterio debe tomarse por separado. Las aplicaciones web viven en la web y est谩n obligadas a cumplir con las leyes de la web (protocolos). Los principales protocolos en la Web son TCP e IP . Muchos otros protocolos se basan en ellos, pero para las aplicaciones web considero que HTTP es el m谩s importante (o m谩s bien, su extensi贸n HTTPS basada en TLS ). Es decir, una hermosa aplicaci贸n web est谩 disponible a trav茅s de HTTPS / TLS (como opci贸n, a trav茅s de HTTP), y otros protocolos (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) la hacen menos bella con cada uno Protocolo opcionalmente compatible. La aplicaci贸n en s铆 misma puede usar recursos externos usando estos protocolos adicionales.
En cuanto a WebSocket , no tengo suficiente experiencia en el uso de este protocolo con aplicaciones web. Se ve hermoso y prometedor, pero no puedo decir qu茅 tan estable y pr谩ctico es.
Navegadores
Una aplicaci贸n web con un solo pie se encuentra en el lado del servidor y el otro en el lado del cliente. El lado del cliente es el navegador. Un navegador moderno ofrece muchas cosas que una aplicaci贸n web moderna puede y debe usar para su beneficio. Una aplicaci贸n web hermosa utiliza las capacidades modernas de los navegadores y no se requiere que funcione en aquellos navegadores que no ofrecen capacidades modernas. Entiendo que los polifilos son una medida necesaria , pero esto es feo. Al final, no solo los desarrolladores deben seguir el ritmo de las tecnolog铆as modernas, los usuarios y las empresas tambi茅n se ven afectados.
YaP
Con los lenguajes de programaci贸n que se utilizan para crear aplicaciones web, todo es muy confuso. Existen muchas tecnolog铆as para el lado del cliente de las aplicaciones web que permiten al desarrollador facilitar la creaci贸n de la tr铆ada HTML / CSS / JS (algo que todos los navegadores modernos entienden). Pero una vez tuve un contacto cercano con GWT y lo considero hermoso cuando un desarrollador ve el c贸digo original en un navegador, y no el resultado de la compilaci贸n o la transpilaci贸n. Por lo tanto, usar webpack y productos similares para generar c贸digo de cliente, en mi humilde opini贸n, es feo. Cuanto m谩s similar sea el c贸digo ejecutado en el navegador al c贸digo fuente creado por el desarrollador, mejor. No lo creo? Intente desviar en producci贸n el c贸digo creado por GWT.
Hay m谩s libertad en el lado del servidor (Java, PHP, perl, python, C #, Ruby, ...), pero me parece que es hermoso cuando tanto el lado del servidor como el navegador usan un lenguaje de programaci贸n: JavaScript. A煤n as铆, el lenguaje determina el pensamiento , y los equipos de ideas afines son m谩s productivos.
La humanidad
Una hermosa aplicaci贸n web deber铆a ser 煤til. 脷til, en primer lugar, para una persona como usuario final. Por lo tanto, no puedo llamar a los servicios web una hermosa aplicaci贸n web. Es dif铆cil para una persona com煤n (no un desarrollador web) hacerlo. Los servicios web son hermosos a su manera,
Una hermosa aplicaci贸n web debe tener una interfaz intuitiva. Puede discutir sobre las IU : esto es algo bastante subjetivo. Pero con UX, todo es mucho m谩s simple si el usuario no puede usar la aplicaci贸n sin el codiciado RTFM : una mala UX, una aplicaci贸n web fea. Las aplicaciones web m谩s bellas con respecto a este criterio pueden ser utilizadas f谩cilmente por ni帽os que a煤n no saben leer.
Escalabilidad inversa
脡rase una vez, los programas pod铆an transferirse en disquetes, ahora en unidades flash o descargarse inmediatamente de la Web. Copiar una aplicaci贸n normal y ejecutarla en otra m谩quina es una tarea trivial. Con las aplicaciones web, la situaci贸n es algo especial. Una red es un entorno global en el que no es necesario tener clones de la misma aplicaci贸n web. Un Facebook, Twitter, Instagram, Mail.ru o Yandex es suficiente en la Web. Puede tener diferentes aplicaciones web en el mismo nicho tem谩tico, pero con diferentes audiencias (como Facebook y Vkontakte, Mail.ru y Gmail, Google Maps y Azure Maps). Se necesitan recursos de hardware para garantizar la disponibilidad global de tales aplicaciones web, digamos, no triviales .
Nunca he trabajado con aplicaciones web de tal nivel como desarrollador y no puedo imaginar c贸mo est谩n organizadas en su interior. Para garantizar la operatividad de tales aplicaciones web, se necesitan equipos de especialistas relevantes y centros de datos separados. Admiro la capacidad de las personas de cooperar a tal escala y crear productos similares, pero mi est谩ndar de belleza es una aplicaci贸n web que se puede ejecutar en una computadora port谩til separada.
Una hermosa aplicaci贸n web escala no solo hacia arriba y en amplitud (para usuarios), sino hacia abajo y hacia adentro (para desarrolladores).
"Anfibiosidad"
Se utilizan dos tipos de dispositivos para acceder a las aplicaciones web modernas:
- computadoras (computadoras port谩tiles, computadoras de escritorio);
- dispositivos m贸viles (tel茅fonos inteligentes y tabletas);
En alg煤n lugar en el horizonte se vislumbra otra " Internet de las cosas ", pero hasta ahora.
Las computadoras de los dispositivos m贸viles difieren tanto como las criaturas terrestres difieren de las aves acu谩ticas. Estos son entornos diferentes y hacen diferentes demandas a las criaturas (programas) que viven en ellos. Las hermosas aplicaciones web no son las que parecen anfibios , sino aquellas que est谩n en el agua como los peces, en la tierra como los animales y en el aire ( SEO ) como las aves.
Considero feo el anfibianismo feo, es como tratar de sentarse en dos (con SEO - tres) sillas. Mejor que Fiona de Shrek, una durante el d铆a y otra por la noche. Si, mas caro. Pero mejor
Intercambio cruzado
Ya he se帽alado en el p谩rrafo "Escalabilidad inversa" que la naturaleza global de la red hace posible tener una aplicaci贸n web en el planeta. Por lo tanto, cada aplicaci贸n web debe ser al menos algo diferente de las dem谩s para garantizar su supervivencia. Sin embargo, mis muchos a帽os de experiencia con Magento (el marco para construir tiendas de comercio electr贸nico) dice que puede haber m谩s en com煤n entre las aplicaciones web individuales que diferencias. Una hermosa aplicaci贸n web no solo debe ser modular, sino que tambi茅n debe compartir sus m贸dulos con otras aplicaciones web. Hasta cierto punto, esta idea se refleja en las especificaciones de JSR 168 y JSR 286 y en marcos como WordPress , Django y el mismo Magento. Cuanto mayor sea el n煤mero de m贸dulos de aplicaciones web utilizados por otras aplicaciones web, m谩s hermoso es desde mi punto de vista. El intercambio cruzado le permite crear mejores m贸dulos y, como resultado, aplicaciones web m谩s estables.
Por m贸dulo, no me refiero a bibliotecas como jQuery o RequireJS, sino a formaciones m谩s grandes, como complementos en WordPress y Django . Pero para las bibliotecas, la tesis tambi茅n es cierta de que la amplia distribuci贸n de la biblioteca hace que sea mejor y m谩s estable.
Arquitectura de Harvard
La arquitectura de Harvard , a diferencia de la actual bola de Princeton , implica la separaci贸n de c贸digo y datos. La arquitectura no despeg贸, pero la idea misma me parece hermosa. Especialmente para aplicaciones web. Cualquier est谩tica (HTML / CSS / JS / Images / ...) es c贸digo. Puede y debe almacenarse en cach茅 al menos en el lado del servidor, al menos en el lado del cliente. Y los datos son REST / JSON (hermoso) o SOAP / XML (un poco menos hermoso). O WebSockets / JSON (puede ser la mejor opci贸n, pero no lo he intentado).
Localizaci贸n
Hay dos cosas que me interesan especialmente cuando desarrollo aplicaciones web: esta es una interfaz y zonas horarias multiling眉es. Yo mismo soy de Letonia, utilizamos tres idiomas: LV, RU, EN. Una aplicaci贸n web hermosa deber铆a proporcionar una oportunidad no solo para usar varios idiomas en la aplicaci贸n en s铆, sino tambi茅n para ampliar la cantidad de idiomas utilizados con recursos externos, como Crowdin . Lo mismo es cierto para los m贸dulos a partir de los cuales se construye la aplicaci贸n web.
Todo es simple con las zonas horarias, en todos los casos cuando no est谩 claro c贸mo procesar la fecha y hora, haga esto: todo lo que est谩 en el servidor va al servidor y proviene del servidor, UTC, todo lo que se muestra en el cliente, seg煤n la zona horaria de perfil de usuario Es hermoso
Forjas en lugar de estrellas de la muerte
脡rase una vez, cada ciudad m谩s o menos grande ten铆a su propia fragua. Quiz谩s no uno. Algunos son mejores, otros son peores. Hab铆a maestros de herrer铆a conocidos en todo el mundo, y hab铆a quienes no ten铆an otra alternativa. Guerras, epidemias, desastres naturales arrasaron. Algunas ciudades desaparecieron junto con la poblaci贸n. Pero la herrer铆a se qued贸 para vivir. En lugar de las ciudades desaparecidas, se erigieron otras nuevas y tambi茅n aparecieron forjas en ellas.
Ahora mira un servicio como DNS . Cuando los servidores ra铆z se acuestan, todo el mundo tiene fiebre .
En mi opini贸n, una hermosa aplicaci贸n web no puede ser tan grande como Facebook o Mail.ru. Esto est谩 m谩s cerca de la Estrella de la Muerte , tanto en t茅rminos de los recursos necesarios para la construcci贸n como en los recursos necesarios para mantener la operatividad. S铆, en caso de que Facebook sea destruido, la humanidad no desaparecer谩, sus funciones ser谩n asumidas r谩pidamente por otras aplicaciones (el mismo VK en la Federaci贸n de Rusia y adyacentes, Instagram, Twitter, ...). Sin embargo, encerrar a una parte importante de la poblaci贸n del planeta en una sola aplicaci贸n es feo. Adem谩s, en presencia de alternativas mucho m谩s estables (por ejemplo, torrentes ).
Resumen
Si has le铆do hasta el final y est谩s perplejo: " 驴qu茅 fue eso? ", Entonces te expreso mi sincera simpat铆a. No te hice leer esto. Solo intent茅 poner mis pensamientos en palabras para encontrar a aquellos que piensan lo mismo. Tal vez pueda discutir con ellos algunos aspectos de la creaci贸n de hermosas aplicaciones web y encontrar las respuestas a mis preguntas. Y tengo muchos de ellos.
Gracias por leer