Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Как перестать беспокоиться и начать работать? :)   Найти похожие ветки 

 
Tux   (2003-01-23 00:01) [0]

Волей случая приходится писать крупный проект с напарником. С утра выковыриваем из Team`a 4 сотни файлов и начинаем работать. Проект такой, что RAD средства помогают мало, дохренища приходится писАть ручками с нуля. Стиль, архитектуру и вообще идеологию диктует руководство. С ужасом заметил, что не могу себя заставить писать как приказывают, т.е. много, тупо и быстро. Напарник УСИДЧИВЫЙ, он с утра крепко садится в кресло и бодро без перекуров до отбоя долбит тупой код навроде

if (frmX.visible) then
begin
mnuX.checked := true
end
else
begin
mnuX.checked:=false;
end;

- конструкции вроде mnuX.checked = (frmX.visible and (x = y)) его приводят в ужас;
- Апи - это буржуйские штучки;
- простому регэкспу он предпочитает подозрительный перебор всякими length, pos и stringreplace (ему это непонятно);
- крайне редко использует RTTI, предпочитает все, что можно, запихивать в Tag (ему это тоже непонятно), к тому же никогда не пользуется указателями;
- его не смущает индексирование коллекций строками (когда можно и нужно числами);
- про абстрактный класс и всякие иерархии я ему разжевываю неделю - не доходит. Copy+Paste - и хоть плачь.

и т.д. и т.п.

В общем, ужас. НО! Он работает продуктивно, а я нет. У него к обеду есть что показать шефу, а я все по MSDN ползаю, сделав едва треть. Читать его код я не могу без улыбки. НО!! Веский аргумент: "мы сорцы сдаем заказчику, ему должно быть все понятно, писать надо как проще и вообще нас сроки жмут".

Вопрос: что с собой поделать? :)) Я же не могу себя насиловать :))


 
Jeer ©   (2003-01-23 00:22) [1]

переходи в постановщики.
А вообще сейчас - кто быстрее даст результат - тот и с деньгами, если это тебе надо.


 
Tux   (2003-01-23 01:17) [2]

Еклмн :) Есть еще один аргумент - оптимизация - потОм, после создания скелетика. В принципе, вариант. Притащить заказчику машинку помощней, на ней все будет летать. "Сдал-принял". Ставим поделку на 95/P133/64. Заказчик заверещит. А мы ему - "Поздняк, подписано! Давай-ка договорчик еще второй подпишем, чтобы быстрее работало???" Мы - типа операторы машинного доения :))


 
Big_Rom ©   (2003-01-23 03:17) [3]

Да была у меня иака ситуация когда ,но когда все начело плыть
ториозить то политика резко изменилась


 
kaif ©   (2003-01-23 03:59) [4]

Разделите с напарником задачу так, чтобы каждый выигрывал от стиля другого. Возьмите коллективную ответственность за весь проект на двоих. Тогда ты сможешь заниматься продумыванием членов абстрактных классов и иерархий, а напарник прописывать все эти
if Visble then
... := True
else
... := False
А еще лучше, если вы разобьете проект на отдельные dll или кто-то возьмет приложение, а кто-то dll. Тогда плюсы коллективной работы сразу выявятся. А в параллель однородно работать - напоминает организацию мануфактуры сапожников прошлого века с гордым названием "Обувная фабрика".


 
Кот Бегемот ©   (2003-01-23 09:51) [5]

Игорь - ту где ????? - посоветуй чегото товарищу, а ?
Я бы сам - так не был в таком де#$%е :)

ЗЫ: А с другой стороны - начальство тоже право :\
"Работает ? - Точно работает ? - Ничего не трогай..."

А код:
if (frmX.visible) then
begin
mnuX.checked := true
end
else
begin
mnuX.checked:=false;
end;

не такой уже и плохой - все рано твое mnuX.checked := (frmX.visible and (x = y)) компилятор приведет примерно к такому же виду :\


 
gn ©   (2003-01-23 10:04) [6]


>
> Tux

Если твоё начальство не хочет прислушиваться к твоему мнению
То, что ж тут сделаешь, они платят они и музыку соответственно заказывают
И обижаться тут неначто (только если на их глупость)
А с напарником вам надо распилить приоритеты на данный проект на то он и напарник


 
Слесарь Матерящийся ©   (2003-01-23 10:09) [7]

А может, сменить напарника?


 
blackman ©   (2003-01-23 10:11) [8]

Не усложняй себе жизнь.
Операторы машинного доения были и будут.
И это не плохо.
Делай СВОЁ дело и не смотри на других.
Работать надо быстро, а иначе ты можешь никогда не закончить работу и следовательно будешь не нужен.
Если есть время, то можно и в MSDN заглянуть, но если нет, то значит нет...


 
Игорь Шевченко ©   (2003-01-23 11:33) [9]

Напарника надо либо переучивать либо ампутировать.Другого не дано.
Аргументы: корявый код невозможно сопровождать. В него крайне неудобно вносить изменения (или вы от изменений застрахованы на $1000000)
Copy/Paste - любой изменение придется вносить в N+1 мест.
Если тем более, исходники отдаются заказчику, то серьезный заказчик просуществует с вами ровно один раз при таком подходе.

Впрочем, если вы свои поделки не сопровождаете, тогда конечно, все мои аргументы можно проигнорировать :-)

С уважением,


 
Кот Бегемот ©   (2003-01-23 11:45) [10]

2Игорь Шевченко © (23.01.03 11:33)

Спасибо :))) - а я уже думал ты исчез :(


 
NailS ©   (2003-01-23 12:05) [11]

Может пора задуматься, а нафига тебе такая работа?
Ничему новому научится, а следовательно и поднять свой скилл, с описанным подходом все равно нельзя.


 
Fiend ©   (2003-01-23 12:26) [12]

То Tux:
Поддержу мнение kaif про разделение. Т.е., я считаю в принципе глупым и не рациональным выполнять одни и те же подзадачи одного проекта, либо проверять текст напарника. На мой взгляд всегда было оптимальным разбить проект на минизадачи, каждому в зубы дать по набору этих задач. Как каждый из вас будет реализовывать свои алгоритмы это его личная проблема. Единственное о чём надо будет договриться так это моментах где ваши задачи будут стыковаться.
Из своего опыта: в комманде всегда так делали, т.е. например один чел разрабатывает БД, другой клиента и в друг друговы задачи не лезем. Надо что то тому кто пишет клиента от БД, он говорит второму: а как мне получить то то или а как тото удалить/сохранить/добавить не вникая во внутренности. Надо же разработчику БД какая то особенность от клиента, он спрашивает первого или говорит ему шо мол тото и тото, надо так то и так то!

и напоследок то Кот Бегемот:
чё это вы взяли шо компилятор приведет mnuX.checked := (frmX.visible and (x = y)) к блоку с ифами??? он сделает именно код вычисления выражения, а не переколбасит его в проверки


 
Игорь Шевченко ©   (2003-01-23 12:30) [13]

Fiend © (23.01.03 12:26)

Компилятор переведет наоборот - блок if"ов к mnuX.checked := (frmX.visible and (x = y)), если включена оптимизация. Хотя, может и не перевести.


> Поддержу мнение kaif про разделение


Не с таким напарником. Напарника в конце концов уволят, и что делать с его кодом - переписывать по новой ? Нафиг, нафиг :-)

Лучше учить или менять на ранних этапах.


 
Fiend ©   (2003-01-23 12:36) [14]

то Игорь Шевченко:
не стоит расчитывать на то что напарника уволят. Ведь это не задаватель вопроса решает. Поэтому как грится если уж он хочет работать в этой конторе или шо там у него не знаю, то ему придётся смириться с этими условиями. Ведь не пойдёт же он к начальству говорить что мол напарник - балбес, это по крайней мере неэтично, самому жаловаться. Я так понимаю они там с напарником на одинаковых должностях. Другое дело если его самого спросят, а как тебе мол второй товарисч? тогда можно и всю правду рассказать, тока при этом надо и от человека не скрывать своё мнение о нём.

ну и про первое: я просто хотел поправить Кота Бегемота, не более


 
Кот Бегемот ©   (2003-01-23 14:59) [15]

2Fiend © (23.01.03 12:36)

Да я не про то - все равно та или другая конструкция переведется в набор JE JNE - и какая оптимальнее - надо еще посмотреть :)


 
Duce ©   (2003-01-23 17:53) [16]

Уважаемые, Солнца Вам над головой, или Луны(по вкусу) или микса из обоих этих светил. Вот по теме ветки.
Академическое знание - это прекрасно. Академический код - превосходно. Но это уже из области фундаментальной науки - тогда надо идти в НИИ или подобное место и посвящять себя науке. В индустрии же решаются конкретные задачи, и решаются оптимальным способом! Потому все эти охи-ахи за "арт-оф-программинг" - больно узкий взгляд на вещи. Решаются конкретные задачи на конкретных мощностях. И поэтому наивны мнения, что любой ценой нужно вцепиться в академизм. В конце концов, если мощь железа позволит компенсировать некоторые моменты программинга, то это НОРМАЛЬНО!
(Zic! Я совсем не утверждаю, что нужно сползти на линейный алгоритм из примитивных конструкций, на программингФРУклипборд!) Но в конечном итоге, если и решение на "неграмотном коде", и "на грамотном" устроит в ходе эксплуатации по таким параметрам, как быстродействие( ну какая на хрен эксплуататору разница, что чистое решение работает на 30% быстрее, когда в абсолютных величинах пьюре алгоритм пашет 7 , а грязный-10 сек ), легкость в сопровождении, удобство фейса, то то решение, какое быстрее получено - лучшее.
И плевать хотел эксплуататор нашего с вами труда на академичность кода, и правильно!
И как же я в свое время намучался с одним перфекционистом : -()
Потом узнал, что этот фрукт в прежней конторе писал весьма узкую систему учета около 10 мес. Даже в опытной эксплуатации его софт так и не зажил. А задача требовала 3 рабочих места в одной комнате без перспективы выноса вовне и расширений. Финал- изгнание гения.
Промтехнология требует следования стандарту, а не ежесекундных открытий и прорывов, или виртуозного мастерства. Поэтому герой ветки - безусловно очень талантливый тактик, но плохой стратег, если не может применится к контексту условий задачи, взвесить все аргументы и найти оптимальное качество работы. Вот.
Я не против артОФпрог, но за разумное ему следование. Нужно либо научиться работать в контексте конкретной задачи с учетом многих факторов, либо идти двигать науку. Сделать выбор, перестать беспокоиться и работать.
ПС: все беззлобно, прошу не обижаться :)


 
Lancelot ©   (2003-01-23 18:14) [17]


> Duce © (23.01.03 17:53)

И тут столкнулись лбами розовая детская мечта и суровая грязная действительность... :)


 
Mike_Goblin ©   (2003-01-23 20:09) [18]

Присоединяюсь к мнению Игоря Шевченко
одно время и у меня был такой напарник, результаты
1. Чувствуя что заваливает свой участок работы он перед окончанием проекта ушел (это его право и я его не осуждаю)
2. N+1 Copy/Paste был приведен в нормальный вид (в сверурочное время), объем кода стал на 40% меньше, функциональность та же.

> Duce ©
наука не мешает практике, а очень даже помогает, откуда берется стандарт промтехнологии (а если вы знаете как его улучишить, почему не сделать этого?). Ваша позиция напоминает мне анекдот конечная фраза которого - че тут думать, прыгать надо!!!
(PS ничего личного ни к Duce, ни к напарнику)


 
Ketmar ©   (2003-01-23 20:22) [19]

>Duce © (23.01.03 17:53)
ага. а вы пробовали поддерживать код и модифицировать, написанный в стиле "extreme programming"? причем написанный фиг знает кем? видимо, не пробовали...

Satanas Nobiscum! 23-Jan-XXXVIII A.S.


 
Tux   (2003-01-23 21:10) [20]

Спасибо всем, от души.

Ketmar © (23.01.03 20:22)
Я около полугода назад заинтересовался XP, почитал теорию и удивился несостыковкам - как это можно БЫСТРО написать МНОГО ПРАВИЛЬНОГО кода, даже тех же тестов? КОнтора должна состоять либо из гениев, либо надо какое-то прилагательное выкинуть...


 
Ketmar ©   (2003-01-23 21:20) [21]

>Tux (23.01.03 21:10)
достаточно просто писать не левой ногой.

Satanas Nobiscum! 23-Jan-XXXVIII A.S.


 
Ketmar ©   (2003-01-23 21:29) [22]

>Tux (23.01.03 21:10)
а. вы про Extr.Progr? тогда не знаю.

Satanas Nobiscum! 23-Jan-XXXVIII A.S.


 
Duce ©   (2003-01-24 09:48) [23]

Вы, господа, не совсем поняли, о чем я говорил. Все Ваши аргументы - это аргументы из кузницы от кузнецов. А юзеру скакать надо, и как можно быстрее. Разборки в цеху - не его проблемы. Тут уж кто быстрее подкову удовлетворительного качества сделает - тому и гонорар.
К Mike_Goblin - каждый должен заниматься своей спецификой.
Кто-то- аккуратно и грамотно работает по технологии, выдерживает сроки и минимаксные требования. Кто-то не в цейтноте эти технологии создает. Нигде в послании я не столкнул науку и практику лбами. Индустрия серийного производства использует достижения науки, а не параллельно занимается наукой.
Ничего похожего на "че тут думать, прыгать надо" в своем тексте я не нахожу. Я не зря упоминал ОПТИМАЛЬНОЕ РЕШЕНИЕ. Взвешенное и осмысленное. Не триумф дер виль, не акт воли, а акт разума.
Вот :))


 
Игорь Шевченко ©   (2003-01-24 09:52) [24]


> Тут уж кто быстрее подкову удовлетворительного качества
> сделает - тому и гонорар.


При этом надо, чтобы подкова не развалилась через 1 км скачки, и, возможно в будущем, могда прибиваться большим/меньшим количеством гвоздей. И не к копыту, а к колесу автомобиля.
С подходом Copy/Paste я гарантирую заведомый неуспех подобных модификаций.


> Индустрия серийного производства использует достижения науки


Так об чем и речь! Более того, для того, чтобы эту науку использовать, надо ее, как минимум знать :-)

С уважением,


 
Ketmar ©   (2003-01-24 10:53) [25]

>Duce © (24.01.03 09:48)
скакать, говорите? ну вот выдали юзверю лошадку. быстро выдали. хорошая лошадка. но вот незадача: скачет она странно. 10 метров проскачет, и - бух на бок. приходится ее, болезную, юзверю поднимать. а она тяжелая. теперь вопрос: через сколько метров юзверь задолбается поднимать лошадь и пойдет бить морду продавцу?
я уж не говорю о том, что при попытке повесить на лошадку новое седло оная лошадка просто рассыпается на элементарный скелет и кишки...

Satanas Nobiscum! 24-Jan-XXXVIII A.S.



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.014 c
1-28699
Сергей
2003-01-31 14:16
2003.02.10
Вертикальная прокрутка ListBox


14-29018
Cobalt
2003-01-21 21:16
2003.02.10
Delphi<->Kylix3


7-29124
maxim2
2002-12-05 21:49
2003.02.10
Как реализовать такую штуку на Delphi


1-28743
Checist [root]
2003-02-01 02:30
2003.02.10
Запись в файл


8-28944
Ricks
2002-10-16 17:41
2003.02.10
DirectShow