مقدمه مفهومی درباره واژه در علوم کامپیوتر و فناوری اطلاعات، ’’absorption’’ یا جذب به معنای فرآیندی است که طی آن یک ویژگی، داده، عملیات یا عملکرد به طور کامل درون ساختار یا سیستم دیگر یکپارچه می شود. این مفهوم معمولاً در طراحی سیستم های پیچیده، مهندسی نرم افزار، و تعامل بین اجزای مختلف کاربرد دارد. مشابه با معنای علمی آن در فیزیک یا شیمی، در IT نیز absorption به درونی سازی یا همگرایی یک موجودیت در موجودیت دیگر اشاره دارد.
کاربرد واژه در برنامه نویسی یا زیرشاخه های فناوری اطلاعات در طراحی شی گرا، جذب (absorption) می تواند به حالتی اشاره کند که یک کلاس ویژگی ها یا متدهای کلاس دیگر را درون خود جای می دهد، بدون آنکه نیاز به ارث بری مستقیم باشد. در مفاهیم شبکه و امنیت نیز absorption ممکن است به پردازش داده ها توسط یک فایروال یا مسیریاب اشاره داشته باشد که درخواست ها یا حملات را در خود جذب و خنثی می کند. در هوش مصنوعی، جذب اطلاعات از منابع ورودی به مدل های یادگیری مفهومی کلیدی است.
مثال های واقعی و کاربردی در پروژه های IT در سیستم های ERP، زمانی که یک ماژول مدیریت منابع انسانی به طور کامل با ماژول حسابداری یکپارچه می شود، می توان گفت که عملکرد آن در سیستم حسابداری جذب شده است. یا در توسعه رابط کاربری، وقتی که یک فریم ورک طراحی ویژگی های یک کتابخانه دیگر را بدون نیاز به نصب جداگانه درون خود ارائه می دهد، absorption اتفاق افتاده است.
نقش واژه در توسعه نرم افزار یا معماری سیستم ها در توسعه نرم افزار، absorption نقش مهمی در کاهش پیچیدگی، افزایش انسجام و تسهیل در نگهداری کد ایفا می کند. سیستم هایی که طراحی آن ها به گونه ای است که می توانند عملکردهای متفرقه را جذب کرده و به صورت داخلی مدیریت کنند، معمولاً مقیاس پذیرتر و انعطاف پذیرتر هستند. این ویژگی در معماری هایی نظیر Monolith یا Service-Oriented Architecture دیده می شود.
تاریخچه استفاده از این واژه و تکامل آن مفهوم جذب ابتدا از علوم فیزیکی مانند نور و صوت وارد دنیای فناوری اطلاعات شد. با رشد طراحی شی گرا و معماری نرم افزار در دهه های ۱۹۸۰ و ۱۹۹۰، این مفهوم برای توصیف الگوهای ادغام و درونی سازی عملکردها و داده ها به کار گرفته شد. absorption در سیستم های مدرن به ویژه در طراحی میکروسرویس ها و فریم ورک های UI رواج زیادی یافته است.
تفاوت با واژگان مشابه ’’Absorption’’ با واژه هایی مانند ’’integration’’، ’’embedding’’ و ’’inheritance’’ شباهت دارد اما متفاوت است. integration به ترکیب اجزای مستقل برای همکاری اشاره دارد، در حالی که absorption به درونی سازی یا حذف مرزهای عملکردی بین اجزا اشاره دارد. inheritance در شی گرایی به ارث بری کلاس ها مربوط است، اما absorption می تواند بدون رابطه کلاس ها رخ دهد.
شیوه پیاده سازی در زبان های برنامه نویسی مختلف در Python، استفاده از ترکیب (composition) برای جذب متدهای یک کلاس دیگر، نوعی absorption است. در Java، با استفاده از الگوهای طراحی مانند Facade و Adapter، می توان ویژگی های کلاس های دیگر را در ساختار فعلی جذب کرد. در JavaScript نیز استفاده از mixinها یا توابع ترکیبی (composition functions) رایج است.
نقش در طراحی های مدرن مانند DevOps، Microservices و AI در معماری Microservices، گاهی سرویس های کوچکتر توسط سرویس های بزرگ تر جذب (absorbed) می شوند تا پیچیدگی زیرساخت کاهش یابد. در AI، مرحله pre-processing داده ها اغلب شامل جذب ویژگی ها (feature absorption) در مدل های یادگیری است. در DevOps نیز ابزارهایی مانند Helm یا Terraform از قابلیت جذب پیکربندی ها برای مدیریت مؤثر زیرساخت استفاده می کنند.
چالش ها یا سوءبرداشت های رایج جذب بیش از حد عملکردها می تواند به ’’God Object’’ یا ساختارهای بسیار پیچیده منجر شود که نگهداری آن دشوار است. همچنین در طراحی ضعیف، جذب ممکن است منجر به از بین رفتن جداسازی نگرانی ها (Separation of Concerns) شود که یکی از اصول کلیدی طراحی نرم افزار است.
نتیجه گیری کاربردی درک صحیح از absorption و کاربرد هدفمند آن در طراحی نرم افزار و معماری سیستم ها می تواند به افزایش انسجام، کاهش وابستگی و بهبود کارایی منجر شود. آموزش آن در کنار مفاهیم ترکیب، انتزاع و ماژولاریتی، برای دانشجویان و مهندسان نرم افزار ضروری است.