messy programming по-индийски
-
- Новичок
- Posts: 54
- Joined: 03 Nov 2001 10:01
- Location: California
Все знакомо. Не знаю, как с этим бороться, переписывать, вычищать - кто этим заниматься будет? У нас начальник как-то устраивал code review, типа код должен быть читабельным и хорошо организованным. Программист может с проекта и уйти, а кто после него разбираться должен, если что-то переделать надо. Другой случай, когда код в общем-то читабельный, но совершенно не оптимизирован. Мне как-то пришлось переписывать ASP страницу, которая из-за сложной обработки массивов данных на сервере не загружалась, если данных много - script time out. А начальник говорит, да, мы это все вначале на бегу писали, чтоб только заказчику показать, да и в простых случаях ведь все работало. Молодец, теперь работает еще лучше.
Sabina, если вы отвечаете за конкретную часть работы и в этой фирме временно, "расчистите свой участок" и не берите в голову остальное. Особенно если все работает. При поиске следующей работы обращайте внимание на эти моменты. Если же в фирме возможно продержаться долго, неплохо поступить как Mic советует.
Sabina, если вы отвечаете за конкретную часть работы и в этой фирме временно, "расчистите свой участок" и не берите в голову остальное. Особенно если все работает. При поиске следующей работы обращайте внимание на эти моменты. Если же в фирме возможно продержаться долго, неплохо поступить как Mic советует.
-
- Уже с Приветом
- Posts: 12055
- Joined: 13 Oct 2002 21:46
Понимаете, чиста с точки зрения прикладной псиxологии, понятия "xороший"/"плоxой" (да и "профессионал"/"любитель") - относительны. Т.е.: "кто-то - xороший программист" - обязательно по сравнению с кем-то. Скажем xороший средний профессионал - xороший по сравнению с неким придурком, но плоxой по сравнению с крутым гуру. При этом тот придурок из фразы выше - xороший программист по сравнению с человеком никогда компьютера не видевшим, и т.д.
Я к чему? Когда кото-то пишет "индус - плоxой программист!" на заборе, с кем вы думаете он индуса сравнивает? Правильно, с самим собой. Т.е. пишите уж открытым текстом: "я лучше программирую, чем сосед индус!" - смысл будет тот же самый у фразы. Никто так прямо в лоб не пишет, естественно (сам себя xвалит ведь только тот кого никто больше не xвалит), вот и переворачивают эту фразу так чтобы это звучало, но не открытым текстом.
Mерило профессионального успеxа одно, зарплата. Сравнивайте не кто лучше пишет код (вы или индус в соседнем кубике), а кто больше получает. А то есть такой американский автор (забыл кто, к сожалению, давно читал) - суть рассказа: два одноклассника уxаживали за одной и той же девушкой. Она вышла замуж за одного из ниx, а другой уеxал в город учиться. Рассказ от лица того, который уеxал учиться.
Встретились они через 50 лет все втроем, случайно, в родном городе. У всеx уже внуки, все на пенсии, жизнь в целом удалась. Вспоминали молодость, вспоминали как вместе играли в "подкову" (игра такая, кидать подкову в мишень). И тот который пишет, говорит: "а тот второй (за которого она вышла замуж) играть-то совсем не умеет! И подкову держит пальцами неправильно, и кинуть ее толком не может.... Но ему всегда везло в жизни, только поэтому он в подкову у меня все время и выигрывал!" Конец рассказа.
Я к чему? Когда кото-то пишет "индус - плоxой программист!" на заборе, с кем вы думаете он индуса сравнивает? Правильно, с самим собой. Т.е. пишите уж открытым текстом: "я лучше программирую, чем сосед индус!" - смысл будет тот же самый у фразы. Никто так прямо в лоб не пишет, естественно (сам себя xвалит ведь только тот кого никто больше не xвалит), вот и переворачивают эту фразу так чтобы это звучало, но не открытым текстом.
Mерило профессионального успеxа одно, зарплата. Сравнивайте не кто лучше пишет код (вы или индус в соседнем кубике), а кто больше получает. А то есть такой американский автор (забыл кто, к сожалению, давно читал) - суть рассказа: два одноклассника уxаживали за одной и той же девушкой. Она вышла замуж за одного из ниx, а другой уеxал в город учиться. Рассказ от лица того, который уеxал учиться.
Встретились они через 50 лет все втроем, случайно, в родном городе. У всеx уже внуки, все на пенсии, жизнь в целом удалась. Вспоминали молодость, вспоминали как вместе играли в "подкову" (игра такая, кидать подкову в мишень). И тот который пишет, говорит: "а тот второй (за которого она вышла замуж) играть-то совсем не умеет! И подкову держит пальцами неправильно, и кинуть ее толком не может.... Но ему всегда везло в жизни, только поэтому он в подкову у меня все время и выигрывал!" Конец рассказа.
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
[quote="MicВо-вторых, разработка проекта подразумевает сбор user requirements, составление specs, разработку flow- и UML-диаграмм. Так, что к началу имплементации практически все вопросы с заказчиком утрясаются. [/quote]
Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")
Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
8K wrote:Mic wrote:...
Вас бы посадить WinFS писать, сразу бы все про отмазки поняли. И про заказчика.
Все как в стройбате: бери больше, кидай дальше.
8К, на сколько я понял по рассказам друзей, работающих в вашей компании, в MS каждый team друг на друга не похож, не нравится текущий и не можете поменять ситуацию - ищите другой.
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
Re: messy programming по-индийски
Sabina wrote:Вторую неделю убиваю массу времени разбираясь в коде, написанном индийскими коллегами: все свалено в кучу, файлы доходят до 4K строк, все лэйауты GridBag, данные гоняют туда-сюда надо/не надо, плодят кучу ненужных рекордс в базе во имя своего удобства....
Кстати, у нас есть класс в котором 27,000 (двадцать семь тысяч) строк кода
Это очень хорошо, что вы понимаете на сколько плохо даже 4K
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
sergey1234 wrote:Mерило профессионального успеxа одно, зарплата. Сравнивайте не кто лучше пишет код (вы или индус в соседнем кубике), а кто больше получает.
Сергей, при всем уважении к вам , вы, простите, пишете полную херню. Не уподобляйтесь UFOPassanger'у, пожалуйста. Вы не можите сравнивать криворукого индуса с Green Card с бOльшей зарплатой, чем, например, Бродягу с меньшей потому что он на H1B. О разнице в профессионализме обоих спорить, надеюсь, не будем?
Вы, ребята, приехавшие сюда уже с разрешением на работу (или получившие GC до 2000) даже представление не имеете о всех прелестях жизни с этим гребаным статусом в сегодняшние дни.
И еще, когда я говорю о "профессионализме", я в первую очередь имею в виду профессиональную этику, о деньгах речи вообще нет, поскольку это зависит от множества факторов, например от умения лизать одно место менеджерам. Вы же не будете утверждать, что это умение коррелирует с искусством программирования? А на зарплате может отражаться не хило.
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
sergey1234 wrote:Понимаете, чиста с точки зрения прикладной псиxологии, понятия "xороший"/"плоxой" (да и "профессионал"/"любитель") - относительны. Т.е.: "кто-то - xороший программист" - обязательно по сравнению с кем-то. Скажем xороший средний профессионал - xороший по сравнению с неким придурком, но плоxой по сравнению с крутым гуру.
Согласен на 100%! По сравниению с лидом, с котроым я работал в .com start-up'e я - хреновый программист. Но ежедневно пытаюсь сократить дистанцию
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
IA72 wrote:Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")
В чем проблема? Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком, повторяете итерацию до обоюдного согласия. Потом дизайн, имплементация.
Вы, ребята, о технологическом процессе представление имеете? Экономьте время - .doc файл переписать проще и дешевле чем .cpp
Вы ж поймите, в конечном итоге это и быстрее и дешевле получается.
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
sergey1234 wrote: Т.е.: "кто-то - xороший программист" - обязательно по сравнению с кем-то. Скажем xороший средний профессионал - xороший по сравнению с неким придурком, но плоxой по сравнению с крутым гуру.
Все правильно.. Но когда те, кто программирует хуже, оказываются все индусами, волей-неволей задумаешься
sergey1234 wrote:Mерило профессионального успеxа одно, зарплата.
У нас про это говорить рано. Зарплату еще не платят никому (верне уже, потому что когда-то платили). Однако очевидно, что работают люди разного уровня, в том числе и хорошие профессионалы. Те, кто уже много сложил в этот стартап, чтобы бросить. К тому же бета только вышла, заказчики появляются, шансы неплохие.
Хотя я полностью согласна, что "дадут всем по заслугам". Очень интересно посмотреть какой будет тогда расклад.
Сабина
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
Mic wrote:IA72 wrote:Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")
В чем проблема? Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком, повторяете итерацию до обоюдного согласия. Потом дизайн, имплементация.
Вы, ребята, о технологическом процессе представление имеете? Экономьте время - .doc файл переписать проще и дешевле чем .cpp
Вы ж поймите, в конечном итоге это и быстрее и дешевле получается.
Обсуждать какие детали? Несуществующего приложения?
Для этого заказчик должен обладать изрядной квалификацией и воображением. Умением читать спецификации и смотреть на UI уродца в Visio. Проще и _быстрее_ написать demoware и дать на рассмотрение.
-
- Уже с Приветом
- Posts: 11475
- Joined: 20 Nov 2000 10:01
- Location: Escondido, CA
Re: messy programming по-индийски
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-компилятор работает...
Так что дело не в национальности. Дело в образовании.
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Re: messy programming по-индийски
Mic wrote:Кстати, у нас есть класс в котором 27,000 (двадцать семь тысяч) строк кода
Это очень хорошо, что вы понимаете на сколько плохо даже 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;....
А в общем и целом, индусы сами по себе неплохие ребята. Только вот с преподами им видать не повезло
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
IA72 wrote:Mic wrote:...Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком
Обсуждать какие детали? Несуществующего приложения?
Для этого заказчик должен обладать изрядной квалификацией и воображением. Умением читать спецификации и смотреть на UI уродца в Visio.
Мне сложно судить, я всегда работал с квалифицированными людьми и клинические случаи не встречались.
IA72 wrote:Проще и _быстрее_ написать demoware и дать на рассмотрение.
Это заблуждение. Со временем вы измените свою точку зрения.
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
Re: messy programming по-индийски
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.
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Re: messy programming по-индийски
Hamster wrote:Мне по работе приходится иметь дело с такой чудной вещью, как MPEG-4 reference software. .....
4k строк в файле это, по вашему, много? В reference software десяток C-файлов по 5k+ строк, в одном 12k.
....
Все переменные, определяющие состояние енкодера / декодера, глобальные. .....
Если попробовать скомпилировать этот код C++ компилятором, начинают сыпаться сотни ошибок про "multiply defined symbols". А C-компилятор работает...
.
Мое мнение такое:
Если речь идет о С, о сложных форматах и особенно об encoding/decoding, и тем более когда С++ против С в этом деле не тянет, файлы такой длины -дело вполне нормальное.
Но для Java это все равно что домашние тапочки надеть с вечерним платьем. Убивают всю прелесть последнего...
Hamster wrote:Так что дело не в национальности. Дело в образовании.
А интересно с чего у них там такое море программистов-то развелось? Если не образования хорошего нет, не рынка работ? Может просто выехать проще чем другим?
Сабина
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
Mic wrote:IA72 wrote:Mic wrote:...Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком
Обсуждать какие детали? Несуществующего приложения?
Для этого заказчик должен обладать изрядной квалификацией и воображением. Умением читать спецификации и смотреть на UI уродца в Visio.
Мне сложно судить, я всегда работал с квалифицированными людьми и клинические случаи не встречались.IA72 wrote:Проще и _быстрее_ написать demoware и дать на рассмотрение.
Это заблуждение. Со временем вы измените свою точку зрения.
Ха-ха-ха. Я давно так не смеялся. Скажите, а сколько лет вы работаете программистом? Это не наезд.
-
- Уже с Приветом
- Posts: 6906
- Joined: 20 Apr 1999 09:01
- Location: Seattle
IA72 wrote:Скажите, а сколько лет вы работаете программистом? Это не наезд.
10 лет, это не обида
Но честно-говоря, настоящий реальный и нужный опыт пошел только здесь - в Штатах (> 3 лет.) Работал в компании, которая брала контракты (Sierra, проекты Card Studio, Home Designer), в .com start-up'e (получил офигенный опыт по разработке и дизайну), сейчас работаю в небольшой софтверной компании.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Mic wrote:IA72 wrote:Ааа. Мама, хочу в Советский Союз (уходит, плача и капая слезами на распечатку свежеполученного письма от заказчика "ну, э, сделайте, в общем, что бы было красиво, круто, и вообще")
В чем проблема? Пишите spec, рисуете UI, например by MS Visio, обсуждаете детали с заказчиком, повторяете итерацию до обоюдного согласия. Потом дизайн, имплементация.
Вы, ребята, о технологическом процессе представление имеете? Экономьте время - .doc файл переписать проще и дешевле чем .cpp
Вы ж поймите, в конечном итоге это и быстрее и дешевле получается.
Где Вы таких заказчиков находите? Типичный заказчик сам не знает что ему надо. Даже после того как ему все обяснишь, и зафиксируешь, последуют еще 82 дополнения, пожелания и изменения, причем по ходу дела, часто влияющие на дизайн.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 9275
- Joined: 14 Dec 2001 10:01
- Location: Российская Федерация
Re: messy programming по-индийски
Sabina wrote:Мое мнение такое:
Если речь идет о С, о сложных форматах и особенно об encoding/decoding, и тем более когда С++ против С в этом деле не тянет, файлы такой длины -дело вполне нормальное.
Но для Java это все равно что домашние тапочки надеть с вечерним платьем. Убивают всю прелесть последнего...
Плюсы вполне подходят для таких задач. Если конечно писать нормально, и пользоваться профайлером. У нас был кодек H-263 на C++. Основное время тратилось, как и должно, на небольшие функции (преобразование Фурье, sad, квантизация), которые потом просто переписали на MMX ассемблере. К тому же и на чистом С можно писать вполне понятно и просто, без файлов такой длины.
-
- Уже с Приветом
- Posts: 12055
- Joined: 13 Oct 2002 21:46
Re: messy programming по-индийски
Sabina wrote:Hamster wrote:Так что дело не в национальности. Дело в образовании.
А интересно с чего у них там такое море программистов-то развелось? Если не образования хорошего нет, не рынка работ? Может просто выехать проще чем другим?
Сабина
Работал я с индусами. Прямо 5-летние институтские программы у ниx: "программист", причем учат именно новейшему что пользуется спросом на рынке, и практика - в реальныx компанияx делающиx аутсорсинг. На выxоде (с дипломом) вполне боевой профессионал и с парой лет экспириенса. Скороспелыx же индусскиx курсов (взять крестьянина, месяц его поучить писать, и продать как программиста) у ниx вообще нету.
-
- Уже с Приветом
- Posts: 12055
- Joined: 13 Oct 2002 21:46
Mic wrote:sergey1234 wrote:Mерило профессионального успеxа одно, зарплата. Сравнивайте не кто лучше пишет код (вы или индус в соседнем кубике), а кто больше получает.
Сергей, при всем уважении к вам , вы, простите, пишете полную херню. Не уподобляйтесь UFOPassanger'у, пожалуйста. Вы не можите сравнивать криворукого индуса с Green Card с бOльшей зарплатой, чем, например, Бродягу с меньшей потому что он на H1B. О разнице в профессионализме обоих спорить, надеюсь, не будем?
Вы, ребята, приехавшие сюда уже с разрешением на работу (или получившие GC до 2000) даже представление не имеете о всех прелестях жизни с этим гребаным статусом в сегодняшние дни.
И еще, когда я говорю о "профессионализме", я в первую очередь имею в виду профессиональную этику, о деньгах речи вообще нет, поскольку это зависит от множества факторов, например от умения лизать одно место менеджерам. Вы же не будете утверждать, что это умение коррелирует с искусством программирования? А на зарплате может отражаться не хило.
Вы просто не представляете себе сколько есть индусов с этой визой. Сравнивайте того же Бродягу с ними - в чем проблемма-то?
И не надо мне про "традиционное русское неумение лизать очко начальству", прогибаются только так - миллион раз видел, и только считанное число раз за долгие годы видел чтобы русский пошел против начальника.
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
Mic wrote:IA72 wrote:Скажите, а сколько лет вы работаете программистом? Это не наезд.
10 лет, это не обида
Но честно-говоря, настоящий реальный и нужный опыт пошел только здесь - в Штатах (> 3 лет.) Работал в компании, которая брала контракты (Sierra, проекты Card Studio, Home Designer), в .com start-up'e (получил офигенный опыт по разработке и дизайну), сейчас работаю в небольшой софтверной компании.
Тогда странно, ибо у меня чуток меньше опыта (порядка 9 лет), но такие заказчики мне не попадались. Что касается работы с умными людьми, то мне тут везло, практически всегда как раз такие и были (и сейчас есть вокруг), но к _заказчикам_ это не имеет никакого отношения.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
-
- Уже с Приветом
- Posts: 15311
- Joined: 30 Apr 2003 16:43
Re: messy programming по-индийски
Sabina wrote:........Что уж говорить про старого, который пришел в Джаву после VB и SmallTalk.
....
Сабина
Sabina! да как Вы можете использовать соединительную частицу речи "и" для таких несопостовимых вещей как VB (у меня клавиатура не поворачиваеться сказать "и") SmallTalk.
Sabina, пожалуйста, не кощунствуйте.