Ali Hakim
Ali Hakim
خواندن ۱ دقیقه·۵ سال پیش

مشکل Dependency hell چیست؟

Dependency hell مشکلی مفهومی در برنامه نویسی است که اغلب برنامه نویسان با آن دست وپنجه نرم میکنند و زمانی رخ میدهد که ما مجموعه ای از پکیج ها یا کتاب خانه های مشترک داشته باشیم که با پکیج ها یا کتابخانه های مشترک دیگری وابسته باشند، و این موضوع ممکن است در روند برنامه نویسی ما مشکلاتی را به وجود آورند که انواع مختلفی دارند و به طور کلی dependency hell نامیده می شوند. یکی از معروفترین آنها با عنوان Circular dependencies شناخته می شود. در این نوع، مشکل به گونه ای است که اگر اپلیکیشن A به نسخه بخصوصی از اپلیکیشن B وابسته باشد و بدون آن اجرا نشود و اپلیکیشن B نیز به نسخه بخصوصی از اپلیکیشن A وابسته باشد و بدون آن اجرا نشود (وابستگی ها حالت چرخشی داشته باشند)، upgrade کردن هرکدام از آنها باعت کرش برنامه میشود.

نوع دیگری از این مشکلات، Conflicting dependency نام دارد. که در مثال ذیل به طور اجمالی توضیح داده می شود:

مثلا فرض کنید که ما اپلیکیشنی داریم که به کتابخانه j-1 (j نسخه 1) و k-1 وابسته است و j-1 و k-1 نیز به نوبه خود به کتابخانه d-1 وابسته می باشند.

و حال میخواهیم برای اپلیکیشن از آخرین نسخه j (j-2 ) استفاده کنیم که وابسته به d-2 است در این حالت ما دسترسی به هر دو کتابخانه d-1 و d-2 را میخواهیم در حالی که فقط از یک نسخه آن میتوانیم استفاده کنیم و اینجا جایی است که با یک مشکل مواجه میشویم.

مقاله حاضر مشکل نوع Conflicting dependency را به طور کامل بررسی کرده و برای آن راه حل ارائه داده است که مطالعه آن را به شما پیشنهاد میکنیم.

https://medium.com/@simon.maxen/avoiding-dependency-hell-4121d2716918

dependencydependency hell
شاید از این پست‌ها خوشتان بیاید