Pertanyaan saya mungkin tampak sangat ilmiah tetapi saya pikir ini adalah masalah umum dan pengembang dan programmer berpengalaman mudah-mudahan akan memiliki beberapa saran untuk menghindari masalah yang saya sebutkan dalam judul. Btw., Apa yang saya jelaskan di bawah adalah masalah nyata yang saya coba selesaikan secara proaktif dalam proyek iOS saya, saya ingin menghindarinya dengan cara apa pun.
Dengan mesin negara yang terbatas maksud saya> Saya memiliki UI dengan beberapa tombol, beberapa sesi menyatakan relevan dengan UI itu dan apa yang diwakili UI ini, saya memiliki beberapa data yang nilainya sebagian ditampilkan di UI, saya menerima dan menangani beberapa pemicu eksternal. (diwakili oleh panggilan balik dari sensor). Saya membuat diagram keadaan untuk memetakan skenario yang relevan yang diinginkan dan dapat diubah dengan lebih baik dalam UI dan aplikasi tersebut. Ketika saya perlahan-lahan menerapkan kode, aplikasi mulai berperilaku lebih dan lebih seperti seharusnya. Namun, saya tidak terlalu yakin bahwa itu cukup kuat. Keraguan saya datang dari menonton pemikiran saya sendiri dan proses implementasi. Saya yakin bahwa saya sudah membahas semuanya, tetapi cukup untuk melakukan beberapa tes kasar di UI dan saya segera menyadari bahwa masih ada kesenjangan dalam perilaku. Saya menambalnya. Namun, karena setiap komponen tergantung dan berperilaku berdasarkan input dari beberapa komponen lain, input tertentu dari pengguna atau beberapa sumber eksternal memicu serangkaian peristiwa, menyatakan perubahan..etc. Saya memiliki beberapa komponen dan masing-masing berperilaku seperti ini Pemicu yang diterima pada input -> trigger dan pengirimnya dianalisis -> output sesuatu (pesan, perubahan status) berdasarkan analisis
Masalahnya adalah, ini tidak sepenuhnya mandiri, dan komponen saya (item basis data, status sesi, status beberapa tombol) ... BISA diubah, dipengaruhi, dihapus, atau dimodifikasi, di luar ruang lingkup rantai peristiwa atau skenario yang diinginkan. (ponsel crash, baterai ponsel kosong tiba-tiba) Ini akan memperkenalkan situasi tidak valid ke dalam sistem, dari mana sistem berpotensi TIDAK BISA MAMPU memulihkan. Saya melihat ini (walaupun orang tidak menyadari ini masalahnya) di banyak aplikasi pesaing saya yang ada di toko apel, pelanggan menulis hal-hal seperti ini> "Saya menambahkan tiga dokumen, dan setelah pergi ke sana-sini, saya tidak bisa membukanya, bahkan jika melihat mereka. " atau "Saya merekam video setiap hari, tetapi setelah merekam video yang terlalu masuk, saya tidak dapat mengubah takaririnya .., dan tombol untuk takarir tidak
Ini hanya contoh singkat, pelanggan sering menggambarkannya lebih detail..dari deskripsi dan perilaku yang dijelaskan di dalamnya, saya berasumsi bahwa aplikasi tertentu memiliki gangguan FSM.
Jadi pertanyaan utamanya adalah bagaimana saya bisa menghindari ini, dan bagaimana melindungi sistem dari pemblokiran itu sendiri?
EDIT> Saya berbicara dalam konteks pandangan satu viewcontroller di telepon, maksud saya satu bagian dari aplikasi. Saya Memahami pola MVC, saya memiliki modul terpisah untuk fungsi yang berbeda .. semua yang saya jelaskan relevan dengan satu kanvas di UI.