เรื่องของ ambiguous match exception และการจัดการในมุม Performance

เจอคนในทีมแก้ Code มาแล้ว Error Ambiguous Match Exception เลยมาลองจดๆลง Blog ไว้หน่อยครับ Ambiguous match exception คือ อะไร ตอนเราเรียกใช้ Reflection ของ dotnet แล้วปรากฏว่า ผลลัพธ์ที่ได้ มันมี 2 ตัว โดย 2 ตัวยังไง เช่น ตัว Code ด้านล่าง ถ้าใช้ Reflection เรียกจะเจอ MyProperty 2 ตัว แบบ int และ แบบ String แนวทางที่ถกกัน แล้วที่นี้มันจะถกกันว่าจะแก้ไขแบบไหน จากแนวทางทั้ง 2 มีประเด็นเรื่อง Perf ผมเลยลองเขียน Code Test จับเวลา ถ้าจะลอง Run สามารถเข้า ได้ครับ ส่วนผลลัพธ์ตามนี้ จะเห็นว่า Code ชุดแรกที่ไม่มีพวก Exception ดักไว้ มันจะใช้เวลาน้อยกว่าที่ดัก Exception นะ ซึ่งแบบหลัง มันโดนเคสที่เข้า Exception บ่อยๆ แล้ว ถ้ามันสะสมเยอะๆ มันจะกลายเป็นคอขวดอันใหญ่ในระบบได้เลย ถ้าจะเลี่ยงเรื่องพวกนี้ต้องมาตกลง Coding Standard กันก่อน จะได้หลบปัญหาได้ และช่วยให้ App โดยรวมมี Perf ที่ดีขึ้นด้วย ^__^








