Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизПостоянная работа для программера в Москве Найти похожие ветки
← →
Rule © (2004-04-05 09:58) [40]Хочу работать, думаю подойду но я живу на украине и предпочитаю работать с БД, хотя работал и с другим, есть стаж и отзывы (и реально работающие проекты, которыми пользуется много людей по всей стране (Украине))
← →
Гаврила (2004-04-05 10:16) [41]Господа, спасибо всем, кто откликнулся
отвечу обязательно всем, завтра-послезавтра
10 уровней - это я к примеру сказал, их может быть и меньше ))
Иногородние подойдут, но проблема жилья при этом останется на ваше разрешение
← →
sniknik © (2004-04-05 10:56) [42][23] > завтра посчитаю самую длинную ветку.
долго считал ;о), в основном вложенность в vcl кончается на 6-7, бывает и больше, максимально мной найденный - TStandardCustomizePopup имеет 11 (может и больше есть на достало считать ;), програмку чтоли написать :о)).
в общем так понимаю задумывается чтото не менее глобальное.
Anatoly Podgoretsky © (05.04.04 09:48) [39]
а пусть спамят, старый яшик, неиспользуемый. неудивлюсь если уже забит под завязку.
← →
Плохиш (2004-04-05 11:02) [43]>Гаврила (05.04.04 10:16) [41]
> Иногородние подойдут, но проблема жилья при этом останется
> на ваше разрешение
Что в Москве уже стало легко вид на жительство получить?
← →
Тимохов © (2004-04-05 11:04) [44]в жизни бы не взял человека, предлагающего создать иерархию в 10 уровней - LMD.
← →
SPeller © (2004-04-05 11:14) [45]TClassA = class;
TClassB = class(TClassA);
TClassC = class(TClassB);
TClassD = class(TClassC);
TClassE = class(TClassD);
TClassF = class(TClassE);
TClassG = class(TClassF);
TClassH = class(TClassG);
TClassI = class(TClassH);
TClassJ = class(TClassI);
TClassK = class(TClassJ);
Вот! Я оказался способен создать даже не на 10, а на 11 уровней иерархию! И никакой сволки, всё аккуратно, везде порядок. Возьмите меня!!!
← →
Игорь Шевченко © (2004-04-05 11:16) [46]Тимохов © (05.04.04 11:04)
Чем обоснуешь свое утверждение ? Мне просто интересно...
← →
Тимохов © (2004-04-05 11:32) [47]
> Игорь Шевченко © (05.04.04 11:16) [46]
Опытом эволюционной разработки финансовой (в народе - бухгалтерской) системы в 1млн строк.
Далее приведу мое понимание взаимоотношения любви к иерархии классов и ламерства. Прошу никого не обижаться и не делать на меня нападок. Мое мнение основано на разработке указанной системы.
Уровень 0 - "Классы, а что это?" (ну это ноль, даже говорится про него не будем).
Уровень 1 - "Блин классы, ну я сейчас сделаю нефиговую иерархию. Круто. Я мастер"
Уровень 2 - "Вот блин не учел я вначале того-то (да я и знать не мог, в ТЗ не было этого). Теперь для одного из потомков нужно сделать специальное поведение. Ну ничиго, у меня же классы - зафигачу фишку в предка"
Уровень 3 - "Вот блин, здолбался тестировать. Чуть что поменяешь - тестируй всех потомков, а вдруг чего, прибьют же за это".
Уровень 4 - "Ну ее нахрен эту иерархию - только разработку тормозит".
Уровень 5 - "Да вообще то иерархия это не плохо - надо только меру знать"
Больше уровней не знаю - т.к. 5 - это пока мой уровень.
У меня сейчас такой подход:
1. Есть учень неглубокая иерархия базовых классов (2 уровня). Эти классы ничего не умеют делать по бизнес-логике, но предоставляют возможность сделать что угодно.
2. Есть куча потоком базовых классов. Часто очень похожих, но все же без общего предка. Это позволяет оперативно вносить изменения. Оперативность выражается в том, что: 1) нужно мало времени на выяснение того, что нужно сделать и не повлияет ли это на другие классы; 2) нужно мало времени на тестирование.
Бывают моменты, когда приходит понимание того, что нужно сделать общего предка - тогда сажусь и делаю. Но такое понимание приходит редко.
Т.к. для меня:
1. Формальная схожесть атрибутов не повод засунуть в предка
2. Формальная схожесть функциональности тоже не повод засунуть в предка
Повод засунуть в предка - схожая бизнес-роль играемая в системе.
← →
Гаврила (2004-04-05 11:49) [48]>>Тимохов © (05.04.04 11:32) [47]
Разумеется, во всем нужно соблюдать меру.
Но, на мой взгляд, если пишешь код, и понимаешь, что пишешь его во второй раз, это уже достаточно приличный повод задуматься.
Сколько раз уже налетали на необходимость вносить одинаковые изменения сразу в нескольких местах...
← →
Тимохов © (2004-04-05 11:55) [49]
> Гаврила (05.04.04 11:49) [48]
От задачи сильно зависит.
Ничего нет зазорного в написании одно и того же - вы же не знаете это одно и тоже исходя из глубокого смысла или случайно, никто (мне, по крайней мере) не может дать гарантию, что совпадение кода случайно и скоро код разойдется.
← →
Юрий Зотов © (2004-04-05 12:13) [50]Ну, не знаю. Мое личное мнение такое: глубина иерархии - не самоцель, какая нужна - такая и будет. Цель - создание удобной (для работы, поддержки и дальнейшего развития) иерархии, в которой четко и ясно обозначена функциональность каждого класса. То есть - для чего он нужен, что он делает нового по сравнению с предками и чего о НЕ делает (и делать НЕ должен, оставляя эту функциональность своим потомкам). И еще, конечно, аккуратно и грамотно написанный и документированный код. Прекрасный пример - сама VCL. Живет и бурно развивается уже около 10 лет - великолепный образец изначально грамотного проектирования.
Вот, собственно, это и есть то, что нужно. А какая там при этом получится глубина иерархии - без разницы, хоть 5, хоть 50. Если приведенные требования соблюдены, работать с ней будет все равно удобно и просто, при ЛЮБОЙ глубине.
Другое дело, что когда мы предъявляем требования к работнику, то действительно имеет смысл говорить о его способности грамотно спроектировать и создать иерархию глубиной не менее N. Потому что для решения таких задач нужно иметь уже некий "системный" уровень мышления, а он формируется опытом и знаниями. Вот о чем, видимо, говорит работодатель - и правильно делает. Ну не нужны ему "чистые" кодеры, а нужны кодеры-проектировщики - вот он их и ищет. И тоже правильно делает - потому что, как показывает опыт, "чистые" кодеры очень часто и очень быстро превращают программу в помойку. Поддерживать и развивать такую программу становится очень трудно - и возникает вопрос о том самом пресловутом "рефакторинге". То есть, фактически, о переписывании больших кусков кода - а это на деле означает, что чья-то работа будет просто выброшена и значит этот кто-то получил свою зарплату ни за что.
> Тимохов © (05.04.04 11:32) [47]
Ошибка в уровне 2: "Вот блин не учел я вначале того-то (да я и знать не мог, в ТЗ не было этого)".
Такому человеку не стоит поручать разработку базовых иерархий, да и вообще движка программы. Он еще не вполне созрел для такой работы - не приобрел тот самый уровень системного мышления. Иначе бы он руководствовался не только ТЗ, а учитывал еще и перспективу - и тогда проблема "не учел вначале" просто не возникла бы.
← →
Тимохов © (2004-04-05 12:17) [51]
> кодеры, а нужны кодеры-проектировщики - вот он их и ищет
такие люди не стоят 1000
> Юрий Зотов © (05.04.04 12:13) [50]
имхо вы про уровень 2 зря так - ключевым здесь является "да я и знать не мог, т.к. в ТЗ не было этого". Дело не в людях, а в эволюционном цикле развития, который предполагает доработку тз в процессе разработки.
← →
Игорь Шевченко © (2004-04-05 12:27) [52]Тимохов © (05.04.04 12:17)
> такие люди не стоят 1000
Стоят. Уровень зарплаты вполне соответствует.
> Дело не в людях, а в эволюционном цикле развития, который
> предполагает доработку тз в процессе разработки
При грамотно спроектированной иерархии обычно такие проблемы решаются довольно легко.
Есть предложение - читать книжки не только по программированию
← →
Юрий Зотов © (2004-04-05 12:28) [53]> Тимохов © (05.04.04 12:17) [51]
Обратите внимание на слова "учитывал еще и перспективу". Грамотный разработчик спроектирует иерархию так, что в ней будут учтены и будущие доработки ТЗ (которые он уже предвидит, исходя из здравого смысла и своего опыта), и возможность расширения без глобальной переписки и глобального тестирования.
"В ТЗ этого не было" - такая отмазка годится для кодеров. Проектировщику же должно быть стыдно даже произносить такую фразу. Либо забудь о ней, либо не берись за проектирование базовых иерархий.
← →
Rule © (2004-04-05 12:39) [54]В блин развели димагогию, а я считаю что все приходит с опытом, а не с количеством иерархий и для некоторых специфичесуких задач создание таких иерархий задач практически не надо ....
а в общем правильно подмечено, что если человек уже приобрел способность масштабно, дальневидно и системно видеть то вряд ли его можно назвать рядовым программистом ... так как вроде это получается с опытом и не однодневным, так что вряд ли вы найдете такого за 1000 (что касается меня то я живу в глубинке, где цены у нас в 5 ато в 10 раз ниже, так что фактически за 100-150 долларов (эквивалент ваших 1000), ни за что бы не согласился работать) ...
спасибо всем за внимание ...
ЗЫ: работодаделю, все равно прийдется выбирать не из того что надо а из того что есть :)
← →
Dmitriy O. © (2004-04-05 12:42) [55]Я хочу возмите мя !
← →
Тимохов © (2004-04-05 12:44) [56]
> Игорь Шевченко © (05.04.04 12:27) [52]
> Юрий Зотов © (05.04.04 12:28) [53]
Общие слова имхо. Все зависит от проекта и его роли. Не всегда видна конечная цель - только промежуточные.
> Игорь Шевченко © (05.04.04 12:27) [52]
Про чтение книжек. Читаем, и не только по программированию.
Более всего люблю - хр. В его духе - бастренько написал, потом переделал. Как оказалось - это и в моем духе.
Про 1000 б для кодера-проектировщика. Не найти такого. Знаю.
← →
Иксик © (2004-04-05 12:45) [57]
> Rule © (05.04.04 12:39) [54]
Димагогия, это намек на Dmitriy O.? :)
← →
malkolinge © (2004-04-05 12:52) [58]
> Игорь Шевченко © (04.04.04 20:33) [22]
> По поводу кадровых агентств и job.ru - разумеется, оттуда
> больше народа откликается, был опыт. Но тот код, что оттуда
> чаще всего присылают (без образцов кода иметь дело с кандидатом
> вообще нет смысла), не годится ни в серьезное дело, ни в
> красную армию. Такая вот се ля ви получается. Разумеется,
> расположив объявление на сайте программистов на Delphi есть
> большая вероятность, что найдется нужная кандидатура.
>
> Я понимаю автора ветки, ему хочется найти человека, которого
> не надо будет УЧИТЬ ПРОГРАММИРОВАНИЮ, а сразу можно объяснять
> предметную область и предметные задачи, подразумевая при
> этом, что программирование он знает. Поэтому студенты здесь
> вряд ли подойдут (IMHO), хотя и студенты разные бывают.
Я студент. :( вы же Игорь обещали меня к себе взять (шутка)
← →
Игорь Шевченко © (2004-04-05 12:54) [59]Тимохов © (05.04.04 12:44)
> Более всего люблю - хр. В его духе - бастренько написал,
> потом переделал. Как оказалось - это и в моем духе
В его духе: написал, выбросил, написал, выбросил.
Кент Бек, разумеется, человек очень умный, но серебряной пули не изобрел. А про его последователей и говорить не хочется. Можно только с религиозными фанатиками сравнивать, которые мантры поют и кроме набора слов: "Парное программирование, коллективное владение кодом, unit-тесты, рефакторинг, XP - это круто" ничего не знают.
← →
blackman © (2004-04-05 12:54) [60]У меня пенсионеры знакомые есть. Пожалуй согласились бы, но вы не возьмете конечно :)
← →
Думкин © (2004-04-05 12:59) [61]
> Тимохов © (05.04.04 12:44) [56]
> Общие слова имхо. Все зависит от проекта и его роли. Не
> всегда видна конечная цель - только промежуточные.
Когда так - то тяжело работать. Все-таки нечто надо видеть уже вначале. Чем лучше основание - тем проще потом. Доказано не одним огромным, а некоторым количеством малых и средних(с претензией на крупные) проектов. Хорошо спроектированная модель не один раз потом поможет - яркий пример уже прозвучал.
> Про чтение книжек. Читаем, и не только по программированию.
> Более всего люблю - хр. В его духе - бастренько написал,
> потом переделал. Как оказалось - это и в моем духе.
Все-таки, на мой взгляд, дух ХР несколько в ином. Но мне он весь как-то не катит. А некоторые его моменты - так это и не ХР, что Бек(кажется) и писал.
← →
Тимохов © (2004-04-05 13:00) [62]
> Игорь Шевченко © (05.04.04 12:54) [59]
Игорь, вы уже залезаете в вопросы программерской религии.
Нам хр (вернее пока его часть) очень помогают. Особенно тесты.
> В его духе: написал, выбросил.
Именно так, только после выбросил надо поставить "написал лучше"
← →
Юрий Зотов © (2004-04-05 13:01) [63]> Тимохов © (05.04.04 12:44) [56]
> Общие слова имхо.
Совершенно верно - они именно ОБЩИЕ. Именно ТАК и должен мыслить проектировщик - ОБЩЕ. Иначе проект запросто утонет в версионности и поддержке.
> Не всегда видна конечная цель - только промежуточные.
О чем и речь. Если человек этой цели не видит - рано ему проектированием заниматься. Он может быть прекраснейшим, опытнейшим, грамотнейшим кодировщиком - но под проектировщика его мышление еще не заточилось.
← →
Rule © (2004-04-05 13:02) [64]>Иксик © (05.04.04 12:45) [57]
ну тогда Иксология :)
← →
Тимохов © (2004-04-05 13:02) [65]
> Думкин © (05.04.04 12:59) [61]
Вы тут все джедаи :)))))
"Неясно будущее этого проекта"
← →
Тимохов © (2004-04-05 13:03) [66]
> Юрий Зотов © (05.04.04 13:01) [63]
> О чем и речь. Если человек этой цели не видит - рано ему
> проектированием заниматься. Он может быть прекраснейшим,
> опытнейшим, грамотнейшим кодировщиком - но под проектировщика
> его мышление еще не заточилось.
Да не мне не ясно, а никому не ясно, в том числе и заказчику :)))))
← →
Anatoly Podgoretsky © (2004-04-05 13:06) [67]SPeller © (05.04.04 11:14) [45]
Ну доказал, что ты знаешь, что такое иерархия, но какая то она простая и линейная. Кстати не шутка.
← →
Иксик © (2004-04-05 13:09) [68]
> Rule © (05.04.04 13:02) [64]
"Обидеть хотите?" (с)
:))
← →
app © (2004-04-05 13:11) [69]Хватит прокатываться по личностям, в конце концов не крависо, без повода.
← →
Rule © (2004-04-05 13:14) [70]>Anatoly Podgoretsky © (05.04.04 13:06) [67]
И к тому же бесполезная :)
← →
Юрий Зотов © (2004-04-05 13:27) [71]> Тимохов © (05.04.04 13:03) [66]
> а никому не ясно, в том числе и заказчику
1. Заказчику вообще довольно редко бывает ясно, что же он хочет. Именно потому и нужен человек, который знает это лучше заказчика.
2. Тем более возрастает роль грамотного проектирования. Гибкого. По принципу "написал-расширил", а не "написал-выбросил". Потому что слишком дорого это - рабочим кодом бросаться.
← →
Тимохов © (2004-04-05 13:33) [72]
> Юрий Зотов © (05.04.04 13:27) [71]
Самый бесполезный спор, который может только быть :)))))))
Чаще, конечно занимаюсь - "написал, расширил", а не "написал, выбросил". Но последнее тоже приходится делать.
> 1. Заказчику вообще довольно редко бывает ясно, что же он
> хочет. Именно потому и нужен человек, который знает это
> лучше заказчика
Человек (не заказчик) нужен. Вопрос в том, что не понятно на какой период финансирования нужно рассчитывать. Расчитаешь, что нужно будет делать то-то и то-то и за это заплатят. А не заплятят, т.к. в то время когда надо было решать конкретную задачу мы занимались разработкой гибкого кода на будущее.
Заметте, что это говорит человек, который в недавнем прошлом сам страшно любил делать красивый и расширяемый код. Все проходит, когда появляется необходимость в руководстве.
← →
Иксик © (2004-04-05 13:41) [73]
> app © (05.04.04 13:11) [69]
Вы правы, не крависо :)))
← →
serge35 (2004-04-05 13:45) [74]Я бы не стал искать супер забубенного программиста,
и лучше бы поискал хорошего аналитика, который
может мыслить дальновидно и написать хорошее ТЗ.
По такому ТЗ любой "Ламер" может написать код.
А с "чисто конкретными" программистами, которые
знают все даже разговаривать порой невозможно.
Они сразу любую задачу в уме уже переводят в код,
строят пресловутые иерархии, плодят "очень полезные"
функции, классы. И подбирать программиста
по принципу - человек должен уметь делать что-то, если
он не умеет это что-то, то он не подходит все равно,
что выбирать водителя по принципу: Если он не может
разогнаться по МКАДу до 200 км.ч. за 20 сек, значит
это плохой водитель.
← →
Sergey_Masloff (2004-04-05 13:45) [75]Юрий Зотов © (05.04.04 13:27) [71]
>2. Тем более возрастает роль грамотного проектирования. >Гибкого. По принципу "написал-расширил", а не "написал->выбросил". Потому что слишком дорого это - рабочим кодом >бросаться.
Это в теории... На практике согласно исследований IBM более 80% всей работы всех программистов в мире это переписывание старого работающего! кода. И тенденции к улучшению не видно. Отсюда вывод (ИМХО) все же не только неграмотное проектирование тому причиной.
Это конечно не призыв к кодированию без проектирования.
← →
Юрий Зотов © (2004-04-05 13:51) [76]> Тимохов © (05.04.04 13:33) [72]
> А не заплятят, т.к. в то время когда надо было решать
> конкретную задачу мы занимались разработкой гибкого кода на
> будущее
Бывает и так - плавали, знаем :о)
А бывает и так, что из-за изначально неверного проектирования непомерно раздувшийся проект умирает под тяжестью поддержки. А провести сколько-нибудь серьезный рефакторинг становится уже или слишком дорого или практически невозможно.
Видимо, подход о котором говорите Вы может быть применим для не особо крупного проекта, предназначенного для конкретного заказчика. А тот, о котором говорю я - для крупного проекта, предназначенного для произвольного заказчика.
← →
Иксик © (2004-04-05 13:51) [77]Имхо, проектированием и кодированием действительно должны заниматься разные люди.
← →
Игорь Шевченко © (2004-04-05 13:52) [78]
> На практике согласно исследований IBM более 80% всей работы
> всех программистов в мире это переписывание старого работающего!
> кода
Это наверное, для того, чтобы проблему занятости решить :))
← →
Тимохов © (2004-04-05 13:54) [79]
>Юрий Зотов
> Видимо, подход о котором говорите Вы может быть применим
> для не особо крупного проекта, предназначенного для конкретного
> заказчика. А тот, о котором говорю я - для крупного проекта,
> предназначенного для произвольного заказчика.
Что такое для вас крупный проект?
1 млн строк в дельфи
1 млн строк в скриптовом языке (своем)
100 тыс строк скриптов
Это средний? Просто интересно...
Хотя, ценю проницательность - проект, действительно, для конкретных заказчиков (пока).
← →
Игорь Шевченко © (2004-04-05 13:59) [80]Тимохов © (05.04.04 13:54)
Вот MS Office, например, крупный проект. Или тот же Delphi (из всем известных).
Страницы: 1 2 3 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.04 c