Bỏ qua đến nội dung chính

What Breaks

Software hỏng dưới nhiều dạng.
Trong thực địa, chúng thường được coi như các bugs hoặc incidents riêng lẻ,
và thường được thảo luận mà không có bản thân các cách hỏng được diễn đạt một cách rõ ràng.

Chương này lấy "cách software hỏng" như một điểm khởi đầu
và tổ chức những loại breakdowns nào hiện đang được quan sát.
Mục đích ở đây không phải là chỉ ra nguyên nhân hoặc giải pháp,
mà là làm cho có thể chỉ đến những loại breakdowns nào hiện đang được quan sát
trong ngôn ngữ chung.

Classification of Ways of Breaking

  1. Data Breaks
    Một trạng thái mà source of truth không uniquely determine, duplication và omission được quan sát,
    và processing giả định consistency không còn thành lập.

  2. State Breaks
    Một trạng thái mà omissions trong state transitions và proliferation của flags được quan sát,
    và divergence giữa screen và internal state xảy ra.

  3. Time Breaks
    Một trạng thái mà inconsistencies như double execution được quan sát
    do concurrent execution, order reversal, và interference giữa retry và side effects.

  4. Boundary Breaks
    Một trạng thái mà boundary assumptions đã sụp đổ
    do external API changes, timeouts, input contamination, v.v.

  5. Responsibility Breaks
    Một trạng thái mà decision-making subject trở nên không rõ ràng, các quyết định bị phân tán,
    và lý do cho change bị trộn lẫn.

  6. Operation Breaks
    Một trạng thái mà deployment và rollback trở nên khó khăn,
    và accidents do unobservability hoặc configuration xảy ra.

Mỗi trang chủ yếu đề cập đến broken state
và symptoms được quan sát trong thực địa.
Cause analysis và recovery methods không được đề cập trong chương này.

Summary of Ways of Breaking (Reference Map)

Sau đây là một danh sách tương ứng với sáu cách hỏng được đề cập trong chương này
với "implicit assumptions" mà mỗi phụ thuộc vào.
Các assumptions được hiển thị ở đây không phải để xác định nguyên nhân,
mà được sử dụng như các điểm tham chiếu để tổ chức và chỉ đến các broken states.

Cách HỏngGiả Định Đã Sụp Đổ
Data BreaksSource of truth xác định duy nhất
State BreaksState và transitions có thể được làm rõ ràng
Time BreaksThứ tự và số lượng execution có thể được kiểm soát
Boundary BreaksCác giả định boundary được bảo vệ
Responsibility BreaksDecisions và responsibility có thể được theo dõi
Operation BreaksOperations có thể được tái tạo và kiểm soát

Các cách hỏng này không độc lập lẫn nhau,
và breakdown của một assumption thường gây ra các cách hỏng khác.
Chương này trước tiên tập trung vào việc đặt câu hỏi những assumptions nào hiện đã sụp đổ
và tổ chức những loại cách hỏng nào được quan sát.

Notes

Chương này tập trung vào observation và classification của các broken states.
Các thảo luận như tại sao chúng xảy ra và chúng được sửa chữa như thế nào
không được đề cập trong chương này.

Causes và background được đề cập trong chương Why It Breaks,
các cấu trúc cụ thể của thất bại trong chương Failure Patterns,
và các cách tư duy để khôi phục các quyết định dưới các giả định không chắc chắn
trong chương Restoring Decision-Making.