kecantikan ada di mata yang melihatnya

Saya telah mengembangkan aplikasi web sejak lama. Dahulu kala. Aplikasi web pertama Anda di lingkungan Domino teratai Saya menciptakan pada hari-hari ketika kata "google" belum menjadi kata kerja, dan untuk mencari informasi di Internet orang menggunakan Yahoo! dan Rambler. Saya menggunakannya cari info'om - pencarian mereka menyempit dan antarmukanya tidak terlalu kelebihan beban seperti Yahoo!

Pengembangan aplikasi, aplikasi apa pun, tidak hanya untuk web, adalah karya kreatif. Tidak mungkin ada orang yang akan membantah pernyataan ini. Dan keindahan dalam kreativitas seperti praktik dalam pengetahuan ilmiah - sebuah kriteria kebenaran. Namun jika praktik ilmiah bersifat objektif dan berdasarkan pengukuran, maka kecantikan adalah subjek yang subjektif, tergantung siapa yang memandangnya. Jadi saya bertanya pada diri sendiri, aplikasi web apa yang bagus untuk saya pribadi?

kecantikan ada di mata yang melihatnya

(di KDPV, matanya bukan milikku, itu mata perempuan, tapi IMHO, mata perempuan di KDPV lebih cocok daripada mata laki-laki, karena - KDPV!)

Di bawah ini adalah kriteria saya sendiri tentang aplikasi web apa yang saat ini dianggap cantik. Pernyataan yang sangat subyektif berdasarkan pengalaman pribadi saya. Mungkin bagi sebagian orang, kriteria kecantikan saya tampak seperti kriteria keburukan. Jangan kaget, Anda hanya punya pengalaman berbeda.

Dan karena Anda sudah memasuki potongan, harap berhati-hati dalam berkomentar. Lagi pula, jika Anda dapat berhenti membaca sebuah artikel segera setelah apa yang tertulis di dalamnya tampak jelek atau bahkan jelek bagi Anda, maka saya, sebagai penulis, terpaksa membaca semua komentarnya.

Habitat

Protokol

Saya bahkan tidak tahu apakah kriteria ini layak dibuat secara terpisah. Aplikasi web hidup di Web dan dipaksa untuk mematuhi Hukum Web (protokol). Protokol utama di Internet adalah: TCP и IP. Banyak protokol lain yang didasarkan pada mereka, tetapi untuk aplikasi web saya menganggap yang paling penting HTTP (atau lebih tepatnya, perluasannya HTTPS di pangkalan TLS). Artinya, aplikasi web yang indah tersedia melalui HTTPS/TLS (opsional - melalui HTTP), dan protokol lainnya (LDAP, RPC, IMAP4, POP3, SMTP, FTP, NNTP, ...) membuatnya kurang indah dengan masing-masing dukungan tambahan protokol. Aplikasi itu sendiri dapat menggunakan sumber daya eksternal menggunakan protokol tambahan ini.

mengenai WebSocket, maka saya tidak punya cukup pengalaman menggunakan protokol ini dengan aplikasi web. Kelihatannya cantik dan menjanjikan, tapi saya tidak bisa mengatakan seberapa stabil dan praktisnya.

Browser

Aplikasi web hanya memiliki satu kaki di sisi server, yang lain di sisi klien. Sisi klien adalah browser. Browser modern menyediakan banyak hal, yang dapat dan harus digunakan oleh aplikasi web modern untuk keuntungannya. Aplikasi web yang indah menggunakan kemampuan browser modern dan tidak perlu bekerja di browser yang tidak menyediakan kemampuan modern. aku mengerti itu polyfill - ini adalah tindakan yang perlu, tapi jelek. Pada akhirnya, tidak hanya pengembang yang harus mengikuti perkembangan teknologi modern, hal ini juga berlaku bagi pengguna dan bisnis.

ЯП

Dengan bahasa pemrograman yang digunakan untuk membuat aplikasi web, semuanya menjadi sangat membingungkan. Untuk aplikasi web sisi klien, ada banyak teknologi yang memungkinkan pengembang memfasilitasi pembuatan triad HTML/CSS/JS (sesuatu yang dipahami semua browser modern). Tetapi pada suatu waktu saya melakukan kontak dekat dengan GWT dan menurut saya indah sekali ketika pengembang melihat kode asli di browser, dan bukan hasil kompilasi atau transpilasi. Oleh karena itu gunakan paket web'dan produk serupa untuk menghasilkan kode klien, IMHO, jelek. Semakin mirip kode yang dijalankan di browser dengan kode sumber yang dibuat oleh pengembang, maka semakin baik. Tidak percaya padaku? Coba debug kode yang dihasilkan oleh GWT dalam produksi.

Ada lebih banyak kebebasan di sisi server (Java, PHP, Perl, python, C#, Ruby, ...), tapi menurut saya indah bila bahasa pemrograman yang sama digunakan baik di sisi server maupun di sisi server. peramban - JavaScript. Tetap bahasa menentukan pemikiran, dan tim yang terdiri dari orang-orang yang berpikiran sama akan lebih produktif.

Kemanusiaan

Aplikasi web yang indah harus bermanfaat. Bermanfaat terutama bagi manusia sebagai konsumen akhir. Oleh karena itu, saya tidak bisa menyebutnya sebagai aplikasi web yang indah Layanan web. Sulit bagi orang biasa (bukan pengembang web) untuk bekerja dengan mereka. Layanan web itu indah dengan caranya sendiri,

Aplikasi web yang indah harus memiliki antarmuka yang intuitif. Orang bisa berdebat tentang itu UIIni adalah hal yang agak subyektif. Hidung UX semuanya jauh lebih sederhana jika pengguna tidak dapat menggunakan aplikasi tanpa harta karunnya RTFM - UX buruk, aplikasi web jelek. Aplikasi web terindah yang memenuhi kriteria ini dapat dengan mudah digunakan oleh anak-anak yang belum bisa membaca.

Skalabilitas Terbalik

Dahulu kala, program dapat ditransfer ke floppy disk, sekarang ke flash drive, atau langsung diunduh dari Internet. Menyalin aplikasi biasa dan menjalankannya di komputer lain adalah tugas yang sepele. Situasi dengan aplikasi web agak istimewa. Jaringan adalah lingkungan global di mana tidak perlu ada klon dari aplikasi web yang sama. Di Internet, satu Facebook, Twitter, Instagram, Mail.ru atau Yandex sudah cukup. Anda dapat memiliki aplikasi web berbeda dalam ceruk tematik yang sama, tetapi dengan audiens berbeda (seperti Facebook dan Vkontakte, Mail.ru dan Gmail, Google Maps dan Azure Maps). Sumber daya perangkat keras untuk memastikan ketersediaan global aplikasi web tersebut diperlukan, katakanlah, tidak sepele.

Saya belum pernah bekerja dengan aplikasi web tingkat ini sebagai pengembang dan tidak tahu cara kerjanya di dalamnya. Untuk memastikan fungsionalitas aplikasi web tersebut, diperlukan tim spesialis yang relevan dan pusat data terpisah. Saya mengagumi kemampuan orang untuk berkolaborasi dalam skala besar dan menciptakan produk semacam itu, namun standar kecantikan saya adalah aplikasi web yang dapat dijalankan di laptop terpisah.

Aplikasi web yang indah tidak hanya berskala ke atas dan ke luar (untuk pengguna), tetapi juga ke bawah dan ke dalam (untuk pengembang).

"Amfibi"

Untuk mengakses aplikasi web modern, dua jenis perangkat digunakan:

  • komputer (laptop, desktop);
  • perangkat seluler (ponsel pintar dan tablet);

Di suatu tempat di cakrawala tampak lebih banyak lagi"Internet untuk segala“Tapi itu saja untuk saat ini.

Komputer berbeda dari perangkat seluler seperti halnya makhluk darat berbeda dari unggas air. Ini adalah lingkungan yang berbeda dan memberikan tuntutan berbeda pada makhluk (program) yang hidup di dalamnya. Aplikasi web yang indah bukanlah yang terlihat seperti itu amfibi, dan yang di air seperti ikan, yang di darat seperti binatang, dan yang di udara (SEO) - seperti burung.

Menurutku itu jelek"sifat amfibi“, ibarat mencoba duduk di dua (dengan SEO - tiga) kursi. Lebih baik seperti Fiona dari Shrek - satu di siang hari dan satu lagi di malam hari. Ya, lebih mahal. Tapi lebih baik.

Berbagi silang

Saya telah mencatat di paragraf “Skalabilitas Terbalik” bahwa globalitas Jaringan memungkinkan untuk memiliki satu aplikasi web per Planet. Oleh karena itu, setiap aplikasi web setidaknya harus berbeda dari yang lain untuk menjamin kelangsungan hidupnya. Namun, pengalaman saya selama bertahun-tahun dengan Magento (kerangka kerja untuk membangun toko e-niaga) mengatakan bahwa mungkin terdapat lebih banyak persamaan antara masing-masing aplikasi web daripada perbedaan. Aplikasi web yang bagus tidak hanya harus bersifat modular, tetapi juga harus berbagi modulnya dengan aplikasi web lainnya. Sampai batas tertentu, gagasan ini tercermin spesifikasi JSR 168 dan JSR 286 dan kerangka kerja seperti WordPress, Django dan Magento yang sama. Semakin banyak modul suatu aplikasi web yang digunakan oleh aplikasi web lain, semakin indah menurut saya. Berbagi silang memungkinkan Anda membuat modul dengan kualitas lebih tinggi dan, sebagai hasilnya, aplikasi web yang lebih stabil.

Yang saya maksud dengan modul bukan perpustakaan seperti jQuery atau RequireJS - melainkan entitas yang lebih besar, seperti plugin WordPress и Django. Namun bagi perpustakaan, tesis juga berlaku bahwa penyebaran perpustakaan yang luas memungkinkan perpustakaan menjadi lebih baik dan berkelanjutan.

Arsitektur Harvard

Arsitektur Harvard, tidak seperti bola yang berkuasa saat ini Pangeran, menyiratkan pemisahan kode dan data. Arsitekturnya tidak berkembang pesat, tetapi idenya sendiri tampak indah bagi saya pribadi. Khusus untuk aplikasi web. Statis apa pun (HTML/CSS/JS/Gambar/…) adalah kode. Itu dapat dan harus di-cache di sisi server atau di sisi klien. Dan datanya adalah ISTIRAHAT/JSON (cantik) atau SOAP/XML (sedikit kurang indah). Atau WebSockets/JSON (mungkin pilihan terbaik, tapi saya belum mencobanya).

Lokalisasi

Ada dua hal yang menjadi perhatian saya ketika mengembangkan aplikasi web - antarmuka multibahasa dan zona waktu. Saya dari Latvia, kami memiliki tiga bahasa yang digunakan: LV, RU, EN. Aplikasi web yang indah seharusnya tidak hanya memungkinkan Anda menggunakan beberapa bahasa dalam aplikasi itu sendiri, tetapi juga memungkinkan Anda memperluas jumlah bahasa yang digunakan menggunakan sumber daya eksternal, seperti kerumunan. Hal yang sama berlaku untuk modul tempat aplikasi web dibuat.

Dengan zona waktu semuanya sederhana, dalam semua kasus ketika tidak jelas bagaimana memproses tanggal-waktu, lakukan ini: semua yang ada di server masuk ke server dan berasal dari server - UTC, semua yang ditampilkan di klien - menurut zona waktu dari profil pengguna. Itu indah.

Menempa bukannya Death Stars

Dahulu kala, setiap kota besar memiliki bengkelnya sendiri. Mungkin tidak sendirian. Ada yang lebih baik, ada pula yang lebih buruk. Ada pandai besi yang dikenal di seluruh dunia, dan ada juga yang datang karena tidak ada alternatif lain. Ada perang, epidemi, dan bencana alam. Beberapa kota menghilang seiring dengan populasinya. Namun kerajinan pandai besi tetap hidup. Di tempat kota-kota yang hilang, kota-kota baru dibangun dan bengkel-bengkel juga muncul di dalamnya.

Sekarang lihat layanan seperti DNS. Ketika server root mati, seluruh dunia sedang demam.

Menurut saya, aplikasi web yang cantik tidak bisa sebesar Facebook atau Mail.ru. Ini sudah lebih dekat ke "Bintang Kematian"baik dari segi sumber daya yang diperlukan untuk konstruksi, dan sumber daya yang diperlukan untuk mempertahankan pengoperasian. Ya, kalau Facebook hancur, umat manusia tidak akan hilang, fungsinya akan cepat diambil alih oleh aplikasi lain (yang sama VC di wilayah Federasi Rusia dan sekitarnya, Instagram, Twitter, ...). Namun, membatasi sebagian besar populasi dunia pada satu aplikasi bukanlah hal yang baik. Terlebih lagi, mengingat tersedianya alternatif yang jauh lebih berkelanjutan (misalnya. hujan lebat).

Ringkasan

Jika Anda sudah membaca sampai akhir dan bingung - “Apa itu?“Kalau begitu aku mengungkapkan simpati tulusku padamu. Aku tidak memaksamu untuk membaca ini. Saya hanya mencoba mengungkapkan pemikiran saya ke dalam kata-kata untuk menemukan orang lain yang berpikiran sama. Mungkin saya bisa berdiskusi dengan mereka beberapa aspek dalam membuat aplikasi web yang indah dan menemukan jawaban atas pertanyaan saya. Dan saya punya banyak dari mereka.

Terima kasih sudah membaca.

Sumber: www.habr.com

Tambah komentar