ข้อดีและข้อเสียของการใช้กระบวนทัศน์การเขียนโปรแกรมแบบ Aspect Orientated [ปิด]


10

ตกลงดังนั้นนี่คือคำถาม: อะไรคือข้อดีและข้อเสียของการใช้กระบวนทัศน์การเขียนโปรแกรมแนวด้าน

ข้อดีและข้อเสียของฉันป่านนี้:

ข้อดี:

  • เติมเต็มการวางแนววัตถุ
  • ช่วยลดความกังวลเกี่ยวกับการตัดโค้ดเพื่อทำให้การบำรุงรักษารหัสและความเข้าใจเป็นมาตรฐาน

ข้อด้อย:

  • ไม่ใช่วิธีที่ง่ายที่สุดในการเข้าใจ - ไม่ใช่เอกสารที่ดีเท่า OO
  • OO ไปไกลพอในการแยกข้อกังวล ...

ใครอยากจะท้าทายสิ่งเหล่านี้ / เพิ่มของตัวเอง

ขอบคุณมาก J


1
สื่อการเรียนรู้มากมายมีอยู่แล้ว แนะนำ AOP - dotnetslackers.com/articles/net/... เรียนรู้ PostSharp (กรอบ AOP) - programmersunlimited.wordpress.com/postsharp-principals
DustinDavis

คำตอบ:


3

จากมุมมองของโปรแกรมเมอร์ที่มีคำขวัญว่า "Keep It Simple Stupid" การประเมินการใช้งานโมเดลดังกล่าวเป็นสิ่งที่อันตราย สำหรับสิ่งที่พยายามทำสำเร็จจะทำให้โปรแกรมเข้าใจยากกว่าและแตกหักง่ายกว่า

อัจฉริยะของการเขียนโปรแกรมที่ดีอยู่ในความเรียบง่ายแดกดัน โปรแกรมที่ซับซ้อนอาจทำงานได้ แต่เป็นฝันร้ายเมื่อต้องมีการบำรุงรักษาและเมื่อคุณพิจารณาว่าโปรแกรมเมอร์ใช้เวลา 2 / 3rds ในการแก้ไขข้อผิดพลาดในโปรแกรมมันจะไม่ได้ผลในที่สุด


2

การกระจายการทำงานออกจากสถานที่ปฏิบัติงานเพิ่มความซับซ้อนและปัญหาการกระทำระยะทาง

ฉันพิจารณาวิธีการออกแบบดังกล่าวเป็นสิ่งที่ควรพัฒนาเนื่องจากระบบต้องการให้มีการทำงานที่สะอาดไม่ได้ออกแบบมาตั้งแต่แรก


2

ข้อดีเพิ่มเติม (ไม่ใช่ทั้งหมด)

  • นำคลาสและแง่มุมมาใช้ใหม่ด้วยโมดุล
  • ลดค่าใช้จ่ายในการเขียนรหัสเนื่องจากโมดุลและการนำมาใช้ซ้ำ
  • โค้ดที่สั้นลงต้องขอบคุณความสามารถในการมีมุมมองที่มีโค้ดที่จะนำไปใช้ (กระจัดกระจาย) เป็นหลายคลาส
  • ความสามารถในการเพิ่มพฤติกรรมให้กับชั้นเรียนโดยไม่แนะนำในรหัสนั้นไม่เกี่ยวข้องกับความรับผิดชอบหลัก
  • ความสามารถในการกำหนดความหมายของวิธีการ / ชั้นเรียนโดยไม่แจ้งให้ลูกค้าเรียนรู้เกี่ยวกับมัน

ข้อเสีย

  • รันไทม์โอเวอร์เฮดเมื่อใช้การสร้างบางอย่างเช่น cflow

0

ข้อเสีย: การสนับสนุนโซ่เครื่องมือที่ไม่ดี: - ดีบักเกอร์และผู้สร้างโปรไฟล์อาจไม่ทราบเกี่ยวกับ "การเขียนโปรแกรมเชิงมุมมอง" เนื่องจากเหตุผลนี้พวกเขาอาจทำงานกับโค้ดราวกับว่าทุกแง่มุมถูกแทนที่ด้วยโค้ดขั้นตอน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.