Saya telah mengembangkan aplikasi web untuk waktu yang lama. Waktu yang sangat lama Saya membuat aplikasi web pertama saya di lingkungan Lotus Domino pada saat kata "google" belum menjadi kata kerja, dan orang-orang menggunakan Yahoo! untuk mencari informasi di Internet. dan Rambler. Saya menggunakan Infoseek - mereka memiliki pencarian yang menyempit dan antarmuka yang tidak terlalu jelek seperti Yahoo!
Mengembangkan aplikasi, aplikasi apa pun, tidak hanya untuk web, adalah karya kreatif. Tidak mungkin ada orang yang membantah pernyataan ini. Dan keindahan dalam kreativitas seperti praktik dalam pengetahuan ilmiah - kriteria kebenaran. Tetapi jika praktik ilmiah itu objektif dan berdasarkan pada pengukuran, maka kecantikan adalah subjek yang subjektif, itu tergantung pada siapa yang melihat. Jadi saya bertanya-tanya, tetapi apakah aplikasi web yang indah bagi saya secara pribadi?
(mata pada KDPV bukan milikku, mata adalah wanita, tapi IMHO, mata wanita pada KDPV lebih tepat daripada mata pria, karena ini adalah KDPV !)
Di bawah potongan, kriteria saya sendiri di mana aplikasi web dapat dianggap cantik saat ini. Presentasi yang sangat subyektif, karena pengalaman pribadi saya. Mungkin seseorang akan melihat kriteria kecantikan saya sebagai kriteria keburukan. Jangan kaget, Anda hanya punya pengalaman berbeda.
Dan karena Anda berada di bawah potongan, maka berhati-hatilah dalam komentar, tolong. Lagi pula, jika Anda dapat berhenti membaca artikel segera setelah apa yang dinyatakan di dalamnya tampak jelek atau bahkan jelek bagi Anda, maka saya, sebagai penulis, harus membaca semua komentar.
Habitat
Protokol
Saya bahkan tidak tahu apakah kriteria ini harus diambil secara terpisah. Aplikasi web hidup di web dan dipaksa untuk mematuhi hukum web (protokol). Protokol utama di Web adalah TCP dan IP . Banyak protokol lain yang didasarkan padanya, tetapi untuk aplikasi web saya menganggap HTTP sebagai yang paling penting (atau lebih tepatnya, ekstensi HTTPS berbasis TLS -nya). Yaitu, aplikasi web yang indah tersedia melalui HTTPS / TLS (sebagai opsi - melalui HTTP), dan protokol lainnya (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) membuatnya kurang cantik dengan masing-masing protokol yang didukung opsional. Aplikasi itu sendiri dapat menggunakan sumber daya eksternal menggunakan protokol tambahan ini.
Sedangkan untuk WebSocket , saya tidak memiliki cukup pengalaman menggunakan protokol ini dengan aplikasi web. Itu terlihat indah dan menjanjikan, tetapi saya tidak bisa mengatakan betapa stabil dan praktisnya itu.
Browser
Aplikasi web dengan hanya satu kaki berdiri di sisi server, yang lain di sisi klien. Sisi klien adalah browser. Browser modern menyediakan banyak hal yang dapat dan harus digunakan aplikasi web modern untuk keuntungannya. Aplikasi web yang indah menggunakan kemampuan browser modern dan tidak diharuskan untuk bekerja di browser yang tidak menyediakan kemampuan modern. Saya mengerti bahwa polifile adalah ukuran yang perlu , tetapi ini jelek. Pada akhirnya, tidak hanya pengembang harus mengimbangi teknologi modern, pengguna dan bisnis juga terpengaruh.
YaP
Dengan bahasa pemrograman yang digunakan untuk membuat aplikasi web, semuanya sangat membingungkan. Ada banyak teknologi untuk sisi klien dari aplikasi web yang memungkinkan pengembang untuk memfasilitasi pembuatan triad HTML / CSS / JS (sesuatu yang dipahami semua browser modern). Tapi saya pernah memiliki kontak dekat dengan GWT dan menganggapnya indah ketika pengembang melihat kode asli di browser, dan bukan hasil kompilasi atau transpilasi. Oleh karena itu, menggunakan webpack dan produk serupa untuk menghasilkan kode klien, IMHO, jelek. Semakin banyak kode yang dieksekusi di browser mirip dengan kode sumber yang dibuat oleh pengembang, semakin baik. Tidak percaya Cobalah untuk membelokkan dalam produksi kode yang dibuat oleh GWT.
Ada lebih banyak kebebasan di sisi server (Java, PHP, perl, python, C #, Ruby, ...), tetapi bagi saya tampaknya indah ketika sisi server dan browser menggunakan satu bahasa pemrograman - JavaScript. Namun, bahasa menentukan pemikiran , dan tim yang berpikiran sama lebih produktif.
Kemanusiaan
Aplikasi web yang indah harus bermanfaat. Berguna, pertama-tama, untuk seseorang sebagai pengguna akhir. Karenanya, saya tidak dapat menyebut layanan web aplikasi web yang indah. Sulit bagi orang biasa (bukan pengembang web) untuk melakukannya. Layanan web indah dengan caranya sendiri,
Aplikasi web yang indah harus memiliki antarmuka yang intuitif. Anda dapat berdebat tentang UI - ini adalah hal yang agak subyektif. Tetapi dengan UX, semuanya jauh lebih sederhana jika pengguna tidak dapat menggunakan aplikasi tanpa RTFM yang didambakan - UX yang buruk, aplikasi web yang jelek. Aplikasi web yang paling indah mengenai kriteria ini dapat dengan mudah digunakan oleh anak-anak yang masih belum bisa membaca.
Skalabilitas terbalik
Sekali waktu, program dapat ditransfer pada floppy disk, sekarang di flash drive, atau langsung diunduh dari Web. Menyalin aplikasi reguler dan menjalankannya di komputer lain adalah tugas yang sepele. Dengan aplikasi web, situasinya agak istimewa. Jaringan adalah lingkungan global di mana tidak perlu memiliki klon dari aplikasi web yang sama. Satu Facebook, Twitter, Instagram, Mail.ru atau Yandex sudah cukup di Web. Anda dapat memiliki berbagai aplikasi web dalam ceruk tematik yang sama, tetapi dengan audiens yang berbeda (seperti Facebook dan Vkontakte, Mail.ru dan Gmail, Google Maps dan Azure Maps). Sumber daya perangkat keras untuk memastikan ketersediaan global aplikasi web semacam itu diperlukan, katakanlah, tidak sepele .
Saya tidak pernah bekerja dengan aplikasi web tingkat seperti pengembang dan saya tidak bisa membayangkan bagaimana mereka diatur di dalam. Untuk memastikan pengoperasian aplikasi web tersebut, diperlukan tim spesialis yang relevan dan pusat data yang terpisah. Saya mengagumi kemampuan orang untuk bekerja sama dalam skala seperti itu dan membuat produk serupa, tetapi standar kecantikan saya adalah aplikasi web yang dapat dijalankan pada laptop terpisah.
Aplikasi web yang indah berskala tidak hanya naik dan turun (untuk pengguna), tetapi turun dan masuk (untuk pengembang).
"Amfibi"
Dua jenis perangkat digunakan untuk mengakses aplikasi web modern:
- komputer (laptop, desktop);
- perangkat seluler (smartphone dan tablet);
Di suatu tempat di cakrawala tampak " Internet of things " lain, tetapi sejauh ini.
Komputer dari perangkat seluler berbeda seperti halnya makhluk darat berbeda dari unggas air. Ini adalah lingkungan yang berbeda dan mereka membuat tuntutan berbeda pada makhluk (program) yang hidup di dalamnya. Aplikasi web yang indah bukan yang terlihat seperti amfibi , tetapi yang ada di air seperti ikan, di darat seperti binatang, dan di udara ( SEO ) seperti burung.
Saya menganggap amfibi jelek, jelek, seperti mencoba duduk di dua (dengan SEO - tiga) kursi. Lebih baik sebagai Fiona dari Shrek - satu di siang hari dan satu lagi di malam hari. Ya, lebih mahal. Tapi lebih baik.
Berbagi silang
Saya telah mencatat dalam paragraf "Skalabilitas Terbalik" bahwa sifat global dari Jaringan memungkinkan untuk memiliki satu aplikasi web di Planet. Oleh karena itu, setiap aplikasi web harus setidaknya agak berbeda dari yang lain untuk memastikan kelangsungannya. Namun demikian, pengalaman saya selama bertahun-tahun dengan Magento (kerangka kerja untuk membangun toko e-commerce) mengatakan bahwa ada lebih banyak kesamaan antara aplikasi web individual daripada perbedaan. Aplikasi web yang indah tidak hanya modular, tetapi juga harus berbagi modul dengan aplikasi web lainnya. Untuk batas tertentu, ide ini tercermin dalam spesifikasi JSR 168 dan JSR 286 dan kerangka kerja seperti WordPress , Django dan Magento yang sama. Semakin banyak jumlah modul aplikasi web yang digunakan oleh aplikasi web lain, semakin indah dari sudut pandang saya. Berbagi silang memungkinkan Anda membuat modul yang lebih baik dan, sebagai hasilnya, aplikasi web yang lebih stabil.
Secara modul, maksud saya bukan perpustakaan seperti jQuery atau RequireJS - melainkan, formasi yang lebih besar, seperti plugin di WordPress dan Django . Tetapi untuk perpustakaan, tesis ini juga berlaku bahwa distribusi perpustakaan yang luas memungkinkan untuk membuatnya lebih baik dan lebih stabil.
Arsitektur Harvard
Arsitektur Harvard , tidak seperti bola Princeton yang berkuasa saat ini, melibatkan pemisahan kode dan data. Arsitekturnya tidak lepas landas, tetapi ide itu sendiri menurut saya indah. Khusus untuk aplikasi web. Statika apa pun (HTML / CSS / JS / Gambar / ...) adalah kode. Itu bisa dan harus di-cache setidaknya di sisi server, setidaknya di sisi klien. Dan datanya adalah REST / JSON (indah) atau SOAP / XML (sedikit kurang indah). Atau WebSockets / JSON (mungkin merupakan pilihan terbaik, tapi saya belum mencoba).
Lokalisasi
Ada dua hal yang sangat saya pedulikan ketika mengembangkan aplikasi web - ini adalah antarmuka multibahasa dan zona waktu. Saya sendiri dari Latvia, kami menggunakan tiga bahasa: LV, RU, EN. Aplikasi web yang indah harus memberikan peluang tidak hanya untuk menggunakan beberapa bahasa dalam aplikasi itu sendiri, tetapi juga untuk memperluas jumlah bahasa yang digunakan dengan sumber daya eksternal, seperti Crowdin . Hal yang sama berlaku untuk modul-modul dari mana aplikasi web dibangun.
Semuanya sederhana dengan zona waktu, dalam semua kasus ketika tidak jelas cara memproses tanggal-waktu, lakukan ini: semua yang ada di server masuk ke server dan berasal dari server - UTC, semua yang ditampilkan pada klien - sesuai dengan zona waktu dari profil pengguna. Itu indah.
Menempa bukan Death Stars
Sekali waktu, setiap kota besar kurang lebih memiliki bengkel sendiri. Mungkin bukan satu. Ada yang lebih baik, ada yang lebih buruk. Ada master pandai besi yang dikenal di seluruh dunia, dan ada yang datang dari tidak ada alternatif. Perang, epidemi, bencana alam melanda. Beberapa kota menghilang bersama dengan populasi. Tapi pandai besi tetap hidup. Alih-alih kota-kota yang hilang, yang baru didirikan dan menempa juga muncul di dalamnya.
Sekarang lihat layanan seperti DNS . Ketika server root berbaring, seluruh dunia mengalami demam .
Menurut pendapat saya, aplikasi web yang indah tidak boleh sebesar Facebook atau Mail.ru. Ini lebih dekat dengan Bintang Kematian , baik dalam hal sumber daya yang diperlukan untuk konstruksi dan sumber daya yang diperlukan untuk mempertahankan pengoperasian. Ya, jika Facebook dihancurkan, umat manusia tidak akan hilang, fungsinya akan dengan cepat diambil alih oleh aplikasi lain ( VK yang sama di Federasi Rusia dan berdekatan, Instagram, Twitter, ...). Namun demikian, mengunci bagian penting dari populasi planet ini ke dalam satu aplikasi adalah jelek. Selain itu, dengan adanya alternatif yang jauh lebih stabil (misalnya, torrents ).
Ringkasan
Jika Anda telah membaca sampai akhir dan bingung - " apa itu? ", Maka saya menyatakan simpati tulus saya. Saya tidak membuat Anda membaca ini. Saya hanya mencoba memasukkan pikiran saya ke dalam kata-kata untuk menemukan mereka yang berpikiran sama. Mungkin saya bisa berdiskusi dengan mereka beberapa aspek membuat aplikasi web yang indah dan mencari tahu jawaban atas pertanyaan saya. Dan saya punya banyak dari mereka.
Terima kasih sudah membaca.