ПОЦЕЛУЙ & шаблоны дизайна

Мне представляется необходимость переписать старое устаревшее настольное приложение. Это небольшая настольная программа, не относящаяся к Java, которая по-прежнему поддерживает ежедневные задачи нескольких внутренних сообществ пользователей.

Язык, на котором приложение устарело и больше не поддерживается. Я младший разработчик, и мне нужно переписать его. Чтобы избежать перезаписи приложения, я планирую начать с использования существующих баз данных и структур данных (есть некоторые существенные ограничения, но, как бы ни был рефакторинг, этот подход позволит быстрее выполнить начальную работу, и избежать миграции, оба из которых являются ключом к успеху).

Моя проблема в том, что я очень противоречив в концепции Keep It Simple. Я понимаю, что речь идет о функциональности, а не о дизайне. Но когда я смотрю на написание этого приложения, кажется, что огромное количество времени может быть потрачено на поиск шаблонов проектирования (я действительно борюсь с внедрением зависимостей, в частности), когда придерживаюсь хорошего (но не "Группа четырех") Дизайн может сделать работу значительно быстрее и проще.

Это приложение будет расти и жить долго, но оно никогда не превратится в гигантского корпоративного гиганта с 4 миллионами линий, и его объекты не будут использоваться другим приложением (да, я знаю, но что, если.... ЯГНИ!).

Вопрос

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

Я хочу сделать это "правильно".... но это также должно быть сделано. Если я сделаю это слишком сложным, чтобы закончить, это будет неудачей независимо от дизайна.

2 ответа

Решение

Я бы сказал, что KISS, безусловно, относится к архитектуре и дизайну.

Чрезмерная архитектура - распространенная проблема в моем опыте, и есть запах кода, который касается:

Придуманная сложность

принудительное использование чрезмерно сложных шаблонов проектирования, когда достаточно простого дизайна.

Если использование более продвинутого шаблона проектирования, парадигмы или архитектуры не подходит для масштаба вашего проекта, не форсируйте его.

Вы должны взвесить потенциальные затраты на архитектуру и потенциальную экономию... но также и подумайте о том, какова будет дополнительная экономия времени на ее реализацию раньше, чем позже.

Да, ПОЦЕЛУЙ, но посмотрите http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351 и рассмотрите возможность рефакторинга в сторону шаблона проектирования небольшими шагами. код должен сказать вам, что делать.

Другие вопросы по тегам