ไว้อ่านว่าง ๆ แล้วจะมาสรุปเองอีกครั้งค่ะ
http://www.narisa.com/blog/up1/index.php?showentry=615
ตัวอย่าง aspect อย่างง่าย
http://aspect-chanwit.blogspot.com/2007/04/aspect.html
http://www.narisa.com/forums/index.php?autocom=blog&blogid=15&showentry=1158
http://www.blognone.com/node/1426
Monday, October 4, 2010
Tuesday, February 23, 2010
สองเจ้าพ่อแห่ง RV research
คำว่า "เจ้าพ่อ" อ.วรเศรษฐ ท่านพูดถึงใน presentation ของวิชาสัมนา
เราก็คิดว่าบุคคลสองท่านนี้น่าจะตรงกับศัพท์คำนี้ในความหมายของอาจารย์ได้ เลยฝาก homepage ของท่านทั้งสองไว้
เพื่อศึกษางานวิจัยของท่านได้สะดวกยิ่งขึ้น
Klaus Havelund
Eric Bodden
ใครอยากศึกษาข้อมูลเพิ่มเติมก็เชิญได้เลยนะคะ เพราะท่านทั้งสองยินดีมากที่จะเผยแพร่ ((คิดเองรึเปล่าเรา))
เราก็คิดว่าบุคคลสองท่านนี้น่าจะตรงกับศัพท์คำนี้ในความหมายของอาจารย์ได้ เลยฝาก homepage ของท่านทั้งสองไว้
เพื่อศึกษางานวิจัยของท่านได้สะดวกยิ่งขึ้น
Klaus Havelund
Eric Bodden
ใครอยากศึกษาข้อมูลเพิ่มเติมก็เชิญได้เลยนะคะ เพราะท่านทั้งสองยินดีมากที่จะเผยแพร่ ((คิดเองรึเปล่าเรา))
Sunday, January 31, 2010
Aspect Oriented Programming (AOP)
AOP เอาไว้แก้ปัญหาเรื่อง Cross cutting concern (เอาให้ง่าย ๆ ก็คือการตัดผ่านเฉพาะสิ่งที่สนใจ)
ตัวอย่างเช่นเราจะทำระบบอะไรสักอย่าง แล้วมี cross cutting concern ที่ตัดผ่านคลาสของเราหลายอย่าง เช่น security logging message, availability ต่างๆ เป็นต้น ซึ่งอาจจะเป็นทั้ง functional หรือ non-function requirement ของระบบก็ได้ค่ะ
แต่ในบางคลาส อาจจะมี แค่ logging แต่ไม่มี security ซึ่งใช้ concern พวกนี้ไม่เท่ากันก็ได้
เวลา implement ด้วยแนวทาง OOP จึงทำให้เกิดปัญหาต่างๆ คือ
- concern เหล่านี้ลากตัดผ่านกระจัดกระจาย ทั่วไปในงานเรา (scattering) บางงานใช้บ้าง ไม่ใช้บ้าง
- โค๊ดของงานเราในแต่ละ modular ยุ่งเหยิง (tangling) เพราะมัวแต่ไปจัดการเรื่อง cross cutting เหล่านี้
เมื่อเป็นเช่นนี้แ้ล้วก็ระบบก็จะมี low cohesive เกิด high coupling ไ่ล่ code ก็ยาก แ้ล้วก็ reuse ได้ยากอีกด้วย
แนวทางใหม่ที่นำเสนอขึ้นนั่นคือ AOP (Aspect Oriented Programming)ค่ะ
ซึ่งจะสร้าง โปรแกรมขี้นมาเป็น AOP เพื่อที่จะเขียนคลาสสำหรับ concern ที่มีการตัดผ่านระหว่างคลาสของระบบเรา
โดยแบ่งออกเป็น Aspect ต่างๆ และเขียนแยกออกจาก core concern แล้วก็สร้างกฎสำหรับบอกว่า แต่ละ Aspect นั้นจะลากตัดผ่านยังไงบ้าง กฎนี้เราเรียกว่า Weaving Rules เมื่อเราทำการ weaving ไปผ่านตัว Aspect Weaver เจ้า Aspect เหล่านี้ก็จะไปลากตัดผ่าน core concern ให้เราเองตามที่กำหนดไว้
อ้างอิง : http://www.blognone.com/node/1426
ตัวอย่างเช่นเราจะทำระบบอะไรสักอย่าง แล้วมี cross cutting concern ที่ตัดผ่านคลาสของเราหลายอย่าง เช่น security logging message, availability ต่างๆ เป็นต้น ซึ่งอาจจะเป็นทั้ง functional หรือ non-function requirement ของระบบก็ได้ค่ะ
แต่ในบางคลาส อาจจะมี แค่ logging แต่ไม่มี security ซึ่งใช้ concern พวกนี้ไม่เท่ากันก็ได้
เวลา implement ด้วยแนวทาง OOP จึงทำให้เกิดปัญหาต่างๆ คือ
- concern เหล่านี้ลากตัดผ่านกระจัดกระจาย ทั่วไปในงานเรา (scattering) บางงานใช้บ้าง ไม่ใช้บ้าง
- โค๊ดของงานเราในแต่ละ modular ยุ่งเหยิง (tangling) เพราะมัวแต่ไปจัดการเรื่อง cross cutting เหล่านี้
เมื่อเป็นเช่นนี้แ้ล้วก็ระบบก็จะมี low cohesive เกิด high coupling ไ่ล่ code ก็ยาก แ้ล้วก็ reuse ได้ยากอีกด้วย
แนวทางใหม่ที่นำเสนอขึ้นนั่นคือ AOP (Aspect Oriented Programming)ค่ะ
ซึ่งจะสร้าง โปรแกรมขี้นมาเป็น AOP เพื่อที่จะเขียนคลาสสำหรับ concern ที่มีการตัดผ่านระหว่างคลาสของระบบเรา
โดยแบ่งออกเป็น Aspect ต่างๆ และเขียนแยกออกจาก core concern แล้วก็สร้างกฎสำหรับบอกว่า แต่ละ Aspect นั้นจะลากตัดผ่านยังไงบ้าง กฎนี้เราเรียกว่า Weaving Rules เมื่อเราทำการ weaving ไปผ่านตัว Aspect Weaver เจ้า Aspect เหล่านี้ก็จะไปลากตัดผ่าน core concern ให้เราเองตามที่กำหนดไว้
อ้างอิง : http://www.blognone.com/node/1426
Subscribe to:
Posts (Atom)