Câu hỏi của tôi có vẻ rất khoa học nhưng tôi nghĩ đó là một vấn đề phổ biến và các nhà phát triển và lập trình viên dày dạn hy vọng sẽ có một số lời khuyên để tránh vấn đề tôi đề cập trong tiêu đề. Btw., Những gì tôi mô tả dưới đây là một vấn đề thực sự tôi đang cố gắng chủ động giải quyết trong dự án iOS của mình, tôi muốn tránh nó bằng mọi giá.
Theo máy trạng thái hữu hạn, ý tôi là> Tôi có một UI với một vài nút, một số trạng thái phiên có liên quan đến UI đó và UI này thể hiện điều gì, tôi có một số dữ liệu được hiển thị một phần trong UI, tôi nhận và xử lý một số kích hoạt bên ngoài (đại diện bởi các cuộc gọi lại từ các cảm biến). Tôi đã tạo các sơ đồ trạng thái để ánh xạ tốt hơn các kịch bản có liên quan mong muốn và có thể điều chỉnh được trong ứng dụng và giao diện người dùng đó. Khi tôi chậm triển khai mã, ứng dụng bắt đầu hoạt động ngày càng giống như vậy. Tuy nhiên, tôi không tự tin rằng nó đủ mạnh. Những nghi ngờ của tôi đến từ việc theo dõi quá trình thực hiện và suy nghĩ của chính tôi. Tôi đã tự tin rằng tôi có mọi thứ được bảo hiểm, nhưng nó đủ để thực hiện một vài thử nghiệm vũ phu trong UI và tôi nhanh chóng nhận ra rằng vẫn còn những lỗ hổng trong hành vi .. Tôi đã vá chúng. Tuy nhiên, vì mỗi thành phần phụ thuộc và hoạt động dựa trên đầu vào từ một số thành phần khác, một đầu vào nhất định từ người dùng hoặc một số nguồn bên ngoài tạo ra một chuỗi các sự kiện, thay đổi trạng thái..v.v. Tôi có một số thành phần và mỗi thành phần hoạt động như Trình kích hoạt này nhận được ở đầu vào -> trình kích hoạt và người gửi của nó đã phân tích -> xuất một cái gì đó (một thông báo, thay đổi trạng thái) dựa trên phân tích
Vấn đề là, điều này không hoàn toàn tự chủ và các thành phần của tôi (một mục cơ sở dữ liệu, trạng thái phiên, trạng thái của một số nút) ... COULD bị thay đổi, ảnh hưởng, xóa hoặc sửa đổi, ngoài phạm vi của chuỗi sự kiện hoặc kịch bản mong muốn. (điện thoại gặp sự cố, pin hết điện thoại đột ngột) Điều này sẽ đưa đến một tình huống không có giá trị vào hệ thống, từ đó hệ thống có khả năng KHÔNG THỂ phục hồi. Tôi thấy điều này (mặc dù mọi người không nhận ra đây là vấn đề) trong nhiều ứng dụng của đối thủ cạnh tranh của tôi trên cửa hàng apple, khách hàng viết những thứ như thế này> "Tôi đã thêm ba tài liệu và sau khi đến đó, tôi không thể mở chúng, ngay cả khi a nhìn thấy chúng. " hoặc "Tôi đã quay video hàng ngày, nhưng sau khi quay video quá nhật ký, tôi không thể bật phụ đề cho chúng .. và nút cho phụ đề không '
Đây chỉ là những ví dụ rút gọn, khách hàng thường mô tả nó chi tiết hơn..từ các mô tả và hành vi được mô tả trong đó, tôi cho rằng ứng dụng cụ thể có sự cố FSM.
Vì vậy, câu hỏi cuối cùng là làm thế nào tôi có thể tránh điều này, và làm thế nào để bảo vệ hệ thống khỏi bị chặn?
EDIT> Tôi đang nói về ngữ cảnh của một chế độ xem của bộ điều khiển trên điện thoại, ý tôi là một phần của ứng dụng. Tôi hiểu mô hình MVC, tôi có các mô-đun riêng biệt cho chức năng riêng biệt..tất cả mọi thứ tôi mô tả đều liên quan đến một khung vẽ trên UI.