|
code reviews
|
|||
---|---|---|---|
#18+
Коллеги, поделитесь, плиз, практическим опытом организации code reviews. В идеале хотелось бы: - чтобы каждое изменение, внесенное в код, просматривалось вторым человеком - чтобы этот "просмотр" тоже как-то регистрировался (т.е. было понятно, кто внес изменения и кто их просмотрел) - чтобы процесс был по максимуму .. того.. streamlined .. разогнан, что-ли. в идеале, чтобы мне в почтовый ящик сваливалось то, что надо посмотреть, я кликал на ссылку, сразу видел, что изменилось и т.п. Спасибо, Mike ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 11:21 |
|
code reviews
|
|||
---|---|---|---|
#18+
Хм. Имхо это организовывается через VCS. Потребности в регистрации "кто просмотрел" у меня не возникало, а все остальное делается на раз - ставится фильтр Files to checkout, и все сделанные изменения к моим услугам. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 11:30 |
|
code reviews
|
|||
---|---|---|---|
#18+
softwarerХм. Имхо это организовывается через VCS. Потребности в регистрации "кто просмотрел" у меня не возникало, а все остальное делается на раз - ставится фильтр Files to checkout, и все сделанные изменения к моим услугам. Да, что-то вроде этого, с более интеллектуальным фильтром. Хотя, если честно, я не думаю что идея просмотра всех изменений кода очень полезна. Для проверки соответствия кода неким стандартам существует немыслимое число утилит. А "визировать" чужой код имеет смысл только для новых сотрудников, недавно принятых на работу. В дальнейшем - или человек пишет "правильно" и ему доверяют или покидает компанию. Кроме того ответственный за "визирование" кода как правило быстро тонет в количестве изменений, и спускает это дело на тормозах. У него ведь есть и другая работа. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 11:55 |
|
code reviews
|
|||
---|---|---|---|
#18+
Один1Для проверки соответствия кода неким стандартам существует немыслимое число утилит. Хм. Скажем так, я не верю в "тупые стандарты" - те, которых можно достичь за счет автоматических форматизаторов и автоматической же проверки. Согласен, меня будет несколько бесить, если половина кода написана с отступом в два пробела, а половина - в четыре, но подобные вопросы - это максимум 20% того, что по-хорошему должно быть стандартизировано. Один1А "визировать" чужой код имеет смысл только для новых сотрудников, недавно принятых на работу. В дальнейшем - или человек пишет "правильно" и ему доверяют или покидает компанию. Это идеальная ситуация, к которой хотелось бы стремиться, но. Скажу так: я работал с командой, с которой у меня не возникало потребности в code review. Я работал с парой людей, с которыми я крупно ошибся, не делая code review. Наконец, я работал с командой, где у меня было сильное желание пойти к начальству и сказать, что я хотел бы заниматься в первую очередь code review, потому что отлавливать и давить сразу же оказывается гораздо быстрее, чем ждать, пока я наткнусь на "это" в ходе решения какой-либо другой задачи. Разумеется, я бы предпочел всегда и везде иметь первый случай. Сейчас - я бы очень хотел найти работу с перспективой собрать свою команду, и собирал бы ее под первый случай. Но... Практически вопрос в том, что code review - это не только и не столько проверка соблюдения стандартов, будь то пробелы, именование переменных итп. Скорее это метод удержания системы целостной; возможность дать разработчикам проявлять инициативу и при этом не дать толковому, но чуть неопытному и чуть увлекающемуся разработчику наломать лишнего. Один1Кроме того ответственный за "визирование" кода как правило быстро тонет в количестве изменений, и спускает это дело на тормозах. У него ведь есть и другая работа. Это да. Визирование кода должно быть адекватно организовано, иначе его не стоит и начинать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 16:45 |
|
code reviews
|
|||
---|---|---|---|
#18+
Проверка исходных текстов - это одно из основополагающих положений структурного программирования, которе очень бурно обсуждалось в конце 70-х в начале 80-х в связи с появлением структурно ориентированных языков. Я в то время работал на PL1 и Fortran 77. Хочу напомнить тем, кто по старше, или просто сообщить, тем кто тогда еще не работал, что цель этой работы - не только проверка. Главная цель - устранение ошибок программирования на самой ранней стадии, т.е. кодирования программы. И очень существенная деталь - ни в коем случае этой работой не должен заниматься шеф (начальник) или выделенное лицо. Если шеф - это психологическая нагрузка. Если выделенный человек - это пропуск одних и тех же ошибок. Обычно рекомендации состояли в том, что бы проверка текстов шла по кругу, т.е. ты мои, он твои, а я - его. Тогда постоянной ошибке деваться не куда - ее кто нибудь обязательно обнаружить. PS. Всю свою практическую работу (блин, всегда был начальником у программистов) пытаюсь это наладить, и никогда это не вживалось. Только теория. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2006, 17:33 |
|
code reviews
|
|||
---|---|---|---|
#18+
PVPPS. Всю свою практическую работу (блин, всегда был начальником у программистов) пытаюсь это наладить, и никогда это не вживалось. Только теория. Значит, плохой начальник. Хороший начальник должен знать, что искать ошибки глазами - это наименее эффективный способ обеспечить соответствие программы требованиям. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 10:11 |
|
code reviews
|
|||
---|---|---|---|
#18+
М.Голованов Хороший начальник должен знать, что искать ошибки глазами - это наименее эффективный способ обеспечить соответствие программы требованиям. Вообще то всегда считалось ровно наоборот - ведь текст программы - это выражение мыслей (какие бы они не были) разработчика и эти мысли могут быть переданы другим участникам проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 11:26 |
|
code reviews
|
|||
---|---|---|---|
#18+
М.Голованов PVPPS. Всю свою практическую работу (блин, всегда был начальником у программистов) пытаюсь это наладить, и никогда это не вживалось. Только теория. Значит, плохой начальник. Хороший начальник должен знать, что искать ошибки глазами - это наименее эффективный способ обеспечить соответствие программы требованиям.Какие ошибки, поличество пробелов отступа? Наличие комментариев, типа "автор, дата"? А как на счет того, что бы пропустить какую то функцию, что будет обнаружено только при внедрении? Или использовать неравильный индекс, что вылезет только, когда база данных вырастет? Или когда программист полез в разработку тех процедур и функций, которые сделаны уже другими программистами в команде? И еще. Молодые также находят ошибки у стариков. Почти в каждой сколь нибудь серьезной процедуре. А помните стурую притчу "Ни что так не запоминают ученики, как ошибки своих учителей?". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 12:08 |
|
code reviews
|
|||
---|---|---|---|
#18+
PVPПроверка исходных текстов - это одно из основополагающих положений структурного программирования, Хм. Простите, а не дадите ли какую-либо ссылку? Это идеи примерно одного времени, но вроде в моих книгах по структурному программированию такого основополагающего принципа не встречалось. PVPХочу напомнить тем, кто по старше, или просто сообщить, тем кто тогда еще не работал, что цель этой работы - не только проверка. Главная цель - устранение ошибок программирования на самой ранней стадии, т.е. кодирования программы. Я бы добавил, что в те времена машинное время стоило существенно дороже, и поэтому посидеть с карандашом и листингом и найти тупые ошибки "до того, как" было весьма выгодно. Сейчас этот аргумент менее важен. Что же до поиска серьезных, глубоких ошибок - не уверен в эффективности такой круговой любительской проверки. Я все же полагаю, что сейчас основная задача code review - не поиск багов, ошибок в смысле тестирования, но поиск неудачных решений, того, что в принципе будет работать, но является ошибкой с точки зрения качества итогового продукта. PVPОбычно рекомендации состояли в том, что бы проверка текстов шла по кругу, т.е. ты мои, он твои, а я - его. Тогда постоянной ошибке деваться не куда - ее кто нибудь обязательно обнаружить. С точки зрения поиска ошибок стоит именно так. С точки же зрения соблюдения стиля - я таки за единоначалие. Причина - такое желание сейчас возникает, если проверяемые слабы. Ну а тогда они друг у друга напроверяют... PVPPS. Всю свою практическую работу (блин, всегда был начальником у программистов) пытаюсь это наладить, и никогда это не вживалось. Только теория. Да в общем-то неудивительно. Какие у человека стимулы это делать? Грубо говоря, от человека требуют тратить свои силы на улучшение чужой работы. При этом если он проверит быстро и пропустит ошибку - ничего страшного; если же он потратит кучу времени, достанет автора уточняющими вопросами и ничего не найдет - никто ордена не даст. Плюс бытующая у многих нелюбовь отдавать свои исходники и копаться в чужих, плюс внутренние отношения типа "вот этот, сволочь, все время у меня ошибки находит". Это еще один аргумент в пользу выделенного человека. Грубо говоря, если уж я трачу на это свое время - я знаю, зачем мне это нужно, и делаю хорошо. Если я вписываю это в служебные обязанности Васи Пупкина - ему выделяется на это время и он отвечает за результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 12:35 |
|
code reviews
|
|||
---|---|---|---|
#18+
[quot PVPА как на счет того, что бы пропустить какую то функцию, что будет обнаружено только при внедрении? Или использовать неравильный индекс, что вылезет только, когда база данных вырастет? Или когда программист полез в разработку тех процедур и функций, которые сделаны уже другими программистами в команде? [/quot] Вот когда другой программист должен изменить код, тогда и имеет смысл разбираться с исходным кодом. И только тогда. Во всех же остальных случаях для того, чтобы узнать, хороша программа или плоха, достаточно ее протестировать. Более того, тестировать ее необходимо со всех точек зрения. "когда база данных вырастет" ? - так скажите программисту, что при таких-то объемах данных должно быть такое-то время отклика в таком-то месте. И пусть делает... если он программист. Напишет и выполнит соответствующй тест. "пропустить какую то функцию" ? - а в требованиях написано? если написано, должен быть тест. Если он этого теста не сделал - уволить. Короче, по результатам надо судить. А чтобы они были, их надо грамотно определить. В этом и задача начальника, а не в ловле блох. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 16:04 |
|
code reviews
|
|||
---|---|---|---|
#18+
М.Голованов чтобы узнать, хороша программа или плоха, достаточно ее протестировать. чтобы узнать, хороша программа или плоха , достаточно ее прочитать и если она плоха то тестировать ее будет уже незачем - экономия получается ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 16:58 |
|
code reviews
|
|||
---|---|---|---|
#18+
М.ГоловановВот когда другой программист должен изменить код, тогда и имеет смысл разбираться с исходным кодом. И только тогда.Да нет, здесь Вы ошибаетесь. К сожаления, я не могу дать ссылку на ту литературу, которой когда то пользовался, так как книг тех уже у меня нету. Но еще одним из правил проверки текстов является "ошибки должен исправлять тот, кто их сделал". Если исправления сделает другой, то это медвежья услуга - во первых, ошибка повторится, во-вторых - это камень в нормальный психологический климат в команде (мол, за тебя приходится все доделывать). М.ГоловановВо всех же остальных случаях для того, чтобы узнать, хороша программа или плоха, достаточно ее протестировать. Более того, тестировать ее необходимо со всех точек зрения. "когда база данных вырастет" ? - так скажите программисту, что при таких-то объемах данных должно быть такое-то время отклика в таком-то месте. И пусть делает... если он программист. Напишет и выполнит соответствующй тест. "пропустить какую то функцию" ? - а в требованиях написано? если написано, должен быть тест. Если он этого теста не сделал - уволить.До можно конечно. А можно и не тестировать. Отдать заказчику, жизнь покажет где ошибки. И потом их исправить. Дополнительная экономия еще и на тестировании. М.ГоловановКороче, по результатам надо судить. А чтобы они были, их надо грамотно определить. В этом и задача начальника, а не в ловле блох.Согласен на счет грамотности. И одно из свойств, характеризующих грамотный процесс разработки - проверка исходников. Чем раньше обшибка обнаружена, тем дешевле стоит ее исправление. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 17:20 |
|
code reviews
|
|||
---|---|---|---|
#18+
PVP"ошибки должен исправлять тот, кто их сделал" Я не имел в виду исправление ошибок. Я имел в виду необходимость внсти изменения в случае, когда автор уже далече. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 18:20 |
|
code reviews
|
|||
---|---|---|---|
#18+
PVPсвойств, характеризующих грамотный процесс разработки - проверка исходников. Чем раньше обшибка обнаружена, тем дешевле стоит ее исправление. Ну, вас не перешибешь. Заладил тут со своими исходниками... Дешевле всего стоит грамотная постановка задачи, в которой четко сказано, что и как должна делать программа. Если она это делает - возить носом по исходникам глупо. Если не делает - надо просто увольнять разработчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 18:25 |
|
code reviews
|
|||
---|---|---|---|
#18+
М.ГоловановВо всех же остальных случаях для того, чтобы узнать, хороша программа или плоха, достаточно ее протестировать. Недостаточно - если только не расширять понятие "тестировать" до вещей, этому процессу обычно не свойственных. Грубо говоря, если мы говорим, что тестируется исполняемый код, если результатом тестирования является оценка соответствия данного exe-шника выдвинутым требованиям, то недостаточно. Этого достаточно для того, чтобы программу можно было сдать заказчику, то есть для соблюдения внешнего стандарта качества. Для соблюдения внутреннего - может и не хватить, даже скорее всего не хватит. Как пример.... у меня был один коллега, парень потрясающей работоспособности. Он приезжал на работу, работал, работал, работал, если не изменяет память, не обедал, работал, работал, оставался в офисе один и работал, потом ехал домой и там работал - примерно так. За то время, что мы вместе работали, он дважды чуть ли не полностью переписал программу, которую изначально разработал. То есть дважды появлялся заказчик, которому показывали "более-менее похожую программу" и он садился вот в таком режиме за ее переделку. Начальство очень его ценило и надеюсь, ценит до сих пор. Но по моему знакомству с ее исходниками скажу так - если бы изначально уделить больше внимания проектированию, результаты - те, которые по-Вашему являются единственным критерием и которые он показывал - обошлись бы раза в четыре дешевле. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2006, 11:59 |
|
code reviews
|
|||
---|---|---|---|
#18+
автор очень существенная деталь - ни в коем случае этой работой не должен заниматься шеф (начальник) или выделенное лицо. Если шеф - это психологическая нагрузка. Если выделенный человек - это пропуск одних и тех же ошибок У меня противоположное мнение. Code review должен заниматься прежде всего человек, имеющий вес, авторитет в команде - с точки зрения разработки. Ибо, как правильно написал softwarer, это еще и поиск неудачных решений. И потому что с каждым непризнанным гением нужно будет бороться ,его нужно будет убеждать. Приказов, попыток просто заставить здесь недостаточно. 2 М.Голованов авторДешевле всего стоит грамотная постановка задачи, в которой четко сказано, что и как должна делать программа. Если она это делает - возить носом по исходникам глупо. Если не делает - надо просто увольнять разработчика. Это очень узкий взгляд. Ну да, сегодня программа постановке удовлетворяет. А завтра потребовались незначительные доработки и - упс... надо все переделывать сначала. Потому что при формальном соответствии внешним требованиям не было обеспечено внутреннее качество. А уж ваше повторяющееся из поста в пост стремление чуть что уволить разработчика... Ну уволите. Что, лучше стало? Сколько времени уйдет на поиск нового, на введение его в курс дела? И лучше ли он старого? Nobody faults but mine... (LZ) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2006, 17:28 |
|
code reviews
|
|||
---|---|---|---|
#18+
aagА уж ваше повторяющееся из поста в пост стремление чуть что уволить разработчика... Это проще, чем навязывать разработчикам ваши представления о том, как надо писать. Хороший программист сам знает, как надо, а плохой все равно сделает плохо. Особенно если будете навязывать ему свои "библиотеки", которые еще неизвестно чем лучше других, которых кругом полно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2006, 00:59 |
|
|
start [/forum/topic.php?fid=33&fpage=61&tid=1549449]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
289ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
123ms |
get tp. blocked users: |
2ms |
others: | 249ms |
total: | 705ms |
0 / 0 |