Wednesday, April 12, 2006

AOP: การโปรแกรมเชิงลักษณะ

ผู้พัฒนาซอฟต์แวร์ในประเทศเริ่มมีความรู้ความเข้าใจเกี่ยวกับ AOP หรือการโปรแกรมเชิงลักษณะมากขึ้น ผมคิดว่าน่าจะมี blog เสริมอีกซักตัวไว้เฉพาะสำหรับ AOP ที่เป็นภาษาไทย จึงเปิดตัวนี้เพิ่มครับ และจะทยอยนำเนื้อหาที่เกี่ยวข้องกับ AOP ทั้งย้อนหลังและที่กำลังจะออกมาใหม่มา blog ไว้ครับ



AOP คืออะไร
Aspect-oriented programming หรือ AOP หรือที่ผมเรียกเป็นภาษาไทยว่า การโปรแกรมเชิงลักษณะ นั้นเป็นแนวคิดที่สร้างขึ้นบนการโปรแกรมเชิงวัตถุหรือ OOP โดยมีจุดประสงค์หลักเพื่อแก้ปัญหาที่ยากหรือแก้ไม่ได้ด้วย OOP ในแง่ของ Separation of Concerns ซึ่ง concern ที่ว่าก็คือ croscutting concerns ที่ ตัดขวาง การไหลของโปรแกรม (flow of program) แนวคิดของ AOP คือการดึง code ทั้งหลายที่กระจายตัวในลักษณะ crosscut มารวบไว้ด้วยกันเป็นหน่วย เรียกว่า aspect โดยภายใน aspect จะประกอบไปด้วย pointcut ซึ่งเป็นประโยคอธิบายจุดนามธรรมที่เรียกว่า joinpoint abstraction สำหรับ joinpoint ก็คือ well-defined point ในการไหลของโปรแกรมอย่างเช่น constructor, method เป็นต้นครับ ในการประกาศ pointcut จะมีการโยง advice เข้ากันกับ pointcut นั้น ๆ เพื่อระบุว่า code ที่ต้องการจะสาน (weave) จะอยู่ในตำแหน่งใดของ joinpoint เช่น before, around, after เป็นต้น



ในปัจจุบันมีการใช้ AOP กันกว้างขวางขึ้นโดยเฉพาะในแวดวงของภาษา Java

เฟรมเวิร์คหลายชุดเช่น Spring, Hibernate, JBoss AOP หรือแม้แต่ EJB 3 ก็มีแนวคิดและความสามารถในลักษณะของ AOP แทบทั้งสิ้น

1 comment:

แปลภาษาฝรั่งเศส said...

ผมขออนุญาตเจ้าของบล็อกประชาสัมพันธ์เรื่องการบริจากโลหิตหน่อยนะครับ คือผมเพิ่งไปบริจากมาเลยทำให้ได้ความรู้มาอยางนึง ซึ่งคิดว่าเป็นเรื่องที่คนส่วนใหญ่ก็คงจะไม่รู้เช่นกัน ทราบหรือเปล่าครับว่าคนเราที่จริงแล้วมีเลือดส่วนเกินที่ไม่ได้ใช้ประโยชน์ คือปกติร่างกายเราต้องการเพียง 15-16 แก้ว แต่เรามีมากถึง 17-18 แก้ว นั่นก็คือมีเลือดส่วนเกินที่ไม่ได้ใช้ครับ แล้วส่วนเกินนี้ปกติมันจะไปที่ไหนครับ ก็ถูกขับทิ้งออกมาทางปัสวะนั่นเอง ดังนั้นอย่าให้มันเสียเปล่าเลยครับ ไปบริจากให้คนที่เค้าต้องการดีกว่า ขอขอบคุณท่านเจ้าของบล็อกมากครับ การช่วยเผยแพร่ข้อมูลก็ถือเป็นบุญกุศลอย่างมากเลยครับ