@nohchiborz

Как вы «держите» в голове функции, переменные и их значения при написании программы, или разборе чужого кода?

Например, я пытаюсь понять написанную не мной программу. Когда иду сверху вниз по строкам кода, то чем дальше разбираю - из головы один за другим вылетают разные значения, будь то это функции или переменные. Особенно состояния их значений в "настоящее время". Бывает, что пытаешься понять вложенные циклы, или условия и просто физически не можешь отследить ход их работы от "а до я", в какой-то момент тупо забываешь на чем остановился "в данный момент".
У меня проблемы с памятью, или секрет в бумаге с ручкой под рукой?
  • Вопрос задан
  • 284 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) если речь о своем коде, я стараюсь писать его так что бы не нужно было все это помнить:
- осмысленные названия функций/методов/переменных
- локальность, все стремное выносится в отдельные функции/методы в рамках которой все просто и логично, дробить все на маленькие понятные вещи это пожалуй самое простое что можно делать
- SOLID

2) если речь о чужом коде, дебаггер, листик и ручка, рисую схемки и т.д, плачу... Если могу, опять же начинаю потихонку куски кода выновить в отдельные функции и т.д. если мне это мешает и этот код мне надо не тупо почитать да разобраться а потом еще и править придется.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@vilgeforce
Раздолбай и программист
@xpytep
Я обычно стараюсь не писать один длинный код, именно для того что-бы такого небыло. Я его специально разбиваю на функции, страницы.
Ответ написан
Комментировать
@nirvimel
Только декомпозиция задачи!
Без грамотной декомпозиции, наступление говнокода в проекте со временем неизбежно.
Ответ написан
Комментировать
@khud
Самый главный инструмент разработчика - это бумага и ручка. Декомпозиция кода - это следующий главный инструмент. Отладчик ближе к концу списка. Если смотришь в собственный код и не понимаешь, что происходит, значит код слишком большой или слишком сложный или там нет комментариев. Комментарии вообще играют очень важную роль, с одной стороны код сам по себе говорит (как минимум должен говорить), ЧТО делает код, а комментарий говорит о том ЗАЧЕМ это нужно. Можно еще использовать программирование по контракту (assert к примеру) для того, чтобы было более понятно что происходит. Императивное программирование и ООП тяготеют к спагетти коду особенно на этапе прототипирования. Функциональное программирование часто помогает решить часть проблем (иногда правда и новых добавляет).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы