Обычно как раз лучше не пытаться, все равно переписывать, а сразу предусмотреть будущее - не получится.
Ну, если это не запуск корабля на Марс
Пытаться написать хорошо и пытаться предугадать будущее - совершенно разные вещи, я под "хорошо" подразумеваю не соответствие сегодняшнего кода будущим требованиям, которые действительно не угадаешь, а возможность быстро поменять код под эти новые требования, когда они появятся.