คุณลักษณะที่เป็นโมฆะใน MVVMCROSS โดยเฉพาะอย่างยิ่งที่แนะนำในเวอร์ชันเช่น 7.1.0 และ 8.0.0 ส่งผลกระทบอย่างมีนัยสำคัญต่อกระบวนการดีบักโดยการเพิ่มความแข็งแกร่งและความชัดเจนของข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องกับการอ้างอิงโมฆะ นี่คือคุณลักษณะที่เป็นโมฆะส่งผลกระทบต่อการดีบักใน mvvmcross:
บทนำของแอตทริบิวต์ที่เป็นโมฆะ
รุ่น MVVMCROSS 7.1.0 และ 8.0.0 แนะนำแอตทริบิวต์ที่เป็นโมฆะไปยัง API ซึ่งใช้เพื่อระบุว่าพารามิเตอร์วิธีการหรือประเภทการส่งคืนอาจเป็นโมฆะ การเพิ่มนี้ช่วยให้นักพัฒนาระบุปัญหาการอ้างอิงโมฆะที่อาจเกิดขึ้นในเวลาคอมไพล์มากกว่ารันไทม์ทำให้รหัสมีความแข็งแกร่งและง่ายขึ้นในการดีบัก
ผลกระทบต่อการดีบัก
1. การตรวจสอบโมฆะอย่างชัดเจน: ด้วยแอตทริบิวต์ที่เป็นโมฆะวิธีการที่ไม่คาดหวังว่าค่า NULL จะโยน `ignalNullexception` อย่างชัดเจนหากผ่าน null สิ่งนี้ทำให้ง่ายต่อการระบุว่ามีการอ้างอิงที่เป็นโมฆะที่จะส่งผ่านไปยังที่ใดทำให้นักพัฒนาสามารถระบุและแก้ไขปัญหาได้อย่างมีประสิทธิภาพมากขึ้นในระหว่างการดีบัก
2. คำเตือนเวลาคอมไพล์: การใช้แอตทริบิวต์ที่ไม่มีค่าใช้จ่ายสามารถกระตุ้นการเตือนในเวลาคอมไพล์ได้หากวิธีการที่ไม่ยอมรับค่า nulls จะผ่านค่า NULL ที่อาจเกิดขึ้น ระบบเตือนภัยล่วงหน้านี้ช่วยให้นักพัฒนาตรวจจับและแก้ไขปัญหาการอ้างอิงที่เป็นไปได้ก่อนที่จะกลายเป็นข้อผิดพลาดในการรันไทม์ลดความจำเป็นในการดีบักอย่างกว้างขวาง
3. ข้อความแสดงข้อผิดพลาดที่ได้รับการปรับปรุง: เมื่อ `iggernullexception` ถูกโยนทิ้งเนื่องจากค่า NULL ถูกส่งผ่านไปยังวิธีที่ไม่ยอมรับ Nulls ข้อความแสดงข้อผิดพลาดจะระบุแหล่งที่มาของปัญหาอย่างชัดเจน ความชัดเจนในข้อความแสดงข้อผิดพลาดนี้ช่วยในการระบุตัวตนที่รวดเร็วและการแก้ไขปัญหาในระหว่างกระบวนการดีบัก
4. คุณภาพของรหัสและความน่าเชื่อถือ: โดยการบังคับใช้การตรวจสอบความไม่แน่นอนผู้พัฒนาควรได้รับการสนับสนุนให้เขียนโค้ดที่แข็งแกร่งมากขึ้น สิ่งนี้นำไปสู่ข้อผิดพลาดรันไทม์ที่น้อยลงและทำให้แอปพลิเคชันมีความน่าเชื่อถือมากขึ้นลดเวลาโดยรวมที่ใช้ในการดีบัก
เทคนิคการดีบักด้วย mvvmcross
ในการดีบักแอพพลิเคชั่น MVVMcross อย่างมีประสิทธิภาพนักพัฒนาสามารถใช้เทคนิคต่าง ๆ :
- การเชื่อมโยงแหล่งที่มา: MVVMCROSS รองรับการเชื่อมโยงแหล่งที่มาซึ่งช่วยให้นักพัฒนาสามารถก้าวผ่านซอร์สโค้ด MVVMCROSS ระหว่างการดีบัก คุณลักษณะนี้มีประโยชน์อย่างยิ่งสำหรับการทำความเข้าใจว่า MVVMCROSS จัดการกับสถานการณ์บางอย่างและระบุปัญหาภายในกรอบเองได้อย่างไร [6] [12]
- แพ็คเกจสัญลักษณ์: MVVMCROSS จัดเตรียมแพ็คเกจสัญลักษณ์ที่เปิดใช้งานการดีบักโดยละเอียดรวมถึงการตั้งค่าเบรกพอยต์และก้าวผ่านรหัสของเฟรมเวิร์ก ความสามารถนี้เป็นสิ่งจำเป็นสำหรับการวินิจฉัยปัญหาที่ซับซ้อนซึ่งอาจเกิดขึ้นจากการโต้ตอบระหว่างรหัสแอปพลิเคชันและกรอบ MVVMcross [2] [12]
- วิธีการใช้ชีวิต: การทำความเข้าใจวิธีการใช้ชีวิตที่ได้รับจาก mvvmcross เช่น `ปรากฏตัว ',` ปรากฏ', 'หายไป' และ 'หายไป' สามารถช่วยนักพัฒนาซอฟต์แวร์จัดการสถานะของ ViewModels ได้อย่างมีประสิทธิภาพมากขึ้น การใช้วิธีการเหล่านี้อย่างเหมาะสมสามารถป้องกันปัญหาทั่วไปเช่นการอ้างอิงที่เป็นโมฆะในระหว่างการเปลี่ยนมุมมอง [8] [10]
โดยสรุปแอตทริบิวต์ที่เป็นโมฆะใน MVVMCROSS ปรับปรุงกระบวนการดีบักโดยการให้ข้อความแสดงข้อผิดพลาดที่ชัดเจนยิ่งขึ้นส่งเสริมรหัสที่แข็งแกร่งมากขึ้นและลดการเกิดข้อยกเว้นอ้างอิงที่เป็นโมฆะ ควบคู่ไปกับเทคนิคการดีบักขั้นสูงเช่นการเชื่อมโยงแหล่งที่มาและการจัดการวงจรชีวิตนักพัฒนาสามารถระบุและแก้ไขปัญหาในแอปพลิเคชันได้อย่างมีประสิทธิภาพ
การอ้างอิง:[1] https://www.mvvmcross.com/mvvmcross-7.1.0-release/
[2] https://stackoverflow.com/questions/21029462/debugging-mvvmcross-application-in-xamarin-studio-with-mvmcross-sources
[3] https://github.com/mvvmcross/mvvmcross-tutorials
[4] https://stackoverflow.com/questions/36802966/show-a-value-in-case-of-null-in-mvvmcross
[5] https://stackoverflow.com/questions/24145410/mvvmcross-android-null-reference-for-viewmodel-hen-reloading-fragments
[6] https://nicksnettravels.builttoroam.com/post-2018-07-31-Debugging-and-contributing-to-mvvmcross-aspx/
[7] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[8] https://www.mvvmcross.com/mvvmcross-5-release/
[9] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[10] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[11] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[12] https://www.mvvmcross.com/documentation/contributing/debugging-with-symbols