apa itu "degradasi yang anggun"?


11

Saya mendengar banyak tentang istilah ini "Degradasi anggun".

Sebagai contoh ,

 "An application server should gracefully degrage when it is under heavy load "

  "Graceful degradation of user interfaces.... "

Istilah itu terlihat seperti sesuatu yang abstrak bagi saya. Adakah contoh nyata apa artinya?


5
Sebuah artikel bagus tentang topik codinghorror.com/blog/2011/04/…
JF Dion

Jawaban:


10

Berikut ini beberapa contohnya:

  • Jika Anda kehabisan sumber daya (pegangan, soket, memori, ruang drive) Anda tidak macet tetapi Anda terus melayani pengguna sebanyak yang Anda bisa layani dengan sumber daya yang tersedia. Sesuatu yang tidak menurunkan keanggunan mungkin berhenti bekerja ketika dibawa keluar amplop desain.
  • Di bawah beban yang lebih berat dari apa yang Anda rancang untuk pengguna akan mengalami respons yang lebih lambat daripada apa yang Anda rancang untuk. Tanpa degradasi yang anggun, sistem berhenti bekerja setelah persyaratan terlampaui dapat diterima.
  • Kondisi kesalahan, seperti kegagalan disk drive, kegagalan dalam inti CPU, kegagalan dalam memori. Suatu sistem yang dirancang untuk terdegradasi dengan anggun dapat terus bekerja dalam beberapa mode yang dikurangi (mis. Tanpa dapat mengakses data dalam drive yang gagal tetapi tetap mengirimkan data dari drive yang tidak gagal) sementara yang lain hanya akan crash.

5

Aplikasi yang memiliki mode "terdegradasi" umumnya menawarkan akses ke serangkaian fitur terbatas karena masalah internal atau eksternal. Misalnya, bayangkan aplikasi Anda terhubung ke dua sumber data yang berbeda. Jika salah satu dari ini gagal, masih mungkin untuk terus berjalan tetapi untuk menonaktifkan semua fitur visual (atau / backend) yang terkait dengan sumber daya yang tidak tersedia.

Contoh nyata: aplikasi Anda memiliki dua sumber data, di antaranya Anda menyimpan orang, di yang lain Anda menyimpan akun. Bahkan jika basis data akun gagal, jika aplikasi memiliki mode terdegradasi, Anda masih dapat membuat orang baru, meskipun tidak berinteraksi dengan akun mereka.

Mengenai antarmuka pengguna, ini umumnya berarti Anda menunjukkan dengan jelas kepada pengguna bahwa beberapa fitur dinonaktifkan, dan menampilkan beberapa pesan peringatan sehingga ia tidak ketinggalan dalam kegelapan mengapa ada sesuatu yang tidak tersedia.

Juga, ada entri Wikipedia yang terkait dengan sistem toleran kesalahan .


2

Dengan kemajuan teknologi kami selalu memiliki perubahan bergulir ke aplikasi yang setiap saat mungkin tidak didukung oleh semua audiens target. Dalam skenario seperti itu kita menemukan degradasi Graceful yang mengemulasi bahwa kita membangun untuk yang terbaik tersedia tetapi kita juga memiliki brankas yang gagal bagi mereka yang belum memutakhirkan atau sistem mereka mungkin tidak mendukung.

Salah satu contoh utama adalah <img>tag yang memiliki altatribut yang membantu untuk kasus di mana gambar diblokir atau dimatikan, sekarang ini memberikan beberapa konteks yang bermakna untuk gambar (tentu saja hanya jika kita tentukan).

Yah contoh lain yang bisa saya pikirkan adalah dari stylesheet jika terjadi kesalahan atau tidak tersedianya browser menyediakan versi generik sendiri untuk menampilkan / menampilkan halaman.

Sekarang seperti yang Anda sebutkan beban berat Anda harus dengan hati-hati menata rencana seperti apa yang harus dilakukan jika hit Anda melewati ambang batas, Anda menonaktifkan fitur tertentu atau menangguhkan beberapa layanan yang tidak kritis dan membuat Anda tenang. Semua ini akan membantu Anda mengatur degradasi yang anggun sehingga pengguna tahu karena x hal-hal yang server mungkin perlu waktu untuk merespons atau layanan x tidak tersedia selama satu jam atau lebih


1

Ini berarti bahwa karena input dan status melebihi batas desain, output tetap masuk akal dan dapat diandalkan mungkin.

Jika ini adalah server yang dirancang untuk menangani 100 koneksi secara bersamaan, ia tidak macet atau mulai memberikan hasil yang gila pada 101 atau bahkan 150 koneksi - ia memperlambat atau mungkin menjatuhkan beberapa koneksi, tetapi sebagian besar tetap berfungsi. Jika ini adalah database yang dirancang untuk menangani 1 miliar rekaman, itu tidak tiba-tiba melambat ke kondisi tidak dapat digunakan pada 1,01 miliar.


1

Jika Anda tidak memiliki sistem grafis (seperti tidak menjalankan server X11), program Anda setidaknya harus menyediakan CLI, seperti ncurses.

vi memiliki mode bisu di mana ia berperilaku seperti ex, jika terminal memiliki fitur terlalu sedikit.


1

Saat membuat aplikasi web degradasi yang anggun mulai berlaku saat situs Anda mengandalkan JavaScript atau Flash atau teknik serupa yang tidak dimiliki atau dinonaktifkan oleh pengguna.

Maka Anda masih harus menyediakan beberapa fungsionalitas dasar dengan HTML saja atau setidaknya pesan mengapa situs tidak berfungsi seperti yang diharapkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.