คำถามของฉันดูเหมือนจะเป็นเรื่องวิทยาศาสตร์ แต่ฉันคิดว่ามันเป็นปัญหาที่พบบ่อยและนักพัฒนาที่มีประสบการณ์และโปรแกรมเมอร์หวังว่าจะมีคำแนะนำเพื่อหลีกเลี่ยงปัญหาที่ฉันพูดถึงในชื่อ Btw. สิ่งที่ฉันอธิบายร้องเป็นปัญหาจริงฉันพยายามแก้ปัญหาเชิงรุกในโครงการ iOS ของฉันฉันต้องการหลีกเลี่ยงค่าใช้จ่ายทั้งหมด
โดยเครื่องสถานะ จำกัด ฉันหมายถึงสิ่งนี้> ฉันมี UI ที่มีปุ่มไม่กี่รัฐหลายเซสชันที่เกี่ยวข้องกับ UI นั้นและสิ่งที่ UI นี้แสดงถึงฉันมีข้อมูลบางอย่างที่แสดงค่าบางส่วนใน UI ฉันได้รับและจัดการทริกเกอร์ภายนอกบางอย่าง (แสดงโดยการเรียกกลับจากเซ็นเซอร์) ฉันทำแผนภาพสถานะเพื่อทำแผนที่สถานการณ์ที่เกี่ยวข้องให้ดีขึ้นและเป็นที่พึงปรารถนาใน UI และแอปพลิเคชันนั้น เมื่อฉันค่อยๆติดตั้งโค้ดแอปเริ่มทำงานมากขึ้นตามที่ควรจะเป็น อย่างไรก็ตามฉันไม่มั่นใจมากว่าจะแข็งแกร่งพอ ความสงสัยของฉันมาจากการเฝ้าดูกระบวนการคิดและการนำไปใช้ของฉันเอง ฉันมั่นใจว่าฉันมีทุกอย่างที่ครอบคลุม แต่ก็เพียงพอที่จะทำการทดสอบสัตว์เดรัจฉานใน UI และฉันก็รู้ได้อย่างรวดเร็วว่ายังมีช่องว่างในพฤติกรรม ... ฉันทำการปะแก้พวกเขา อย่างไรก็ตาม ในขณะที่แต่ละองค์ประกอบขึ้นอยู่กับพฤติกรรมจากการป้อนข้อมูลจากส่วนประกอบอื่น ๆ การป้อนข้อมูลบางอย่างจากผู้ใช้หรือแหล่งภายนอกทำให้เกิดห่วงโซ่ของเหตุการณ์เปลี่ยนแปลงสถานะ .. เป็นต้น ฉันมีองค์ประกอบหลายอย่างและแต่ละพฤติกรรมทำงานเช่นเดียวกับทริกเกอร์นี้ที่ได้รับเมื่อทริกเกอร์อินพุท -> และผู้ส่งวิเคราะห์ -> เอาท์พุทบางอย่าง (ข้อความการเปลี่ยนสถานะ) จากการวิเคราะห์
ปัญหาคือสิ่งนี้ไม่ได้มีการควบคุมตัวเองอย่างสมบูรณ์และส่วนประกอบของฉัน (รายการฐานข้อมูลสถานะเซสชันสถานะของปุ่มบางปุ่ม) ... สามารถเปลี่ยนแปลงอิทธิพลลบหรือแก้ไขนอกขอบเขตของเหตุการณ์หรือ สถานการณ์ที่พึงประสงค์ (โทรศัพท์ล่มแบตเตอรี่จะหมดทันทีเมื่อเปิดเครื่อง) สิ่งนี้จะแนะนำสถานการณ์ที่ไม่แน่นอนเข้าสู่ระบบซึ่งระบบอาจไม่สามารถกู้คืนได้ ฉันเห็นสิ่งนี้ (แม้ว่าคนจะไม่ตระหนักว่านี่เป็นปัญหา) ในแอปคู่แข่งของฉันหลายแห่งที่อยู่ในร้าน Apple ลูกค้าเขียนสิ่งนี้>> "ฉันเพิ่มเอกสารสามฉบับและหลังจากไปที่นั่นแล้วฉันไม่สามารถเปิดได้ แม้ว่าจะเห็นพวกเขา " หรือ "ฉันบันทึกวิดีโอทุกวัน แต่หลังจากบันทึกวิดีโอด้วยเช่นกันฉันไม่สามารถเปลี่ยนคำอธิบายภาพได้ .. และปุ่มสำหรับคำอธิบายภาพไม่ได้ '
เหล่านี้เป็นเพียงตัวอย่างสั้น ๆ ลูกค้ามักจะอธิบายรายละเอียดเพิ่มเติม .. จากคำอธิบายและพฤติกรรมที่อธิบายไว้ในนั้นฉันคิดว่าแอปเฉพาะนั้นมีการแยก FSM
ดังนั้นคำถามสุดท้ายคือฉันจะหลีกเลี่ยงปัญหานี้ได้อย่างไรและจะป้องกันระบบจากการบล็อกได้อย่างไร
แก้ไข> ฉันกำลังพูดถึงในมุมมองของผู้ควบคุมวิวเวอร์หนึ่งคนในโทรศัพท์ฉันหมายถึงส่วนหนึ่งของแอปพลิเคชัน ฉันเข้าใจรูปแบบ MVC ฉันมีโมดูลแยกต่างหากสำหรับฟังก์ชั่นที่แตกต่างกัน .. ทุกอย่างที่ฉันอธิบายมีความเกี่ยวข้องกับผืนผ้าใบหนึ่งบน UI