Багато інших відповідей стосуються певних проблем дизайну, або досить абстрактно. Якщо ви думаєте з точки зору того, що буде в майбутньому, ви можете визначити кілька чітких прийомів, які допоможуть коду в майбутньому .
В першу чергу думайте, що в майбутньому хтось спробує додати функцію до коду, або спробує повторно використовувати ваш код десь в іншому місці. Вони також можуть спробувати виправити функцію в коді. Очевидно, що просто мати хороший чистий код - це обов'язкова відправна точка, але є також деякі конкретні методи, які можна зробити.
Оборонне програмування : виконайте перевірку вводу, що перевищує те, що вам потрібно. Щоразу, коли ви телефонуєте API, обов'язково переконайтеся, що їх введення - це те, чого ви очікували. В майбутньому люди будуть змішувати нові версії коду разом, тому обсяг помилок та повернення API змінюватимуться від того, що є зараз.
Усунення невизначеної поведінки : багато коду має поведінку, яка просто розвивається з нізвідки. Певні комбінації введення призводять до певного результату, який ніхто насправді не мав наміру, але так буває. Тепер неминуче хтось буде покладатися на таку поведінку, але ніхто про це не дізнається, оскільки це не визначено. Той, хто намагатиметься змінити поведінку в майбутньому, ненавмисно порушить справи. Використовуйте перевірки безпеки зараз і намагайтеся видалити / заблокувати всі не визначені способи використання коду.
Автоматизований набір тестів : я впевнений, що ви можете знайти томи, написані про необхідність одиничних тестів. Що стосується майбутнього підтвердження, проте це є критичним моментом у дозволі комусь переробити код. Рефакторинг має важливе значення для підтримання чистого коду, але якщо не вистачає гарного набору тестів, ви не можете безпечно переробляти.
Ізоляція та сегрегація : інкапсуляція та правильна модуляція є хорошим принципом проектування, але вам потрібно вийти за рамки цього. Ви часто виявляєте, що вам потрібно використовувати бібліотеку, API чи продукт, який може мати сумнівне майбутнє. Можливо, через проблеми з якістю, проблеми з ліцензуванням або постійний розвиток авторами. У цих випадках потрібен додатковий час, щоб нанести шар між вами та цим кодом. Наріжте API так само, що вам потрібно, щоб з'єднання було дуже низьким, щоб в майбутньому було легше замінити.