Re[12]: Code review (просмотр кода)
От: LaptevVV Россия  
Дата: 29.04.19 11:01
Оценка:
LVV>>>>Писал Дейкстра, писал Кнут.
fk0>>> Что бы они ни писали, не нужно их считать безусловными авторитетами претендующими на абсолютное знание.
LVV>>В данном случае конкретно статья Кнута была не мнением, а исследованием.
C>Нет таких исследований.
Если есть возможность, найди вот эту статью Кнута: An empirical study of FORTRAN programs
У него еще есть на тему структурного программирования с goto.
https://web.archive.org/web/20130731202547/http:/pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Отредактировано 29.04.2019 11:02 LaptevVV . Предыдущая версия .
Re[10]: Code review (просмотр кода)
От: Privalov  
Дата: 29.04.19 11:28
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>И настоятельно мне рекомендовал использовать эти имена для соответствующих переменных.

LVV>Ибо я когда-нить перестану у него работать, а ему потом разбираться...
LVV>Вот и приходилось однобуквенные имена комментариями обкладывать.

Это был суровый матан?
У математиков давно принята система именования идентификаторов. Наверное, она в каждом коллективе своя. Но имена типа FP12K2 никого не смущали. В 6 символов математики умудрялись заложить глубокий смысл. Они и сейчас так пишут.
А почему односимвольные имена? Даже в "Искре-226" допускались двухсимвольные. Второй символ обязательно цифра. Вот это был клинический случай. Приходилось специальный документ, описывающий идентификаторы, составлять. Потому что программа с комментариями могла в память не уместиться.

LVV>Я вот прямо сейчас код курсовой одного студня правлю.

LVV>Сижу, комменты добавляю — чтобы понятней ему тоже было...

Так вставь ему пистон на ближайшей проработке. Ведь скажет же потом: это не я, это препод мне посоветовал так писать.
Re[3]: Статья от Яндекса по code review
От: std.denis Россия  
Дата: 29.04.19 11:36
Оценка:
LVV>>2. Проверка технической реализации, которую ожидаем также от старших и мидлов с экспертизой в данном компоненте.
LB>Экспертиза бывает судебно-медицинская, например. А здесь должно быть написано "являющихся экспертами" или "имеющих опыт работы". Двоечники, блин! Мидлы!

Да пора привыкнуть к этому карго-культу, уже везде эту прямую кальку используют любители показаться важными и идущими в ногу с.
Re[8]: Code review (просмотр кода)
От: Anonymous123 Чехия  
Дата: 29.04.19 12:10
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>>>"Мастерство не пропьешь"(с)...

P>>Оно, конечно, так. Но иногда некоторые коллеги присылают мне жалобы: такой-то участок кода не работает. Я открываю. Первая реакция: какой идиот это написал? Чуть позже с глаз спадает пелена, и я вижу: код — мой. Сделан так, что строка, добавленная коллегой, его сломала. Видимо, писался в спешке. А может, сейчас требования изменились. Деталей не помню, код написан несколько лет назад. И приходится мне правки в него вносить самому.
P>>Конечно, это не типичный случай. Но всякой бываеь.
LVV>Бывает. Я для этого применяю ТОТАЛЬНЫЙ коммент.
LVV>Студенты не верят, что я могу открыть прогу 7-летней давности и все по ней рассказать.
LVV>Когда видят комменты — глаза на лоб лезут: комментов больше кода...

Почитайте Фаулера.

"...comments often are used as a deodorant. It’s surprising how often you look at thickly commented code and notice that the comments are there because the code is bad."

"When you feel the need to write a comment, first try to refactor the code so that any comment becomes superfluous."
Re[10]: Code review (просмотр кода)
От: Sheridan Россия  
Дата: 29.04.19 13:15
Оценка: +2
Здравствуйте, Skorodum, Вы писали:

S>>Уроды это придумали. Недоучившаяся школота, не знающая инструментария. Не должен компилятор следить за стилем, для этого отдельные утилиты есть, тот же astyle.

S>Нормальные утилиты на компиляторе и основаны: clang-format. Просто по ключевым словам С++ полноценно не отформатируешь.

Ключевое: "на основе". Не часть компилятора, а отдельная утилита. На секундочку, настраиваемая.
А не так как у goвноавторов — стиль прибит гвоздями к компилятору.
Matrix has you...
Re[9]: Code review (просмотр кода)
От: Pzz Россия http://pzz.livejournal.com/
Дата: 29.04.19 14:01
Оценка:
Здравствуйте, Skorodum, Вы писали:

Pzz>>Вот чем хорош язык Go, в нем есть один единственный правильный стиль, который жестко енфорсится редактором текстов. И это сразу снимает все вопросы по стилю. И очень освобождает руки от форматирования текста.

S>В С++ IDE уже умеют форматировать код по мере набора с помощью clang-format (не только отступы, а именно продвинутое форматирование: скобочки, пробелы, перенос строк и т.п.). Стиль какой хочешь можно определить.

Ну я в Go стиль один на всех.
Re[13]: Code review (просмотр кода)
От: Cyberax Марс  
Дата: 29.04.19 16:36
Оценка:
Здравствуйте, LaptevVV, Вы писали:

C>>Нет таких исследований.

LVV>Если есть возможность, найди вот эту статью Кнута: An empirical study of FORTRAN programs
LVV>У него еще есть на тему структурного программирования с goto.
LVV>https://web.archive.org/web/20130731202547/http:/pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf
Это не исследование. Кроме того, там не разделяется goto назад и goto вперёд. Они фундаментально отличаются.
Sapienti sat!
Re: Code review (просмотр кода)
От: B0FEE664  
Дата: 29.04.19 16:38
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Уважаемые коллеги, предлагаю вам обсудить такую тему, как code review (просмотр кода).


Так как я пишу без ошибок, то делать Code review моего кода всем быстро надоедает. Последний code review свёлся к переписываю кода из стиля
Круговая оборона к стилю Контрактное программирование. Это произошло из-за того, что меня заранее не предупредили в каком стиле писать код.

Когда же я делаю code review, то обычно ищу (и нахожу) фактические ошибки, не выловленные при тестировании, к полному неудовольствию начальника проекта. Так как я работаю иностранным консультантом, то приходится проявляеть дипломатические способности и толерантно относиться ко многим нарушениям наилучших практик программирования. Например, если в спецификациях записано, что код должен соответсвововать MISRA C++, то найти список несоответствий довольно просто, однако практика показывает, что далеко не всегда после этого код будет исправлен, так как на работоспособность кода это не влияет.
И каждый день — без права на ошибку...
Re[13]: Code review (просмотр кода)
От: Cyberax Марс  
Дата: 29.04.19 16:41
Оценка:
Здравствуйте, LaptevVV, Вы писали:

C>>Использование goto для прыжков назад приводит к увеличению ошибок. Использование goto для прыжков вперёд количество ошибок уменьшает. Это было проверено уже много раз в проектах, которые пишутся на С.

LVV>Это было задолго до С — еще для фортрана. И как раз Кнутом.
То что бред сказали ещё до С — меньше бредом не становится.

C>>Но по какой-то идиотской причине до университетов это до сих пор не дошло. Видимо, из-за того, что преподаватели практическим программированием занимаются мало.

LVV>Если до американских не дошло, то это ИХ проблемы...
До американских дошло, что современная практика слегка отличается от 1960-го.

LVV>У нас — все дошло.

Ага, потому спутники и падают. Одна точка выхода из функции полёта — в Тихий океан.

LVV>Пишем вообще без goto...

Ну да, прививаете бредовые привычки с детства.
Sapienti sat!
Re[11]: Code review (просмотр кода)
От: mgu  
Дата: 29.04.19 22:04
Оценка:
Здравствуйте, LaptevVV, Вы писали:

mgu>>А в старом добром HTML-е один вход, а выхода нет. При этом к структурированности не придерёшься.

LVV>А это вообще не язык программирования

Буква L как бы намекает. Просто синтаксис не си-подобный.

mgu>>А ещё есть yield -- это вообще проходной двор.

LVV>Это в питоне, что ли?

И там тоже.
Re[4]: Статья от Яндекса по code review
От: mgu  
Дата: 29.04.19 23:19
Оценка:
Здравствуйте, std.denis, Вы писали:

LVV>>>2. Проверка технической реализации, которую ожидаем также от старших и мидлов с экспертизой в данном компоненте.

LB>>Экспертиза бывает судебно-медицинская, например. А здесь должно быть написано "являющихся экспертами" или "имеющих опыт работы". Двоечники, блин! Мидлы!

SD>Да пора привыкнуть к этому карго-культу, уже везде эту прямую кальку используют любители показаться важными и идущими в ногу с.


Уже?

Но панталоны, фрак, жилет,
Всех этих слов на русском нет;
А вижу я, винюсь пред вами,
Что уж и так мой бедный слог
Пестреть гораздо б меньше мог
Иноплеменными словами,

Re[12]: Code review (просмотр кода)
От: LaptevVV Россия  
Дата: 30.04.19 03:51
Оценка:
mgu>>>А в старом добром HTML-е один вход, а выхода нет. При этом к структурированности не придерёшься.
LVV>>А это вообще не язык программирования
mgu>Буква L как бы намекает. Просто синтаксис не си-подобный.
Буквы P нет...
mgu>>>А ещё есть yield -- это вообще проходной двор.
LVV>>Это в питоне, что ли?
mgu>И там тоже.
И ЧО?
Структурное программирование касается внутренней организации кода в процедурах и функциях.
В однопроцессорной схеме.
B прекрасно себя показало и показывает.
Несмотря ни на какие yieldы...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[14]: Code review (просмотр кода)
От: LaptevVV Россия  
Дата: 30.04.19 03:56
Оценка:
C>>>Нет таких исследований.
LVV>>Если есть возможность, найди вот эту статью Кнута: An empirical study of FORTRAN programs
LVV>>У него еще есть на тему структурного программирования с goto.
LVV>>https://web.archive.org/web/20130731202547/http:/pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf
C>Это не исследование. Кроме того, там не разделяется goto назад и goto вперёд. Они фундаментально отличаются.
Твое слово против слова Кнута.
Но у Дональда, по крайней мере, статья есть. А у тебя — нет.
Если есть — давай, почитаю.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[15]: Code review (просмотр кода)
От: Cyberax Марс  
Дата: 30.04.19 06:50
Оценка: 7 (2) +1
Здравствуйте, LaptevVV, Вы писали:

LVV>>>https://web.archive.org/web/20130731202547/http:/pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf

C>>Это не исследование. Кроме того, там не разделяется goto назад и goto вперёд. Они фундаментально отличаются.
LVV>Твое слово против слова Кнута.
В отличие от Кнута, я занимаюсь реальным промышленным программированием. Он не занимается.

И я не излагаю какое-то особенно странное мнение, goto для обработки ошибок и выхода из глубоких циклов является общепризнанным инструментом в С. Например, вот от Линуса: https://koblents.com/Ches/Links/Month-Mar-2013/20-Using-Goto-in-Linux-Kernel-Code/

Напоминаю, Линус Торвальдс — это человек, который на протяжении 20 лет руководит крупнейшим и самым сложным Open Source проектом на С.

LVV>Но у Дональда, по крайней мере, статья есть. А у тебя — нет.

LVV>Если есть — давай, почитаю.
http://www.se.rit.edu/~mei/publications/pdfs/An-Empirical-Study-of-Goto-in-C-Code-from-GitHub-Repositories.pdf — примерно такого же уровня, что и кнутовское сочинение на тему: "Что я делал этим летом".

Ну и напоследок: http://sci-hub.tw/10.1145/356635.356640 — это более поздняя статья от Кнута, где он пишет о том, что его опыт академического программирования не совсем применим к реальному миру. И что goto таки полезен, и приводит примеры этого (страница 287) и практически повторяет мои утверждения на стр. 294.
Sapienti sat!
Re: Code review (просмотр кода)
От: Kaifa Россия  
Дата: 01.05.19 08:04
Оценка:
RF>В чём заключается code review? Есть ли у вас на работе такое и как часто, каким образом оно проводится? Кто проводит у вас code review?
RF>Что бывает в случае плохого результата code review?

мне куда более интересно зачем нужен скрум, эджайл и канбан. а. еше 5с и абс забыл.

п.с. а кодревью штука полезная. зачастую новый работник может сгенерить код, исправляющий ошибку в одном блоке и из-за этого исправления рушится нахрен все остальное. и не из бандитских намерений, а просто потому, что он еще не знает как функционирует система в комплексе. тупо не знает бизнес процессы.
Re[12]: Code review (просмотр кода)
От: LaptevVV Россия  
Дата: 01.05.19 15:43
Оценка:
LVV>>Ни for, ни while не являются замаскированными goto.
C>Да ну? А если дизассемблером посмотреть?
А если вспомнить, что команда цикла и команда безусловного перехода — это разные команды?
А давай еще разложим команды ассемблера на микрокоманды? Если уж спускаться внутрь — то спускаться до микросхем...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[13]: Code review (просмотр кода)
От: Cyberax Марс  
Дата: 01.05.19 17:44
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>>>Ни for, ни while не являются замаскированными goto.

C>>Да ну? А если дизассемблером посмотреть?
LVV>А если вспомнить, что команда цикла и команда безусловного перехода — это разные команды?
А ты посмотри сам. Возьми типичный код Линукса с "goto cleanup" и загляни в ассемблер.
Sapienti sat!
Re[10]: Code review (просмотр кода)
От: pagid Россия  
Дата: 01.05.19 21:30
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ключевые люди там, в основном, все взрослые и уже отметившиеся в более других общеизвестных проектах

Угу, как раз из тех, что считают свой стиль единственно верным.
Re[13]: Code review (просмотр кода)
От: Privalov  
Дата: 02.05.19 06:30
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>А если вспомнить, что команда цикла и команда безусловного перехода — это разные команды?


Я не очень понимаю, зачем опускаться на уровень ассемблерных команд. Ты всегда, компилируя проект, создаешь и ассемблерные листинги. Чтобы почитать на досуге? Мне за всю жизнь пришлось их читать несколько раз. Править — никогда.

О командах. ЕМНИП, команды цикла и перехода в самом деле разные. Но команда цикла, которая loop, работает со счетчиком. Команды для цикла типа while я не помню. Обычно делается проверка условия, и по результатам либо безусловный переход вверх, либо условный вниз.

Совсем оффтоп. А зато jmp и ret, по сути, одно и то же. И call где-то там же.
Отредактировано 02.05.2019 6:58 Privalov . Предыдущая версия .
Re[14]: Code review (просмотр кода)
От: LaptevVV Россия  
Дата: 02.05.19 08:01
Оценка:
LVV>>>>Ни for, ни while не являются замаскированными goto.
C>>>Да ну? А если дизассемблером посмотреть?
LVV>>А если вспомнить, что команда цикла и команда безусловного перехода — это разные команды?
C>А ты посмотри сам. Возьми типичный код Линукса с "goto cleanup" и загляни в ассемблер.
Зачем. С циклами я работаю на более высоком уровне абстракции, чем с if+goto
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.