| « Зимний семинар по Adobe Flex 2 | Новоселье » |
Погнаться за двумя зайцами

Однажды мне предложили сделать диск-архив и в качестве бонуса - очень похожий по функциональности диск по соседней тематике. Первым был диск «Ускользающие шедевры», вторым - «Радиоискусство» (версии без картинок на free-lance.ru).
Из чего должен состоять диск:
- Заставка
- Два раздела с простым статическим контентом
- Один раздел - поиск по базе изображений. Поиск по одному из трех параметров, вывод результатов.

Подобный проект можно реализовать практически любым из известных науке способом программирования на ActionScript:
- Пользоваться фреймами и крепить код к ним
- Разделить все по символам-классам, в самих классах вести разработку как душе угодно
- Разделить все на символы-классы и с надеждой на повторное использование кода во второй части проекта («Радиоискусство») попытаться грамотно использовать наследование и события
Путь с фреймами в проекте такого размера ведет к очень плохим последствиям, жертвой которых я сам становился не раз: в каких-то местах код скапливается в огромных количествах и его уже не получается чинить/модернизировать - просто невозможно понять, где нужный кусок находится и зачем эта строчка тут.
Если попробовать полностью положиться на классы как панацею от всех бед без обдумывания структуры проекта то получиться может все что угодно ![]()

На самом деле достаточно воспользоваться очевидными особенностями задачи:
- Три раздела - для них можно сделать один базовый класс, в нем - вся общая функциональность (переключение между разделами, открытие, закрытие)
- Поскольку дизайн у двух дисков разный, а функцинальность одна - то нужно отделать внешний вид от кода полностью

В итоге второй диск получился из первого примерно за 5 часов, в то время как стоил столько же.
Конечно, не все было чудесно, при разработке были допущено довольно много стратегических ошибок во имя ускорения процесса и которые в итоге привели к потере времени
И тем не менее, код первого диска - 20 файлов (75 кб), код второго - 10 файлов (40 кб, все наследуют у файлов с такими же именами из кода первого проекта с внесением нужных изменений, порядочно copy-paste). Он (сopy-paste) появился из-за того, что я поленился хорошо разделить код на функции/обработчики событий и из-за мелкого изменения в функции приходилось перегружать ее полностью.
Это самый простой и действенный пример пользы от использования хотябы каких-то приемов ООП.
Трекбек адрес этой записи
URL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку)
2 комментариев
код второго - 10 файлов (опирающихся на код первого, порядочно copy-paste).
На самом деле copy-paste в софтверной разработке с использованием ООП - признак плохого дизайна. А почему не использовал код из первого проекта напрямую (отнаследовавшись или еще как-нибудь)?
copy-paste в софтверной разработке с использованием ООП - признак плохого дизайна
Готов под этим подписаться.
Но дело в том, что все мы с чего-то начинали и я например наделал столько ошибок, что и вспомнить страшно




