Любопытную вещь прочитал давеча в "Компьютерре". Оказывается в Японии средний программист(?), очень производителен и пишет порядка 500000 строк кода в месяц. Автор статьи наверняка ошибся как минимум на порядок - может быть в год такое кол-во кода он пишет (т.е. порядка 1500 строк/8 часовый день). Тем не менее хочется узнать, сколько у нас считается нормально писать кода/месяц (причем без использования Copy-Paste). Ну, а субъективно качественную оценку представить себе можно - порой 10 строк на Си, больше значат (таят больше логики) чем десятки на других HLL, хотя и читабельным такой код бывает редко.
Вроде, уже давно все решили, что мерять крутость кода по количеству строк есть страшное ламерство. Эдак получается, что всякие студенты-роботы кодят лучше, чем профессиональные кодеры, потому что в муках рожают за ночь курсовые на 2 метра сорцов. А потом глянешь, что они там понаписали и сразу жить не хочется, потому что тоже самое делается раз в 20 короче и элегантнее. Особо радуют заявления об оптимальности кода, который из 10 строчек превратился в двухстроковый посредством незначительных упрощений алгоритма и в гораздо большей части простым спихиванием 3-4 строк в одну. Так что пусть Компьютерра вместе с японцами идет учить словарь. Я давно заметил, что люди в этом журнале заняты не своим делом.
alpet порой 10 строк на Си, больше значат (таят больше логики) чем десятки на других HLL, хотя и читабельным такой код бывает редко (Возможно, сейчас я буду излише резок, но сегодня мои пользователи меня ЗАДОЛБАЛИ). Обычно это абсолютно непригодный к модификации и сопровождению хлам. Для домашних поделок кульхацкеров сгодятся, для применения в промышленных условиях - нет. Резюме: фтопку такие строчки. А ублюдочный SQL, увы, именно такой стиль и поощряет, что меня бесит до крайности, т.к. в Delphi добавить/убрать что-то можно на автопилоте, а в SQL приходится думать, да еще и пол-задачи переделывать (а я это ненавижу лютой злобой - переделывать и так работающие задачи). Что же до вопроса "сколько считается нормальным писать", ответ простой: от объема кода это абсолютно не зависит. Как только заказчик удовлетворенно отвалился, насосавшись свежей крови - на сегодня план выполнен
набиваю на клаве со скоростью 2000 знаков в минуту - такая фигня получается! а потом другим человечкам которым свалилось сопровождать такие сорцы приходится изобретать новые ругательства кстати раньше в СССР оплата работы программиста шла по числу строк - я еще застал, ctrl-c/ctrl-v помню, даже сам потом не разберешь нихрена
Припоминаю в одной книге (вроде про ООП) указывался пример: код телефонной станции, объемом в 8000000 строк на Си. Это ж сколько пришлось человеко-лет потратить, если бы не Copy-Paste. Наверняка ведь в нем были и такие участки кода: <font face="fixedsys] if(strcmp(szCommand,"ACON01") == 0) goto CON01; if(strcmp(szCommand,"ACON02") == 0) goto CON02; if(strcmp(szCommand,"ACON03") == 0) goto CON03; ... if(strcmp(szCommand,"ACON64") == 0) goto CON64; </font><!--face-->
alpet I am working for a telecom company and seen the sources of the PBX os and applications(70 mb - pure telephony + ~90 ip) - there's no such code [sorry, no russian keyboard]
ssx Надеюсь что нет и аналогичного, я привел лишь пример действительного непотребства (нигде реально не применяющегося). Но все-же если не секрет, для чего так много кода? Про ось понятно - виндовые сорцы тоже немаленько весят, но коммутатор то чем заслужил такую тяжесть?
<font color="gray][ alpet</font><!--color--><font color="gray]: т.е. порядка 1500 строк/8 часовый день ]</font><!--color--> Допустим, что японские кодеры особенные - они могут долбить все 8 часов к ряду с одинаковой эффективностью. Не курят на работе, не ходят в тубзик, не общаются друг с другом, не лазают по нету на халяву, практически не читают доки, не звонят жёнам/подругам и т.д. и т.п. Посмотрим что у нас получится: 60 * 60 * 8 / 1500 = 19,2 секунды на строку. Япона мама! Почему я не японец?! ))
MCL Касательно клавиатуры - не видел еще таких моделей, чтобы позволяли так быстро печатать - буфер ввода будет переполнятся. Максимальное что смог я достичь - 1500 знаков/минуту, и то просто барабаня по клавишам. Купил тут кстати безпроводной набор - клаву и мыша, радуюсь, если что теперь можно в кого-нибудь мышь запустить). Надеюсь что в скором времени появятся клавиатуры с обратной связью(вибрацией вобщем), для игр. Про японцев еще упоминалось что есть у них менталитет, позволяющий достичь таких параметров производительности. Хотя все таки интересно, они действительно все упомянутые строчки набивают с клавы, или же используют Copy+Paste и различные кодогенераторы. Так-же упоминалось что характерно повторное использование кода (опять же через Copy+Paste наверное). При всем при этом самый низкий уровень ошибок - порядка 0.26 ошибочных строчек на 1000 (не слабо, если они пишут на Це).
Four-F На олимпиадах ACM при не сложных задачах набирают строчку за 10-12 секунд, если не быстрее. Правда лишь в течение 5 часов.
Интересно, а производительность отладки у них тоже построчная? Или они настолько круты что никогда не допускают ошибок и все "500000 строк кода в месяц" такие суперпупер что не требуют дебага-пересмотра-переписывания. Пытаюсь свыкнуться с этой мыслью, закрываю глаза и вижу... крезанутых японцев остервенело долбящих по клаве что-бы не выбиваться из графика производительности... Неее, что-то тут явно не так.
veach1 Это не программисты насколько я понял, а просто кодеры. В их задачу ставится не разработка алгоритмов и приложений, а написание простого, рутинного кода. В этом смысле их действительно можно сравнить с живыми роботами.
halyavin Несложных задачек там пара штук всего и решения у них в 20-30 строк. И такая производительность только у команд ЛГУ и ЛИТМО. Остальные команды эти задачки сдают обычно через 20-40 минут. Обычно даже самые сложные задачки не более чем на 100-150 строк кода, но вот 5 часов на их решение может оказаться маловато.
заранее прошу прощения у беспощадного даоса "Япония, со своей традиционной методикой разработки ПО, стоит как бы в стороне, однако можно отметить высокий уровень организации бизнес-процессов, что отличает ее от Индии. Поэтому Япония имеет одно важное преимущество перед другими мировыми центрами разработки: при очень высоком уровне производства кода (почти 500 тысяч строк в месяц на человека, тогда как в Европе 436 тысяч, в Индии - всего 209 тысяч) поддерживается минимальный уровень ошибок - меньше 0,02 (!) ошибочных строчек на тысячу (в США - 0,4, в Индии - 0,26). Добиваются они этого активным повторным использованием уже отлаженного кода и наличием детальных описаний проектов." берём 25 дней в месяц по 8 часов получаем 200 часов делим 500 тысяч на 200 получаем 2,5 тысячи строк кода в час в часе 3600 секунд. мама дорогая , каждые полторы секунды из под пальца японского программиста выходит строка кода. так и представляю: как сидит японцкий программист и раз в полторы секунды давит на enter. не понятно только , как же он при этом умудряется ещё и ошибки делать, в среднем 2.5 ошибки в месяц ...
у них наверное клавиатура с иероглифами, а как известно один такой значок может быть целым предложением.