Re[5]: Мертвый код в проекте - ваше отношение
От: rg45 СССР  
Дата: 21.12.24 12:03
Оценка:
Здравствуйте, SkyDance, Вы писали:

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


Я в свою очередь приложу все усилия, чтоб мне не пришлось работать в одной команде с фанатами типа тебя, которые, вместо того, чтобы заниматься делом, занимаются чисткой ради чистки.
--
Справедливость выше закона. А человечность выше справедливости.
Re[5]: Мертвый код в проекте - ваше отношение
От: m2user  
Дата: 21.12.24 15:52
Оценка:
SD>Я искренне надеюсь, что мне никогда в жизни не придется работать с кодовой базой, где до меня работал человек с вашим мышлением.

При изменении имплементации библиотечной функции очень сложно гарантировать, что не сломается зависимый код (а он может быть в проекте, про который ты вообще не знаешь).
Иногда это приводит к форкам целых библиотек.
Не то, чтобы я был в восторге от такого дублирования, но иногда по-другому не обосновать отсутствие возможных негативных последствий изменения библиотечного кода.
Re[8]: Мертвый код в проекте - ваше отношение
От: m2user  
Дата: 21.12.24 15:53
Оценка:
S>Даже если разработка ведется без жесткой формализации, все равно есть список фич для очередного релиза + список фич существующей версии ПО, + набор тестов (тестов разных типов) для контроля качества и регрессий.

Список требований может поменяться (как правило в меньшую сторону) в ходе разработки.
Например нужно поддержать некую линейку устройств, про которую на начальном этапе мало известно.
В ходе исследования выясняется, что вообще технически можно поддержать и сколько это будет в человеко-часах. Формализуется ТЗ.
Потом в ходе разработки и тестирования часть некритичного функционала могут выкинуть (перенести на будущие релизы), причем чисто на уровне документации или UI и уже после code lock/freeze.
Вот так и получится "неиспользуемый" код.

S>Даже если разработка ведется по какой-нибудь версии аджайла (или что там сейчас модное и молодежное?), то все равно у вас есть зафиксированные цели на текущий спринт. Так что требуемая функциональность все равно находится под контролем.

S>А если это не так, что какая же это разработка ПО, это бардак какой-то.

Ну в одном цикле разработки может быть запланирован переход с библиотеки A на B. А в следующем цикле — назад.
Я предпочитаю планировать на несколько циклов вперёд.
Циклы не обязательно короткие, т.е. не agile.
Re[9]: Мертвый код в проекте - ваше отношение
От: so5team https://stiffstream.com
Дата: 21.12.24 16:16
Оценка:
Здравствуйте, m2user, Вы писали:

M>Вот так и получится "неиспользуемый" код.


Поскипал ненужное растекание по древу, т.к. описанное вами не имеет отношения к тому, что вы же говорили ранее:

Требуемая функциональность — это расплывчатое понятие.


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

И да, вопрос не в том, как образуется "мертвый код". Конкретно в данной ветке отметились персонажи, которые вообще не понимают что такое "мертвый код". Как раз из-за якобы расплывчатого понятия "требуемая функциональность".
Re[4]: Мертвый код в проекте - ваше отношение
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.12.24 16:44
Оценка: +1
Здравствуйте, m2user, Вы писали:

M>В этой ситуации не нужно менять функции, которые могут использоваться в 100500 мест, а следует добавить новые.


Плохая идея. Рано или поздно количество похожих функций разрастается до чудовищного размера. Новичку вообще непонятно, какую из вариаций вызывать.
Re[4]: Мертвый код в проекте - ваше отношение
От: bnk СССР http://unmanagedvisio.com/
Дата: 21.12.24 17:48
Оценка: +1
Здравствуйте, m2user, Вы писали:

SD>>Требует, конечно. Представь, у тебя есть библиотека нижнего уровня, которую нужно подправить. Внезапно, те 2 функции, что ты хочешь поменять, используются в 100500 мест. И банальный пятиминутный рефакторинг превращается в "задачу на 3 года". Но если начать копать, оказывается, что 100499 мест на самом деле мертвый код. Руки бы поотрывать тем, кто его оставил.


M>В этой ситуации не нужно менять функции, которые могут использоваться в 100500 мест, а следует добавить новые.


"Индусы" в основном так и делают. Это работает для проектов, время жизни которых — несколько лет.
А вот если время жизни больше, то через несколько лет, когда приходит пушной зверек,
эти товарищи просто переходят на другую работу, а бедная компания начинает новый проект цифровой трансформации.
Отредактировано 21.12.2024 17:53 bnk . Предыдущая версия .
Re[5]: Мертвый код в проекте - ваше отношение
От: Osaka  
Дата: 21.12.24 18:31
Оценка:
A>И это ещё у них гита не было на момент моего ухода. Страшно представить, что там началось с внедрением гита.
А какие есть варианты, что начнётся с внедрением гита? Премия и повышение внедрившему, путаница и куча безполезной работы всем остальным.
Re[6]: Мертвый код в проекте - ваше отношение
От: Alekzander  
Дата: 21.12.24 18:42
Оценка:
Здравствуйте, Osaka, Вы писали:

A>>И это ещё у них гита не было на момент моего ухода. Страшно представить, что там началось с внедрением гита.

O>А какие есть варианты, что начнётся с внедрением гита? Премия и повышение внедрившему, путаница и куча безполезной работы всем остальным.

Ну, это зависит от привычек. Я имел в виду привычку хранить код в удалённых версиях, документы в Корзине и т.д. А сам по себе гит отличный инструмент.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re[5]: Мертвый код в проекте - ваше отношение
От: SkyDance Земля  
Дата: 21.12.24 19:49
Оценка:
A>Что если ты увеличиваешь массу кода вдвое, то и сложность растёт вдвое. А это не так!

Конечно, не так — там квадрат. Сложность растет вчетверо

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

A>Как управлять самими этими модулями — зависит от технической части. Это может быть и #ifdef, и конфиги для сборки и что-то ещё.


Ух, нет, это сразу же делает мертвый код по-настоящему мертвый. Если он под ifdef, и не запускается даже в CI, он очень быстро протухнет, и работать вовсе перестанет.
Re[6]: Мертвый код в проекте - ваше отношение
От: SkyDance Земля  
Дата: 21.12.24 19:51
Оценка:
R> занимаются чисткой ради чистки.

А вот это уже ваши фантазии. Удаление мертвого кода делается не "ради чистки", а для ускорения выката новых фич (из-за отсутствия необходимости поддерживать старый мусор). Как несложно заметить, писать с нуля прототипчики куда быстрее, чем добавлять пять строчек кода в кодовую базу с авгиевыми конюшнями 15 лет разработки.
Re[7]: Мертвый код в проекте - ваше отношение
От: rg45 СССР  
Дата: 21.12.24 20:11
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>А вот это уже ваши фантазии.


Да ну? Вот это
Автор: rg45
Дата: 19.12 02:47
твоё несогласие — это мои фантазии? Я ведь здесь именно эту мысль выражал — что чистки ради чисток — дурная работа. И именно с этим ты не согласился.
--
Справедливость выше закона. А человечность выше справедливости.
Re[5]: Мертвый код в проекте - ваше отношение
От: m2user  
Дата: 21.12.24 22:22
Оценка:
P>Плохая идея. Рано или поздно количество похожих функций разрастается до чудовищного размера. Новичку вообще непонятно, какую из вариаций вызывать.

По-моему опыту, просто делаются форки библиотечного кода в тех проектах, где нужна измененная имплементация.
Старые проекты остаются на старой версии.

Новичкам же следует смотреть комментарии в истории изменений кода.
В идеале конечно должна быть актуальная документация по всем библиотечным API.
Re[10]: Мертвый код в проекте - ваше отношение
От: m2user  
Дата: 21.12.24 23:11
Оценка:
S>И да, вопрос не в том, как образуется "мертвый код". Конкретно в данной ветке отметились персонажи, которые вообще не понимают что такое "мертвый код". Как раз из-за якобы расплывчатого понятия "требуемая функциональность".

В моем понимании мертвый код, это код, ставший таковым вследствии изменения требований к продукту (удаление фичей и т.п.).
По крайне мере так я понял топикстартера.
Но далее в теме появились другие дефиниции:
— это любой код, который не требуется для сборки проекта и соответстия текущему ТЗ.
— "код, который собирается, и возможно даже тестируется, но никто не знает, зачем оно там и что сломается, если его удалить. (sic!)"

Под второе и третье определение может попадать существенно больший пласт кода.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.