xuống cấp duyên dáng là gì?


11

Tôi nghe rất nhiều về thuật ngữ này "xuống cấp duyên dáng".

Ví dụ ,

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

  "Graceful degradation of user interfaces.... "

Thuật ngữ này trông giống như một điều trừu tượng với tôi. Bất kỳ ví dụ cụ thể về ý nghĩa của nó?


5
Một bài viết tốt về chủ đề codinghorror.com/blog/2011/04/...
JF Dion

Câu trả lời:


10

Dưới đây là một số ví dụ:

  • Nếu bạn hết một số tài nguyên (tay cầm, ổ cắm, bộ nhớ, dung lượng ổ đĩa), bạn sẽ không gặp sự cố mà thay vào đó bạn tiếp tục phục vụ nhiều người dùng nhất có thể để phục vụ với các tài nguyên có sẵn của bạn. Một cái gì đó không làm giảm sự duyên dáng có thể chỉ đơn giản là ngừng hoạt động khi được đưa ra ngoài phong bì thiết kế.
  • Dưới tải nặng hơn những gì bạn thiết kế cho người dùng sẽ gặp phản ứng chậm hơn so với những gì bạn thiết kế. Nếu không có sự xuống cấp duyên dáng, hệ thống sẽ ngừng hoạt động một khi các yêu cầu vượt quá có thể được chấp nhận.
  • Các điều kiện lỗi, chẳng hạn như lỗi ổ đĩa, lỗi trong lõi CPU, lỗi bộ nhớ. Một hệ thống được thiết kế để xuống cấp một cách duyên dáng có thể tiếp tục hoạt động ở một số chế độ giảm (ví dụ: không thể truy cập dữ liệu trong ổ đĩa bị lỗi nhưng vẫn cung cấp dữ liệu từ ổ đĩa không bị lỗi) trong khi một hệ thống khác sẽ bị sập.

5

Các ứng dụng có chế độ "xuống cấp" thường cung cấp quyền truy cập vào một bộ tính năng hạn chế do sự cố bên trong hoặc bên ngoài. Ví dụ, hãy tưởng tượng rằng ứng dụng của bạn kết nối với hai nguồn dữ liệu khác nhau. Nếu một trong những lỗi này vẫn có thể tiếp tục chạy nhưng vô hiệu hóa tất cả các tính năng trực quan (hoặc / và phụ trợ) liên quan đến tài nguyên không khả dụng.

Ví dụ cụ thể: ứng dụng của bạn có hai nguồn dữ liệu, trong đó một trong số đó bạn lưu trữ người, trong khi bạn lưu trữ tài khoản khác. Ngay cả khi cơ sở dữ liệu tài khoản không thành công, nếu ứng dụng có chế độ xuống cấp, bạn vẫn có thể tạo người mới, mặc dù không tương tác với tài khoản của họ.

Đối với giao diện người dùng, điều này thường có nghĩa là bạn chỉ rõ cho người dùng biết rằng một số tính năng bị tắt và hiển thị một số thông báo cảnh báo để anh ta không bị bỏ rơi trong bóng tối về lý do tại sao một cái gì đó không có sẵn.

Ngoài ra, có một mục Wikipedia liên quan đến các hệ thống chịu lỗi .


2

Với sự tiến bộ về công nghệ, chúng tôi luôn có những thay đổi trong một ứng dụng mà mọi lúc có thể không được hỗ trợ bởi tất cả các đối tượng mục tiêu. Trong các kịch bản như vậy, chúng tôi gặp phải sự xuống cấp Graceful , mô phỏng rằng chúng tôi xây dựng để có sẵn tốt nhất nhưng chúng tôi cũng gặp sự cố an toàn cho những người chưa nâng cấp hoặc hệ thống của họ có thể không hỗ trợ.

Một ví dụ chính là <img>thẻ có altthuộc tính hữu ích cho các trường hợp hình ảnh bị chặn hoặc bị tắt, bây giờ chúng cung cấp một số bối cảnh có ý nghĩa cho hình ảnh (tất nhiên chỉ khi chúng tôi chỉ định).

Một ví dụ khác tôi có thể nghĩ là về các bảng định kiểu trong trường hợp có lỗi hoặc không có sẵn, trình duyệt cung cấp một phiên bản chung của chính nó để hiển thị / hiển thị trang.

Bây giờ khi bạn đề cập đến tải nặng, bạn phải cẩn thận vạch ra một kế hoạch như những gì sẽ được thực hiện nếu lượt truy cập của bạn vượt quá ngưỡng, bạn vô hiệu hóa một số tính năng nhất định hoặc tạm dừng một số dịch vụ không quan trọng và giúp bạn dễ thở hơn. Tất cả điều này sẽ giúp bạn thiết lập một sự xuống cấp duyên dáng để người dùng biết do những điều x mà máy chủ có thể mất một thời gian để phản hồi hoặc dịch vụ x sẽ không khả dụng trong một giờ hoặc lâu hơn


1

Điều đó có nghĩa là khi đầu vào và trạng thái vượt quá giới hạn thiết kế, đầu ra vẫn hợp lý và đáng tin cậy nhất có thể.

Nếu đó là một máy chủ được thiết kế để xử lý 100 kết nối đồng thời, nó sẽ không gặp sự cố hoặc bắt đầu trả lại kết quả điên rồ ở 101 hoặc thậm chí 150 kết nối - nó chậm lại hoặc có thể làm giảm một vài kết nối, nhưng vẫn tiếp tục hoạt động. Nếu đó là cơ sở dữ liệu được thiết kế để xử lý 1 tỷ bản ghi, thì nó không đột nhiên chậm lại ở trạng thái không sử dụng được ở mức 1,01 tỷ.


1

Nếu bạn không có hệ thống đồ họa (như không có máy chủ X11 nào đang chạy), chương trình của bạn ít nhất nên cung cấp CLI, giống như các tài khoản.

vi có chế độ câm trong đó nó hoạt động như ex, nếu thiết bị đầu cuối có quá ít tính năng.


1

Khi tạo các ứng dụng web, sự xuống cấp duyên dáng xuất hiện khi trang web của bạn dựa trên JavaScript hoặc Flash hoặc một kỹ thuật tương tự mà người dùng không có hoặc vô hiệu hóa.

Sau đó, bạn vẫn nên cung cấp một số chức năng cơ bản chỉ với HTML hoặc ít nhất là một thông báo tại sao trang web không hoạt động như mong đợi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.