Я пытаюсь найти способ проанализировать долговечность кода в проектах с открытым исходным кодом: то есть, как долго конкретная строка кода активна и используется.
В настоящее время я думаю, что строка времени жизни кода начинается, когда он впервые фиксируется, и заканчивается, когда происходит одно из следующих действий:
- Это отредактировано или удалено,
- Исключено из сборок,
- Никакой код в его сборке не поддерживается в течение некоторого периода времени (скажем, год).
ПРИМЕЧАНИЕ. В качестве пояснения того, почему «правка» считается «смертью», отредактированные строки будут учитываться как «новое» поколение или строка кода. Кроме того, если бы не было простого способа сделать это, не было бы никакого объяснения долговечности линии или происхождения от предка.
Что еще определило бы продолжительность жизни кода?
version-control
efficiency
просчеты
источник
источник
Ответы:
Энди Озмент рассматривал OpenBSD в 2006 году с тем же вопросом: « Молоко или вино»: улучшается ли безопасность программного обеспечения с возрастом?
Вы можете быть в состоянии извлечь уроки из его определения. Это также очень интересная статья с интересным выводом, которая еще не была включена в знания об управлении программным обеспечением:
источник
Я не думаю, что есть ответ на это. Это сильно зависит от проекта. Некоторые из них более стабильны в течение многих лет, другие более изменчивы / реорганизованы / развиваются в течение многих лет.
Кроме того, это трудно измерить. Отредактированная строка - действительно конец ее жизни? Как насчет только косметического изменения, такого как переформатирование кодовой базы с помощью табуляции или пробелов? ИМХО, это не считается обновленной кодовой базой, но это будет соответствовать вашим критериям.
Тем не менее, я думаю, что большая часть LOCs живут вечно.
Причина проста: гораздо проще добавить новый код, чем удалить его. Особенно, когда система сложна и выросла за эти годы. Затем он быстро приходит к точке, где «рискованно» удалять или изменять нетривиальный код. Это может привести к ошибкам, нарушению совместимости, появлению эффекта изменений в виде «бабочки» ... Поэтому я думаю, что чем больше становится кодовая база, тем она старше, тем больше будет оставаться LOC.
Более того, только хорошие программисты стремятся очистить кодовые базы и сократить количество строк. Все остальные имеют тенденцию накапливать LOC. И пока что последние выигрывают. ;)
источник
Удаление или исключение строки кода определенно свидетельствует об окончании срока его службы.
Обновляя редактирование, я бы задал этот вопрос: дает ли это утверждение другой результат после редактирования?
Если ответ «да», то я бы сказал, что предыдущее утверждение больше не доступно, в противном случае я бы все равно считал его продолжением предыдущего.
Пример изменения результата:
чтобы:
Пример продолжения жизни:
чтобы:
источник