State Breaks
Scope
Mục tiêu là states được quản lý trong software
mà transitions không thể được nắm bắt như một sequence nhất quán.
Definition
State breaks đề cập đến một trạng thái trong đó state transitions mà ban đầu nên được định nghĩa rõ ràng bị thiếu một phần,
và các tình huống được quan sát mà current state hoặc transitions có thể xảy ra tiếp theo không thể xác định.
Symptoms
- State transition conditions bị phân tán qua codebase, làm cho overall model khó nắm bắt
- Flags và temporary variables tăng lên, và state được xác định bởi các kết hợp của chúng
- Displayed content và internal state vẫn inconsistent theo thời gian
- Processing tiếp tục từ các unanticipated states
Typical Triggers
- Các trạng thái tiếp tục mà existing state definitions được mở rộng một phần với screen hoặc feature additions
- Temporary branches hoặc exception handling đã trở nên vĩnh viễn
- Reference và update points tăng lên mà không có defined source of truth cho state
- Transition order trở nên ngầm định do asynchronous processing hoặc event-driven approaches
Diagnostic Questions
- Có phải là trạng thái mà current state có thể giải thích trong một biểu thức duy nhất?
- Có phải là trạng thái mà state transitions có thể xảy ra tiếp theo có thể được liệt kê?
- Có phải là trạng thái mà inconsistencies giữa display và internal state có thể được phát hiện?
- Có phải là trạng thái mà có thể khẳng định rằng unanticipated states không tồn tại?
What This Is Not
- Điều này không phải là vấn đề chọn state management libraries cụ thể
- Điều này không thảo luận về tính thích hợp của UI framework usage
- Điều này không đề cập đến mere number của conditional branches
Connections
- Why It Breaks: Context Erosion, Decision Avoidance