messy programming по-индийски

lenkin
Новичок
Posts: 54
Joined: 03 Nov 2001 10:01
Location: California

Post by lenkin »

Все знакомо. Не знаю, как с этим бороться, переписывать, вычищать - кто этим заниматься будет? У нас начальник как-то устраивал code review, типа код должен быть читабельным и хорошо организованным. Программист может с проекта и уйти, а кто после него разбираться должен, если что-то переделать надо. Другой случай, когда код в общем-то читабельный, но совершенно не оптимизирован. Мне как-то пришлось переписывать ASP страницу, которая из-за сложной обработки массивов данных на сервере не загружалась, если данных много - script time out. А начальник говорит, да, мы это все вначале на бегу писали, чтоб только заказчику показать, да и в простых случаях ведь все работало. Молодец, теперь работает еще лучше.
Sabina, если вы отвечаете за конкретную часть работы и в этой фирме временно, "расчистите свой участок" и не берите в голову остальное. Особенно если все работает. ;) При поиске следующей работы обращайте внимание на эти моменты. Если же в фирме возможно продержаться долго, неплохо поступить как Mic советует.
User avatar
sergey1234
Уже с Приветом
Posts: 12055
Joined: 13 Oct 2002 21:46

Post by sergey1234 »

Понимаете, чиста с точки зрения прикладной псиxологии, понятия "xороший"/"плоxой" (да и "профессионал"/"любитель") - относительны. Т.е.: "кто-то - xороший программист" - обязательно по сравнению с кем-то. Скажем xороший средний профессионал - xороший по сравнению с неким придурком, но плоxой по сравнению с крутым гуру. При этом тот придурок из фразы выше - xороший программист по сравнению с человеком никогда компьютера не видевшим, и т.д.

Я к чему? Когда кото-то пишет "индус - плоxой программист!" на заборе, с кем вы думаете он индуса сравнивает? Правильно, с самим собой. Т.е. пишите уж открытым текстом: "я лучше программирую, чем сосед индус!" - смысл будет тот же самый у фразы. Никто так прямо в лоб не пишет, естественно (сам себя xвалит ведь только тот кого никто больше не xвалит), вот и переворачивают эту фразу так чтобы это звучало, но не открытым текстом.

Mерило профессионального успеxа одно, зарплата. Сравнивайте не кто лучше пишет код (вы или индус в соседнем кубике), а кто больше получает. А то есть такой американский автор (забыл кто, к сожалению, давно читал) - суть рассказа: два одноклассника уxаживали за одной и той же девушкой. Она вышла замуж за одного из ниx, а другой уеxал в город учиться. Рассказ от лица того, который уеxал учиться.

Встретились они через 50 лет все втроем, случайно, в родном городе. У всеx уже внуки, все на пенсии, жизнь в целом удалась. Вспоминали молодость, вспоминали как вместе играли в "подкову" (игра такая, кидать подкову в мишень). И тот который пишет, говорит: "а тот второй (за которого она вышла замуж) играть-то совсем не умеет! И подкову держит пальцами неправильно, и кинуть ее толком не может.... Но ему всегда везло в жизни, только поэтому он в подкову у меня все время и выигрывал!" Конец рассказа.
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

[quote="MicВо-вторых, разработка проекта подразумевает сбор user requirements, составление specs, разработку flow- и UML-диаграмм. Так, что к началу имплементации практически все вопросы с заказчиком утрясаются. [/quote]

Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Post by Mic »

8K wrote:
Mic wrote:...

Вас бы посадить WinFS писать, сразу бы все про отмазки поняли. И про заказчика.
Все как в стройбате: бери больше, кидай дальше.

8К, на сколько я понял по рассказам друзей, работающих в вашей компании, в MS каждый team друг на друга не похож, не нравится текущий и не можете поменять ситуацию - ищите другой.
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Re: messy programming по-индийски

Post by Mic »

Sabina wrote:Вторую неделю убиваю массу времени разбираясь в коде, написанном индийскими коллегами: все свалено в кучу, файлы доходят до 4K строк, все лэйауты GridBag, данные гоняют туда-сюда надо/не надо, плодят кучу ненужных рекордс в базе во имя своего удобства....

Кстати, у нас есть класс в котором 27,000 (двадцать семь тысяч) строк кода :roll:
Это очень хорошо, что вы понимаете на сколько плохо даже 4K
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Post by Mic »

sergey1234 wrote:Mерило профессионального успеxа одно, зарплата. Сравнивайте не кто лучше пишет код (вы или индус в соседнем кубике), а кто больше получает.

Сергей, при всем уважении к вам , вы, простите, пишете полную херню. Не уподобляйтесь UFOPassanger'у, пожалуйста. Вы не можите сравнивать криворукого индуса с Green Card с бOльшей зарплатой, чем, например, Бродягу с меньшей потому что он на H1B. О разнице в профессионализме обоих спорить, надеюсь, не будем?
Вы, ребята, приехавшие сюда уже с разрешением на работу (или получившие GC до 2000) даже представление не имеете о всех прелестях жизни с этим гребаным статусом в сегодняшние дни.
И еще, когда я говорю о "профессионализме", я в первую очередь имею в виду профессиональную этику, о деньгах речи вообще нет, поскольку это зависит от множества факторов, например от умения лизать одно место менеджерам. Вы же не будете утверждать, что это умение коррелирует с искусством программирования? А на зарплате может отражаться не хило.
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Post by Mic »

sergey1234 wrote:Понимаете, чиста с точки зрения прикладной псиxологии, понятия "xороший"/"плоxой" (да и "профессионал"/"любитель") - относительны. Т.е.: "кто-то - xороший программист" - обязательно по сравнению с кем-то. Скажем xороший средний профессионал - xороший по сравнению с неким придурком, но плоxой по сравнению с крутым гуру.

Согласен на 100%! По сравниению с лидом, с котроым я работал в .com start-up'e я - хреновый программист. Но ежедневно пытаюсь сократить дистанцию ;)
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Post by Mic »

IA72 wrote:Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")

В чем проблема? Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком, повторяете итерацию до обоюдного согласия. Потом дизайн, имплементация.
Вы, ребята, о технологическом процессе представление имеете? Экономьте время - .doc файл переписать проще и дешевле чем .cpp
Вы ж поймите, в конечном итоге это и быстрее и дешевле получается.
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

sergey1234 wrote: Т.е.: "кто-то - xороший программист" - обязательно по сравнению с кем-то. Скажем xороший средний профессионал - xороший по сравнению с неким придурком, но плоxой по сравнению с крутым гуру.


Все правильно.. Но когда те, кто программирует хуже, оказываются все индусами, волей-неволей задумаешься :)

sergey1234 wrote:Mерило профессионального успеxа одно, зарплата.


У нас про это говорить рано. Зарплату еще не платят никому (верне уже, потому что когда-то платили). Однако очевидно, что работают люди разного уровня, в том числе и хорошие профессионалы. Те, кто уже много сложил в этот стартап, чтобы бросить. К тому же бета только вышла, заказчики появляются, шансы неплохие.

Хотя я полностью согласна, что "дадут всем по заслугам". Очень интересно посмотреть какой будет тогда расклад.

Сабина
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

Mic wrote:
IA72 wrote:Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")

В чем проблема? Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком, повторяете итерацию до обоюдного согласия. Потом дизайн, имплементация.
Вы, ребята, о технологическом процессе представление имеете? Экономьте время - .doc файл переписать проще и дешевле чем .cpp
Вы ж поймите, в конечном итоге это и быстрее и дешевле получается.


Обсуждать какие детали? Несуществующего приложения?
Для этого заказчик должен обладать изрядной квалификацией и воображением. Умением читать спецификации и смотреть на UI уродца в Visio. Проще и _быстрее_ написать demoware и дать на рассмотрение.
Hamster
Уже с Приветом
Posts: 11475
Joined: 20 Nov 2000 10:01
Location: Escondido, CA

Re: messy programming по-индийски

Post by Hamster »

Sabina wrote:Вторую неделю убиваю массу времени разбираясь в коде, написанном индийскими коллегами: все свалено в кучу, файлы доходят до 4K строк, все лэйауты GridBag, данные гоняют туда-сюда надо/не надо, плодят кучу ненужных рекордс в базе во имя своего удобства.
Назвать это объектно-ориентированным просто язык не поворачивается.

Скажите, что это только у нас такой бардак :( , а вообще индусские программисты они белые и пушистые ....



Мне по работе приходится иметь дело с такой чудной вещью, как MPEG-4 reference software. Это продукт, который определяет стандарт MPEG-4, и имеет приоритет просто над всем ( если software делает одно, а в официальном ISO-шном документе написано другое, верить надо софту ). Написан большей частью профессорами - европейцами, японцами, китайцами. Индийцев среди разработчиков не было. И скажу я вам, профессора писать код не любят или не умеют. :)
4k строк в файле это, по вашему, много? В reference software десяток C-файлов по 5k+ строк, в одном 12k. Такой солидный файл в 400 килобайт весом, с имплементациями 37 функций. Про декларации функций авторы никогда не слышали - пользуются тем, что в C это делать необязательно. Стандартные типы языка им не нравятся. Вместо short и int используются Short и Int соответственно, жестко определенные через typedef. Надо думать, для платформной независимости. В то же время авторы очень любят неявно кастовать float к int'у ( хотя стандарт языка не определяет, в какую сторону будет делаться округление ).

Но это все цветочки. Сейчас на горизонте вырисовывается новый стандарт - H.264. Я видел reference software и для него ( тоже профессора, но другие ). Такая деталь. Все переменные, определяющие состояние енкодера / декодера, глобальные. И определены в хедере global.h, который включается в каждый файл в проекте. Я скажу честно, я не знал, что так можно. Если попробовать скомпилировать этот код C++ компилятором, начинают сыпаться сотни ошибок про "multiply defined symbols". А C-компилятор работает...

Так что дело не в национальности. Дело в образовании.
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Re: messy programming по-индийски

Post by Sabina »

Mic wrote:Кстати, у нас есть класс в котором 27,000 (двадцать семь тысяч) строк кода :roll:
Это очень хорошо, что вы понимаете на сколько плохо даже 4K


Раз уж начались страшилки, расскажу еще одну. :) "Мои друзья"-индусы так написали UI, что при апдейте одного параметра объекта, пишутся рекорды в кучу относящиеся к этому объекту таблиц.

Когдя я написала и поставила триггеры для audit, на меня такое из базы вывалилось, что волей-неволей пришлось в их коде разбираться. Вы говорите "делай нормально свое, а в ихнее не лезь". А вот не получается... В итоге переделала я свои триггеры и functions наворочала трехэтажных, чтобы в мои таблицы писали только meaningfull records. На 250 ихних records - 40 по делу.

Они это называют temporary solution. Типа web service, клиент этого не увидит. А что если появится enterprise customer, который купит себе всю систему? За одну ночь код перепишут?

Рассказать бы это преподу по Perl классу, который мне снизил 5 баллов из 100 за безупречно работающую программу.

Причина объяснялась так:

Согласно его coding standards, все переменные должны быть названы со смыслом, а я посмела обозвать переменную в цикле просто i :

//Outer loop
for(int $i=0;....

А надо было:

for(int $outerLoop=0;....

А в общем и целом, индусы сами по себе неплохие ребята. Только вот с преподами им видать не повезло :lol:
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Post by Mic »

IA72 wrote:
Mic wrote:...Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком

Обсуждать какие детали? Несуществующего приложения?
Для этого заказчик должен обладать изрядной квалификацией и воображением. Умением читать спецификации и смотреть на UI уродца в Visio.

Мне сложно судить, я всегда работал с квалифицированными людьми и клинические случаи не встречались.

IA72 wrote:Проще и _быстрее_ написать demoware и дать на рассмотрение.

Это заблуждение. Со временем вы измените свою точку зрения.
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Re: messy programming по-индийски

Post by Mic »

Sabina wrote:Рассказать бы это преподу по Perl классу, который мне снизил 5 баллов из 100 за безупречно работающую программу.

Причина объяснялась так:

Согласно его coding standards, все переменные должны быть названы со смыслом, а я посмела обозвать переменную в цикле просто i :

Препод - теоретик. Если придерживаться простого правила, что функция не должна быть длинее 2-3 экранов, а в идеале < 1 то на практике это делать нет смысла, при правильном дизайне все понятно и без этих извращений. Тем более в практических книжках (например Голуба) рекомендуют использовать в циклах именно i, j и k как счетчики.
Last edited by Mic on 25 Oct 2003 07:40, edited 1 time in total.
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Re: messy programming по-индийски

Post by Sabina »

Hamster wrote:Мне по работе приходится иметь дело с такой чудной вещью, как MPEG-4 reference software. .....
4k строк в файле это, по вашему, много? В reference software десяток C-файлов по 5k+ строк, в одном 12k.
....
Все переменные, определяющие состояние енкодера / декодера, глобальные. .....
Если попробовать скомпилировать этот код C++ компилятором, начинают сыпаться сотни ошибок про "multiply defined symbols". А C-компилятор работает...
.


Мое мнение такое:
Если речь идет о С, о сложных форматах и особенно об encoding/decoding, и тем более когда С++ против С в этом деле не тянет, файлы такой длины -дело вполне нормальное.
Но для Java это все равно что домашние тапочки надеть с вечерним платьем. Убивают всю прелесть последнего...

Hamster wrote:Так что дело не в национальности. Дело в образовании.


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

Сабина
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

Mic wrote:
IA72 wrote:
Mic wrote:...Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком

Обсуждать какие детали? Несуществующего приложения?
Для этого заказчик должен обладать изрядной квалификацией и воображением. Умением читать спецификации и смотреть на UI уродца в Visio.

Мне сложно судить, я всегда работал с квалифицированными людьми и клинические случаи не встречались.

IA72 wrote:Проще и _быстрее_ написать demoware и дать на рассмотрение.

Это заблуждение. Со временем вы измените свою точку зрения.


Ха-ха-ха. Я давно так не смеялся. Скажите, а сколько лет вы работаете программистом? Это не наезд.
User avatar
Mic
Уже с Приветом
Posts: 6906
Joined: 20 Apr 1999 09:01
Location: Seattle

Post by Mic »

IA72 wrote:Скажите, а сколько лет вы работаете программистом? Это не наезд.

10 лет, это не обида ;)
Но честно-говоря, настоящий реальный и нужный опыт пошел только здесь - в Штатах (> 3 лет.) Работал в компании, которая брала контракты (Sierra, проекты Card Studio, Home Designer), в .com start-up'e (получил офигенный опыт по разработке и дизайну), сейчас работаю в небольшой софтверной компании.
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

Mic wrote:
IA72 wrote:Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")

В чем проблема? Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком, повторяете итерацию до обоюдного согласия. Потом дизайн, имплементация.
Вы, ребята, о технологическом процессе представление имеете? Экономьте время - .doc файл переписать проще и дешевле чем .cpp
Вы ж поймите, в конечном итоге это и быстрее и дешевле получается.

Где Вы таких заказчиков находите? Типичный заказчик сам не знает что ему надо. Даже после того как ему все обяснишь, и зафиксируешь, последуют еще 82 дополнения, пожелания и изменения, причем по ходу дела, часто влияющие на дизайн.
Верить нельзя никому - даже себе. Мне - можно!
User avatar
adb
Уже с Приветом
Posts: 9470
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Re: messy programming по-индийски

Post by adb »

Sabina wrote:Мое мнение такое:
Если речь идет о С, о сложных форматах и особенно об encoding/decoding, и тем более когда С++ против С в этом деле не тянет, файлы такой длины -дело вполне нормальное.
Но для Java это все равно что домашние тапочки надеть с вечерним платьем. Убивают всю прелесть последнего...


Плюсы вполне подходят для таких задач. Если конечно писать нормально, и пользоваться профайлером. У нас был кодек H-263 на C++. Основное время тратилось, как и должно, на небольшие функции (преобразование Фурье, sad, квантизация), которые потом просто переписали на MMX ассемблере. К тому же и на чистом С можно писать вполне понятно и просто, без файлов такой длины.
User avatar
sergey1234
Уже с Приветом
Posts: 12055
Joined: 13 Oct 2002 21:46

Re: messy programming по-индийски

Post by sergey1234 »

Sabina wrote:
Hamster wrote:Так что дело не в национальности. Дело в образовании.


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

Сабина


Работал я с индусами. Прямо 5-летние институтские программы у ниx: "программист", причем учат именно новейшему что пользуется спросом на рынке, и практика - в реальныx компанияx делающиx аутсорсинг. На выxоде (с дипломом) вполне боевой профессионал и с парой лет экспириенса. Скороспелыx же индусскиx курсов (взять крестьянина, месяц его поучить писать, и продать как программиста) у ниx вообще нету.
User avatar
sergey1234
Уже с Приветом
Posts: 12055
Joined: 13 Oct 2002 21:46

Post by sergey1234 »

Mic wrote:
sergey1234 wrote:Mерило профессионального успеxа одно, зарплата. Сравнивайте не кто лучше пишет код (вы или индус в соседнем кубике), а кто больше получает.

Сергей, при всем уважении к вам , вы, простите, пишете полную херню. Не уподобляйтесь UFOPassanger'у, пожалуйста. Вы не можите сравнивать криворукого индуса с Green Card с бOльшей зарплатой, чем, например, Бродягу с меньшей потому что он на H1B. О разнице в профессионализме обоих спорить, надеюсь, не будем?
Вы, ребята, приехавшие сюда уже с разрешением на работу (или получившие GC до 2000) даже представление не имеете о всех прелестях жизни с этим гребаным статусом в сегодняшние дни.
И еще, когда я говорю о "профессионализме", я в первую очередь имею в виду профессиональную этику, о деньгах речи вообще нет, поскольку это зависит от множества факторов, например от умения лизать одно место менеджерам. Вы же не будете утверждать, что это умение коррелирует с искусством программирования? А на зарплате может отражаться не хило.


Вы просто не представляете себе сколько есть индусов с этой визой. Сравнивайте того же Бродягу с ними - в чем проблемма-то?

И не надо мне про "традиционное русское неумение лизать очко начальству", прогибаются только так - миллион раз видел, и только считанное число раз за долгие годы видел чтобы русский пошел против начальника.
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

Mic wrote:
IA72 wrote:Скажите, а сколько лет вы работаете программистом? Это не наезд.

10 лет, это не обида ;)
Но честно-говоря, настоящий реальный и нужный опыт пошел только здесь - в Штатах (> 3 лет.) Работал в компании, которая брала контракты (Sierra, проекты Card Studio, Home Designer), в .com start-up'e (получил офигенный опыт по разработке и дизайну), сейчас работаю в небольшой софтверной компании.


Тогда странно, ибо у меня чуток меньше опыта (порядка 9 лет), но такие заказчики мне не попадались. Что касается работы с умными людьми, то мне тут везло, практически всегда как раз такие и были (и сейчас есть вокруг), но к _заказчикам_ это не имеет никакого отношения.
Антоша
Уже с Приветом
Posts: 596
Joined: 11 Jul 2003 14:04

Post by Антоша »

User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

[quote="Антоша"][/quote]

Абсолютно согласен. :mrgreen:
Верить нельзя никому - даже себе. Мне - можно!
zVlad
Уже с Приветом
Posts: 16210
Joined: 30 Apr 2003 16:43

Re: messy programming по-индийски

Post by zVlad »

Sabina wrote:........Что уж говорить про старого, который пришел в Джаву после VB и SmallTalk.

....
Сабина


Sabina! да как Вы можете использовать соединительную частицу речи "и" для таких несопостовимых вещей как VB (у меня клавиатура не поворачиваеться сказать "и") SmallTalk.
Sabina, пожалуйста, не кощунствуйте.

Return to “Вопросы и новости IT”