Мені часто задають налагодження програми на своїй роботі. Це BI-додаток, яке ми розгортаємо для підприємств, що включає тестове середовище та виробниче середовище. Мені цікаво, чи є додатки / інструменти / методи, які можуть запропонувати люди, виходячи з цих обмежень:
Відладчик не можна використовувати на клієнтському сайті або локально, оскільки це програмне забезпечення залежить від спеціальних додатків сторонніх виробників, для яких у нас немає тестових середовищ. (EDIT: справедливо, в деяких випадках можна налагоджувати локальну програму. Якщо ми не використовуємо нічого, крім основного коду. Значна частина проблемного коду знаходиться в dll, який інкапсулює комунікацію сторонніх сторін: розетки, технологічні труби, мильні дзвінки, користувацька логіка, яка змінює поведінку основного коду. Зазвичай під час впровадження або вдосконалення для клієнта ми б писали новий код у цю область.)
У наших додатках практично не проводиться реєстрація. Одиничних тестів немає.
Контроль версій має лише 1 версію повного рішення (використовуючи джерело безпечного 2005 року). Тому неможливо отримати попередню версію всього рішення, лише окремі файли. (Якщо хтось не знає шляхів цього).
Неможливо відтворити локально, часто не можна відтворити на тестовому середовищі (Висока ймовірність того, що тест і виробництво не є однаковою версією).
Існує велика ймовірність того, що версія, яку використовує клієнт, відрізняється від версії, захищеної від джерела. Це відбувається тому, що оновлюються окремі файли, в які вбудована спеціальна логіка для конкретного клієнта. Часто відбувається те, що відбувається оновлення бінарного файлу, що вимагає змін у кількох інших двійкових файлах, але коли виконується фіксація, ніхто не має цього запису чи знань. Я бачу дещо поширену помилку: "Функція / метод не знайдено" або "Виклик методу має занадто багато / занадто мало параметрів" у клієнтському середовищі.
Це рішення .net VB
Неможливо встановити будь-яке програмне забезпечення на клієнтських сайтах, але можна локально
Наш додаток є надзвичайно налаштованим, але, на жаль, логіка налаштування є розповсюдженою у всіх класах та файлах, починаючи від переднього кінця, аж до рівня даних, включаючи спеціальні зміни, внесені до бази даних на основі кожного клієнта.
У коді практично немає коментарів. Немає документації про архітектуру. Немає документації про апі. Єдине, що ми маємо - це сотні до сотні ланцюжків електронної пошти, які дещо пояснюють, що відбувається. Код знають лише ті, хто спочатку його написав, але вони вже не розробники, так що вони не так сильно залучаються.
І перш ніж це сказати ... так, я знаю; Я хочу також розстріляти себе. Це не допомагає, що існує код спагетті, сотні попереджень про компілятор та зламаний поліморфізм, що СТРІЛЬНО слід виправити, але я не можу сказати в цьому.
Найпоширеніші різновиди помилок, з якими я стикаюся, - це помилки з нульовою посиланням, недійсні записи і відсутні функції / невідповідність підписів функцій. Іноді мені пощастить, і переглядач подій записує повідомлення про клас, метод та винятки. Це не найкорисніше, але все-таки щось є. Найгіршими є помилки, які не мають сліду, кроків повторної роботи, окрім скріншоту, і є загальними повідомленнями про помилки, на зразок згаданих вище. Іноді з’ясувати, чому вони сталися, неможливо, лише молитися про те, що оточення не налаштоване належним чином, і що воно піде пізніше.
Я знаю, що це виходить як трохи зграю, і певною мірою це є. Але я відчайдушно бажаю варіантів. Чи є інші методи / інструменти, якими я можу користуватися?