AOP یکی از فناوریهای مرتبط با توسعه نرم افزار محسوب میشود که توسط آن میتوان اعمال مشترک و متداول موجود در برنامه را در یک یا چند ماژول مختلف قرار داد (که به آنها Aspects نیز گفته میشود) و سپس آنها را به مکانهای مختلفی در برنامه متصل ساخت. عموما Aspects، قابلیتهایی را که قسمت عمدهای از برنامه را تحت پوشش قرار میدهند، کپسوله میکنند. اصطلاحا به این نوع قابلیتهای مشترک، تکراری و پراکنده مورد نیاز در قسمتهای مختلف برنامه، Cross cutting concerns نیز گفته میشود؛ مانند اعمال ثبت وقایع سیستم، امنیت، مدیریت تراکنشها و امثال آن. با قرار دادن این نیازها در Aspects مجزا، میتوان برنامهای را تشکیل داد که از کدهای تکراری عاری است.
برنامه نویسی (Aspect-oriented (AOP، مفهومی است که معمولا با زبانهای ثقیل و اصطلاحات دانشگاهی احاطه شده است، و این کار را برای توسعه دهندگان شاغلی که با کمبود وقت و ضرب العجلها دست و پنجه نرم میکنند، سخت میکند تا به سرعت AOP را یاد بگیرند، آن را به کار گیرند و از آن خروجی بگیرند. متاسفانه؛ خود AOP، خیلی ساده تر از آن چیزی است که به نظر میآید و میتواند مزایای فراوانی را در پروژههای واقعی فراهم کند.
هدف من از نوشتن این کتاب این بود که سالها پیش من تمایل داشتم تا نشان دهم AOP از آن چیزی که گفته میشود، خیلی آسانتر است. برای رسیدن به این هدف، لحن این کتاب غیر رسمی است و مطالب تئوری خیلی کوتاه بیان شده اند، ولی در عوض، نمونه کدهای بسیاری قرار داده شده است.