💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ amir tavakolian
رابطه api و Dependency Inversion
جامعه مهندسی نرم افزار ایجاد شده در ۰۴ آبان ۱۴۰۰

سلام استاد 

 

میشه گفت که  api ساختن برای یک نرم افزار ربطی به رعایت کردنه  Dependency Inversion داره؟

 

در بحث  Dependency Inversion گفته شد که اگه بر پایه یک abstraction ( اینترفیس یا ابسترکت ) کار کنیم؛ بقیه میتونن نرم افزار ما رو توسعه بدن.

 

باتوجه به این حرف؛ میشه گفت؛ نوشتن api برای یک نرم افزار (مثلا api‌های نوشته شده واسه تلگرام) که باعث میشه این نرم افزار رو توسعه داد؛ همون رعایت  Dependency Inversion هستش؟

 

میشه گفت که api‌ها یک مثال از abstraction هستن؟

 

 

وقتی میخوایم یک مفهوم رو بررسی کنیم باید حواسمون به Context باشه، وقتی context متفاوت باشه میتونی معنی‌های متفاوتی بده. Dependency inversion در کجا و برای چی مطرح میشه؟ در سطح design کدها و سطحش low level‌تر هست نسبت به اون rest api که مد نظر شماست. حالا rest api در کجا مطرح میشه؟ در سطح integration و ارتباط بین سیستم ها، api‌ها اجازه میدن که یک نرم افزار توسط دستوراتی بر مبنای یک پروتکل فراخوانی بشه و رفتار نرم افزار رو تغییر بده. این کاری که rest api انجام میده کاملا متفاوت از اون dependency inversion در سطح design کدها هستش.

کیوان علی محمدی ۲۵ آبان ۱۴۰۰، ۱۵:۵۴
<p>ممنون از پاسختون </p><p>فقط بحث من سر مفاهیم نبود </p><p><br></p><p>ببینید ما در DIP گفتیم که یک Interface ( قانون) رو تعیین میکنیم و اگه هر کلاسی این اینترفیس رو رعایت کنه میتونه کدهایی کلاس رو توسعه بده </p><p>مثلا notification که میشه با sms و ایمیل و... انجام بشه</p><p><br></p><p>در api هم ما یک سری متد تعیین میکنیم ( قانون) که هرکسی این متدها رو کال کنه و پارامترهای تعیین شده رو ارسال کنه میتونه از خدمات استفاده کنه </p><p><br></p><p>سوال من این بودش این تشابهی که بین این دو هستش ( هر دو قوانین رو تعیین میکنن که کاربر با رعایت قوانین میتونه به خدماتی دسترسی داشته باشه و اونها رو توسعه بده ) ایا میشه اون api رو شبیه dependency inversion دانست؟</p>
amir tavakolian ۲۵ آبان ۱۴۰۰، ۱۷:۴۸

در DIP بحث اصلی ما بحث وابستگی و نحوه مدیریت اون هست و در API بحث قراردادی که مشخص میکنه شما چه چیزی رو داری و چه کاری می‌تونی انجام بدی. درسته دوتاشون قرارداد دارن و این نوع قرارداد‌ها با هم فرق دارن.

بهترین پاسخ
کیوان علی محمدی ۰۳ آذر ۱۴۰۰، ۱۲:۵۷