DLL hellDLL hell (буквально: «пекло динамічних бібліотек») — конфліктна ситуація, що виникає з динамічними бібліотеками DLL в операційній системі Microsoft Windows які спільно можуть використовуватись різними програмами, але після оновлення спільної бібліотеки однією з програм, працюють непередбачувано з рештою програм. Тобто, сутність проблеми полягає в конфлікті версій DLL, покликаних підтримувати певні функції. DLL hell — приклад поганої концепції програмування, яка, подібно до прихованої міни, призводить до різкого зростання труднощів при ускладненні та вдосконаленні системи. Аналогічна проблема в інших ОС може називатися «пекло залежностей».[1] Опис проблемиЗа початковим задумом, DLL повинні бути сумісними від версії до версії і взаємозамінними в обидві сторони. Реалізація механізму DLL така, що несумісність і невзаємозамінність стає скоріше правилом, ніж винятком, що призводить до великої кількості проблем.
Для уникнення конфліктів зазвичай використовують безліч надлишкових копій DLL для кожної програми, що зводить нанівець початкову ідею отримання переваги від DLL як стандартних модулів, що зберігаються один раз в пам'яті і поділюваних багатьма завданнями. Крім того, при такому досвіді після виправлення помилок в DLL або відновлення системи з архіву кількість різних DLL, що носять одне і те ж ім'я і виконують ті ж функції, зростає, а самочинне оновлення версії або виправлення помилок стає неможливим. Див. такожПримітки
Посилання
|