Group Blog
 
All Blogs
 
Pattern การเช็คข้อมูลบน C#

เวลา Design Code ที่จำเป็นต้องเช็คข้อมูลหลายๆ ส่วน เช่น if (Name.Duplicate) return; อาจจะพบปัญหว่าว่าในการเช็คแต่ละ If นั้นต้องใช้โค้ดซ้ำเพื่อส่ง Error Message หรือทำการจัดการ Error เสียก่อน ซึ่งแต่ก่อนผมออกแบบมาไว้ว่า

if (Name.Duplicate)

{

SomeErrorMethod(SomeArgs);

return;

}

if (ID.Duplicate)

{

SomeErrorMethod(SomeArgs);

return;

}

ซึ่งถ้าทำแบบนี้แล้วเวลากลับมาอ่านโค้ดมันจะไม่ค่อยไหลลื่น คือเวลาเราอ่านถ้าอยากรู้ว่า Error แล้วทำอะไรก็ต้องไปดู Definition ของ SomeErrorMethod ทีนึง ทั้งๆ ที่การแจ้ง Error นั้นอาจจะเป็นของเฉพาะในงานนี้เท่านั้น เวลาเขียนโค้ดให้อ่านง่ายก็ควรจะใส่รวมไว้ในงานนี้ นอกจากนั้นการออกแบบยังงี้ยังทำให้จำนวน private Method โตโดยไม่จำเป็นอีกด้วย

พี่ที่ทำงานเค้าเสนอมาว่าให้ออกแบบโดยใช้ try-catch เข้าช่วยแล้วใช้ Customize Exception เป็นตัวดัก

try

{

if (Name.Duplicate) throw new DataInvalidException(SomeArgs)

if (ID.Duplicate) throw new DataInvalidException(SomeArgs)

}

catch (DataInvalidException ex)

{

// Insert Error Code Here

}

การทำแบบนี้จะทำให้โค้ดของเราสามารถอ่านได้ง่ายขึ้นมาก โดยไม่ต้องมี SomeErrorMethod หลายๆ ตัว ผมถือคติว่าโค้ดที่อ่านง่ายจะต้องอ่านแล้วกระโดดไปมาน้อยที่สุด ไม่ใช่ว่าต้องรวมทุกอย่างใน Method เดียวนะครับ แต่ต้องว่าอ่านแค่ Method เดียวแล้วเข้าใจ Flow การทำงานคร่าวๆ ได้โดยไม่ต้องอ่าน Method ย่อยใดๆ เลยแม้แต่นิดเดียว แต่ Detail อาจจะต้องดู Method ย่อยอีกที




Create Date : 30 สิงหาคม 2555
Last Update : 30 สิงหาคม 2555 21:26:21 น. 0 comments
Counter : 639 Pageviews.

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 

Mariel
Location :


[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add Mariel's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.