• 06 марта 2019, 14:37
    • |
    • Igr
  • Еще

Программисты, как-то вы отдельно записываете логику программы, блок схема может, или в виде теста, что б через некоторое время вспомнить что да как и почему именно так? примеру буду благодарен

★1
ВНИМАНИЕ! КОММЕНТАРИИ ПЕРВОГО УРОВНЯ В ВОПРОСАХ УПОРЯДОЧИВАЮТСЯ ПО ЧИСЛУ ПЛЮСИКОВ, А НЕ ПО ВРЕМЕНИ ПУБЛИКАЦИИ.

Уууу. тут у нас как в стране «дикий капитализм» так и среди программистов-самоучек «дикий программизм»

 90% ограничивается  комментариями в коде. а еще 10% и того не делают :-)

в крайнем крупная логика может быть на начальном этапе прорисована схемой. А затем  по мере жизни проекта исправления ошибок и внесения корректировок в код, схема постепенно перестает быть актуальной а перерисовывать лень.

avatar
Андрейка, я коменты почти к каждой строчке ставлю, но это не даёт виденье общей картины, недавно не учёл один момент и потратил время на поиск ошибки, вот и задумался может схему нарисовать, но чёт она получается слишком громоздкой, вот и думаю как проблему решить 
avatar
Igr

Igr,

 

я коменты почти к каждой строчке ставлю, но это не даёт виденье общей картины

 

 

Нужно писать и читать на языке программирования, а не на языке комментариев. Комментарии, которые просто дублируют код не дают ничего, только отнимают время.

avatar
Андрейка, блок-схема — это принципиальная схема вашего проекта.
Если пришлось её перерисовывать (не путать с ДОрисовывать),
значит ваш изначальный проект провалился и нужна новая блок-схема.
avatar
Вы слишком усложняете. Просто делайте декомпозицию и пишите такой код, который сам расскажет, что происходит.
avatar
Как сказал когда-то Ron Jeffries: «Code never lies».
avatar
netbook, «Code never lies, comments somtimes do». © Ron Jeffries
avatar
Value, вот именно
avatar
На мой взгляд блок-схемы нужны, если ты работаешь в группе, чтобы попилить работу.
А так сильнее структурируй код: дели на отдельные пакеты, модули, классы и функции. Функции должны быть очень меленькими и делающими одну продую вещь, название функций и переменных должно быть говорящим за себя. Пишу доктриги, но избегай комментарии. Если нужен комментарий, скорее всего ты написал плохой код.
avatar

я стараюсь делать самодокументированный код + комментарии,
на начальном этапе идеи крупная схема + краткое описание логики в ворде/экселе.

avatar
Андрейка, самодокументированный код — это что такое?
avatar
Igr
Igr, самодокументированный в яндексе самая первая ссылка https://tproger.ru/articles/15-tips-selfdoc-js/

В кратце: имена функций — глаголы, имена переменных существительные, классы с большой буквы, экземпляры с маленькой, вообще там много всяких требований к такому коду

avatar
В самом простом случае «блок схема» (в гугле полно картинок, как это выглядит). Если система сложная, то используют UML диаграммы (тоже легко гуглится).

Хорошо продуманная до мелких деталей UML диаграмма — это уже огромная часть системы. 
avatar
Dmitryy, вручную рисуете или какой то прогой пользуетесь? 
avatar
Igr
Igr, обычно в визио или онлайн подобном редакторе, типа https://www.draw.io/
avatar
Dmitryy, диаграмму поддерживаешь в актуальном состоянии?
avatar
Андрейка, нет, у нас проект бьется на фазы, диаграммы описывают фазу изменений, её сделали, переключились на следующую. Поддерживать один большой док на весь проект — это очень трудо-затратно. И в конечном счете бесполезно, т.к. новички его не читают и не понимают.
avatar
Опишите сначала для себя что вы хотите реализовать и желательно подробно. Какие данные на входе в программу, что должно получаться на выходе. Всем переменным/функциям давайте говорящие имена (а не x, y, z), с таким подходом приблизитесь к самодокументируемому коду. Всю бизнес-логику оборачивайте в функцию, даже если в функции будет одна строчка и функция вызовется только один раз, это поможет в будущем и сформирует полезную привычку. По поводу самой логики советую почитать https://www.ozon.ru/context/detail/id/35045716/
avatar
Без блок-схемы — ни шагу:

Рисунок из 2016 года (https://smart-lab.ru/blog/322198.php)
avatar
XXM
В виде короткого текста, с существенной информацией.
комментарии в коде, если он тривиальный и пишется сразу, без подготовки
иначе — сохранять всё что можно: требования, бумажные черновики, прототипы (git!) и т.п. со временем потребуется восстанавливать весь процесс: что хотелось сделать, какие рассматривались варианты и почему были выбранны именно такие решения. 

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

описания могут иметь различный масштаб.

вбщм всё сильно зависит от сложности, объёма и как сильно вы отвлекаетесь от этого кода.

p.s.: на бумаге удобно прорабатывать навороченное ветвление (чем сразу писать код). хорошо видна последовательность принятия решений и наличие непокрытых вариантов.
avatar
bwc
не видел еще таких сложных проектов где нельзя было бы перевести в горизонтальную плоскость с 2-3 уровнями вложений. А для этого блок схема ненужна
avatar
Надо вам ребята, что нибудь на низком уровне покодить =))
avatar

Только зарегистрированные и авторизованные пользователи могут оставлять ответы.

Залогиниться

Зарегистрироваться

теги блога Igr

....все тэги



UPDONW
Новый дизайн