Сколько кода обычно повторно используется в одном приложении?
ИМО нет "типового" приложения, тем более в этом плане. Приложения имеют совершенно разные архитектуры и потоки выполнения, что приводит к разным схемам «повторного использования».
Рассмотрим приложение для пакетной обработки данных, которое считывает данные из файла в определенном формате, преобразует их в другой формат, а затем сохраняет. Практически у него один путь выполнения, поэтому не многие методы вызываются более чем из одного места.
OTOH рассматривает структуру плагинов с несколькими независимыми плагинами, которые используют один и тот же уровень инфраструктуры, поэтому функции на этом уровне вызываются из разных мест.
Вы не можете сказать, что дизайн первого приложения хуже, чем у второго (не вдаваясь в подробности, относящиеся к конкретному случаю).
Также обратите внимание, что метрика во втором случае сложна: если вы измеряете только саму базовую структуру без плагинов, вы получаете низкое количество повторного использования, но с фактическими плагинами счетчик повторного использования выше. Поскольку плагины могут разрабатываться сторонними организациями, у вас может даже не быть к ним доступа, поэтому ваша метрика будет искажена.
Это приводит к другому выводу: повторное использование может происходить на многих уровнях. Вы можете повторно использовать код в приложении или между приложениями. Последнее можно измерить, только приняв во внимание все рассматриваемые приложения.
Я думаю, что лучшим подходом к этому может быть начало с другого конца и поиск дублированного кода (например, с использованием таких инструментов, как PMD для кода Java). Если у вас есть большие фрагменты дублированного кода во многих местах, вам необходимо провести рефакторинг.
person
Péter Török
schedule
06.07.2010