Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Вниз

И снова смех сквозь слезы...   Найти похожие ветки 

 
Юрий Зотов ©   (2010-06-03 07:32) [0]

Надо тут было допилить одну программу. Чужую, неизвестно кем и когда писаную. На Delphi. Дали мне исходники - вперед, парень, разберешься.

Разобрался. Редкий перл.

Во-первых, архитектура программы - ни к черту. Например - используется десяток однотипных форм (что правильно и диктуется задачей), но вместо того, чтобы породить форму-предок и вынести в нее весь общий код (которого было бы немало), этот код повторен в каждой форме. То есть, если что-то меняем, то менять приходится одно и то же 10 раз. С риском где-то что-то упустить, естественно. И с резким возрастанием общего объема кода.

Далее - таких однотипных форм может быть не десяток, а произвольное количество, и работают они последовательно, одна за другой (типа программы-теста) - причем прикладной функционал этих форм может быть самым различным. Архитектура "движок+плагины" ну просто сама напрашивается - и была бы в данном случае более чем уместной. Какое там! И близко нет.

Программа двуязычная. Но для смены языка требует перекомпиляции. Кстати, а как вы думаете, чем переключается язык? Ни за что не угадаете - изменением свойства Tag у одной из кнопок. Если Tag=3, то русский, если 4 - то английский. Причем функционал самой этой кнопки ни с какими языками совершенно не связан.

Для вывода сообщений везде использован MessageDlg. Ну просто классно смотрится, когда вываливается диалог с русским текстом и с английским заголовком.

Ну и на каждом шагу - крутые перлы, например:

Перл 1 (повторяется десятикратно):

try
 MyForm := TMyForm.Create(...);
except
 MessageDlg("Не хватает памяти", ...); // Прощай, причина ошибки.
 Exit
end;
with MyForm do
begin
 Init;
 DoWork;
 Destroy; // Именно Destroy, не Free. И здравствуй, возможный мемлик.
end;


Перл 2 (повторяется даже на десяти-, а многократно):

try
 ...
finally
end; // Именно так, с пустой секцией finally.


Перл 3:

procedure THelpForm.CloseHelp; // public, вызывается во многих местах
begin
 Close
end;


И подобных приколов - полно. На каждом шагу. Уж не говорю о том, что при билде выдается порядка сотни хинтов и варнингов, а запуск с включенным Check Range сразу же дает EOutOfRange.

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

Кстати - в числе прочих необходимых доработок заказчик просил устранить такие глюки - при запуске программы иногда:
- или гаснет экран;
- или изображение на экране переворачивается кверху ногами;
- или виснет Windows и потом отказывается загружаться.

Естественно, в коде ничего подобного в явном виде не зашито, к таким эффектам приводит совокупность его глюков. Профи! - к вам обращаюсь! Кто сможет повторить такое, именно в неявном виде? Это вам не хухры-мухры! Розыч - теперь ты понимаешь, что ты по сравнению с этим юным дарованием ты просто птенец, со всеми своими морфиками-полиморфиками-асмами-дебаггерами?

Последнее. Программа, как выяснилось, была написана за деньги. Еще одно подтверждение известной истины - сначала заказчик нанимает пионэра вместо профи, а потом выясняется, что без профи все равно не обойтись и что платить ему все равно придется, а пионэр только зазря получил деньги и зазря угробил время.

Вот такой крик души...


 
boriskb ©   (2010-06-03 07:42) [1]


> потом выясняется, что без профи все равно не обойтись и
> что платить ему все равно придется


Так и есть?
Возможно ли здесь озвучить сколько заплатил заказчик за имеющийся вариант и сколько он собирается платить сейчас?
Пусть не реальные цифры но в  сравнении (разы, проценты, порядки)
В назидание, так сказать


 
Юрий Зотов ©   (2010-06-03 07:55) [2]

Забыл про еще один прикол, тоже заслуживает публикации:

var
 MyVar: string; // Глобальная переменная в одном из модулей

procedure MyProc;
begin
 MyVar := "Строковая константа";
 ... // Пишем MyVar в реестр
 ... // Тут же читаем MyVar из реестра
end;

Больше нигде в программе обращения к реестру нет.


 
Юрий Зотов ©   (2010-06-03 08:10) [3]

> boriskb ©   (03.06.10 07:42) [1]

Сколько заплатил пионэру - не знаю. Опыт подсказывает, что "программер" столь низкой квалификации - это именно пионэр, а пионэрам, как известно, много не платят.

Сейчас заказчик готов платить двухмесячную зарплату неплохого профи в Москве. Не суперпрофи, но достаточно крепкого. Что примерно соответствует истине - потому что программу, по-хорошему, надо делать заново, с нуля - и примерно месяца два на это и уйдет (если, конечно, не  не заниматься ничем другим).


 
Омлет ©   (2010-06-03 08:32) [4]

А комментарии в коде есть?


 
Ega23 ©   (2010-06-03 08:38) [5]

Есть такой сайт http://www.govnokod.ru/
Там и для Delphi секция есть. :)


 
XXL   (2010-06-03 08:51) [6]

Ой! да это же МОЯ программа!
Писал в 98-м когда начал изучать Delphi чтобы чуть заработать после дефолта. Именно так - написана за деньги, но вам Юрий этих денег и на день не хватит...
По поводу зависонов винды не скажу - но переворачивалку экрана и гасилку монитора встраивал в код, подсмотрел на хакерсру :)


 
Думкин ©   (2010-06-03 09:02) [7]

А вот у меня было. D серьезнйо дорогущей программе, которую вначале писали европейцы, а потмо микрософтовцы купили и дописывали. И опять же за дорого продавали. Во встроеннйо системе программирования.

a = 1/3+1/3+1/3
b = 1/3+1/3+1/3

c = a+b;

Печатаем с и получаем - 1. Причем так получалось и 10 и 100 и 1000 и т.д.


 
RWolf ©   (2010-06-03 09:48) [8]


> Юрий Зотов ©   (03.06.10 07:32) 

with MyForm do
begin
Init;
DoWork;
Destroy; // Именно Destroy, не Free. И здравствуй, возможный мемлик.
end;


И откуда он возьмётся?
указатель на форму существует только один — внутри with, обнулить его мы не сможем, так что Free или Destroy — без разницы.


 
Anatoly Podgoretsky ©   (2010-06-03 09:50) [9]

> Омлет  (03.06.2010 08:32:04)  [4]

Наверно есть, но такого рода // присваиваем переменной значение 2, //
открываем таблицу


 
12 ©   (2010-06-03 10:03) [10]


> a = 1/3+1/3+1/3
> b = 1/3+1/3+1/3
>
> c = a+b;
>
> Печатаем с и получаем - 1. Причем так получалось и 10 и
> 100 и 1000 и т.д.
>

ничего не понял

// присваиваем переменной значение 2
сурьезно, причем


Chislo2 : integer;

 Chislo2 := Chislo2 + 14; // увеличим на 14

..нафиг chislo2.. нафиг на 14 ..
и так сплошь и рядом.


 
Anatoly Podgoretsky ©   (2010-06-03 10:18) [11]

> RWolf  (03.06.2010 09:48:08)  [8]

Почему не сможем, сможем в Init или в DoWork, из-за ошибок в программе,
фокусы с монитором, показывают что все возможно.


 
Andy BitOff ©   (2010-06-03 10:19) [12]

А как вам выдержка из одного faq"а:
error #2046 - возникает из за не верно установленной даты и времени. Будьте добры исправьте её


 
Юрий Зотов ©   (2010-06-03 10:20) [13]

> XXL   (03.06.10 08:51) [6]
Это вряд ли.
:o)

> RWolf ©   (03.06.10 09:48) [8]

> И откуда он возьмётся?
Внутри Init или DoWork возникает исключение - и получаем мемлик.

> указатель на форму существует только один — внутри with,
Кто сказал, что MyForm - не глобальная переменная? Хотя в данном случае это и неважно.

>  обнулить его мы не сможем
Запросто: MyForm := nil; Даже внутри with. Хотя в данном случае и это тоже неважно.

> так что Free или Destroy — без разницы.
Здесь - да. Но недвусмысленно говорит об аккуратности и зрелости программера. Форматирование кода тоже на работу программы не влияет, однако нормальные программеры его все же форматируют.

==========

Впрочем, я не настаиваю - если кому нравится допускать возможность мемликов и вызывать деструкторы напрямую - то и на здоровье.


 
Ega23 ©   (2010-06-03 10:23) [14]


> И откуда он возьмётся?


Поднятое исключение в Init или DoWork - и форма осталась висеть в памяти, деструктор не вызвался.
Free или Destroy - ИМХО тут фиолетово, Free просто привычнее.


 
DVM ©   (2010-06-03 10:26) [15]


> Думкин ©   (03.06.10 09:02) [7]


> a = 1/3+1/3+1/3
> b = 1/3+1/3+1/3
>
> c = a+b;

Ну я могу понять, иногда так пишут, чтобы было понятно из чего состоит значение. Иногда бывает нужно все таки. Но редко. Только непонятно как c получает значение 1.


 
RWolf ©   (2010-06-03 10:32) [16]


> Юрий Зотов ©   (03.06.10 10:20) [13]
> Кто сказал, что MyForm - не глобальная переменная?
> Запросто: MyForm := nil; Даже внутри with. Хотя в данном случае и это тоже неважно.

Да, верно — я как-то привык такие вещи записывать в форме with TMyForm.Create do try и т.п. и упустил из вида, что форму можно описать и как глобальную переменную )


 
Думкин ©   (2010-06-03 10:34) [17]


> DVM ©   (03.06.10 10:26) [15]

Это было при работе с базой - терялась 1000 уе, все свелось к вот такому.


 
Игорь Шевченко ©   (2010-06-03 10:41) [18]

Юрий Зотов ©   (03.06.10 07:32)

А все к чему - к тому, что программистов мало. Поэтому они стоят денег.


 
Думкин ©   (2010-06-03 10:47) [19]


> > Печатаем с и получаем - 1. Причем так получалось и 10
> и
> > 100 и 1000 и т.д.
> >
>
> ничего не понял

Я не удивлен.


 
Юрий Зотов ©   (2010-06-03 10:52) [20]


> Омлет ©   (03.06.10 08:32) [4]
> А комментарии в коде есть?

В исходном - не было. Да они там и не нужны, там весь код - один сплошной комментарий, очень яркий.

Но после моих правок комментарии появились. Правило у меня есть такое - при доработке чужого кода помечать спецкомментарием (с префиксом YZ и датой) все внесенные изменения. Чтобы было ясно, кто, когда, что и зачем правил. И чтобы искать эти правки легко было.

Причем комментариев таких появилось около 350. Нормально, да?


 
@!!ex ©   (2010-06-03 11:03) [21]

> [20] Юрий Зотов ©   (03.06.10 10:52)
> Правило у меня есть такое - при доработке чужого кода помечать
> спецкомментарием (с префиксом YZ и датой) все внесенные
> изменения. Чтобы было ясно, кто, когда, что и зачем правил.
> И чтобы искать эти правки легко было.

Diff в системе контроля версий не решает? И кто и когда правил написано...
Зачем засорять код?


 
Дмитрий Т   (2010-06-03 11:09) [22]

Юрий, я бы радовался, что есть такие программы - значит хорошим людям будет, что делать.

)))


 
Palladin ©   (2010-06-03 11:14) [23]

у хорошего человека это на лбу не написано


 
Игорь Шевченко ©   (2010-06-03 11:14) [24]


> Правило у меня есть такое - при доработке чужого кода помечать
> спецкомментарием (с префиксом YZ и датой) все внесенные
> изменения. Чтобы было ясно, кто, когда, что и зачем правил.
>  И чтобы искать эти правки легко было.


Вредное правило.


 
Ega23 ©   (2010-06-03 11:17) [25]


> Diff в системе контроля версий не решает? И кто и когда
> правил написано...


Ты все ревизии каждого юнита просматриваешь?
Силён, снимаю шляпу.


 
Игорь Шевченко ©   (2010-06-03 11:20) [26]

Ega23 ©   (03.06.10 11:17) [25]

Открой для себя changelog и его создание


 
Дмитрий Т   (2010-06-03 11:24) [27]

По сути скажу.

Думаю, что самым безобразным здесь является это.
try
MyForm := TMyForm.Create(...);
except
MessageDlg("Не хватает памяти", ...); // Прощай, причина ошибки.
Exit
end;

За это надо жестоко убивать)

Все остальное, безусловно, признак пионерства.

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

Был у него кусок, потом он удалил его, а потом не прочистил код от каких кусков. Со всеми бывает. Просто нужен навык и устойчивый процесс разработки. У меня, например, это коммит перед SVN - обязательный просмотр изменений с возможной чисткой хвостов. У автора-пионера ни навыка такого нет, ни потребности ))

---

Что-то про совокупностью глюков, приводящих к перевороту, верится с трудом ))
Там должен быть код. Может XXL не врет? )


 
Anatoly Podgoretsky ©   (2010-06-03 11:24) [28]


> Внутри Init или DoWork возникает исключение - и получаем
> мемлик.

Но в этом случае замена на Free как мертвому припарка.


 
Anatoly Podgoretsky ©   (2010-06-03 11:25) [29]

> Ega23  (03.06.2010 10:23:14)  [14]

А мне привычнее try finally


 
Anatoly Podgoretsky ©   (2010-06-03 11:26) [30]

> DVM  (03.06.2010 10:26:15)  [15]

C типа Integer


 
Anatoly Podgoretsky ©   (2010-06-03 11:27) [31]

> Игорь Шевченко  (03.06.2010 10:41:18)  [18]

Особенно Дельфи программисты, это С++ где не плюнь, так в сишника
попадешь!!!


 
Anatoly Podgoretsky ©   (2010-06-03 11:28) [32]

> Юрий Зотов  (03.06.2010 10:52:20)  [20]

Игрек Зотов :-)


 
Anatoly Podgoretsky ©   (2010-06-03 11:28) [33]

> Дмитрий Т  (03.06.2010 11:09:22)  [22]

Всяко на хлеб с маслом всегда будет.


 
Думкин ©   (2010-06-03 11:29) [34]


> Anatoly Podgoretsky ©   (03.06.10 11:26) [30]
> > DVM  (03.06.2010 10:26:15)  [15]
>
> C типа Integer

Нет. Тип был real. Там своя система арифметическая была, поправили в версии 2.4 или 2.5, а мы тогда еще на 2.3 работали.


 
Anatoly Podgoretsky ©   (2010-06-03 11:29) [35]

> Игорь Шевченко  (03.06.2010 11:14:24)  [24]

Так поступают только трусы


 
XXL   (2010-06-03 11:30) [36]

Вру.
There but for the grace of God, go I

Думаю, что того пионера кинули, обещали заплатить больше а заплатили меньше или не заплатили вообще.
А бета-версию оставили себе, и работают...


 
Дмитрий Т   (2010-06-03 11:30) [37]


> Ega23 ©   (03.06.10 11:17) [25]
>
>
> > Diff в системе контроля версий не решает? И кто и когда
> > правил написано...
>
>
> Ты все ревизии каждого юнита просматриваешь?
> Силён, снимаю шляпу.


Надо хорошо писать Change Log. Надо входить в роль читателя. Т.е. сделать так, чтобы он понял в общих чертах самое главное в текущем комите - дальше ему поможет уже DIFF.

Например, я когда делаю формальный рефакторинг (например, переименования) я делаю это обязательно отдельным ревижином. В рефижине меняется, допустим, 1000 модулей. Но я честно пишу: "DIFF можно не смотреть, это rename-refactoring такой-то и такой-то".

Бывает, что поменяешь одну строку, а коммент в change log на страницу, т.к. очень важно объяснить в деталях. Или коммент короткий, но есть указание смотреть коммент в коде с помощью DIFF.

Главное добиться того, чтобы у тебя, когда пишешь коммент в Change Log, была уверенность, что ты себя поймешь через год-два, а не будешь говорить - какой урод это писал (вариант, не писал). )))


 
Anatoly Podgoretsky ©   (2010-06-03 11:32) [38]

> Думкин  (03.06.2010 11:29:34)  [34]

Странно, такое поведение типично при присвоение к Integer


 
Юрий Зотов ©   (2010-06-03 11:34) [39]

> Дмитрий Т   (03.06.10 11:24) [27]

> Может возможность обобщения родилась уже в ходе разработки, а
> изначально форма была одна.

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

> Anatoly Podgoretsky ©   (03.06.10 11:24) [28]

Естественно. Одной  косметикой там точно не обойтись, там капитально переписывать надо. Даже ОЧЕНЬ капитально. Поэтому проще, легче, быстрее и лучше - выкинуть и написать с полного нуля.


 
Думкин ©   (2010-06-03 11:36) [40]

> Anatoly Podgoretsky ©   (03.06.10 11:32) [38]

Там баг был реальный. Про версии наврал. Исправлено в 3-й версии, 4 или 5-м сервиспаке.

http://www.axforum.info/forums/showthread.php?t=29320


 
Юрий Зотов ©   (2010-06-03 11:47) [41]

> Дмитрий Т   (03.06.10 11:24) [27]

> Что-то про совокупностью глюков, приводящих к перевороту, верится с
> трудом )) Там должен быть код.

Я тоже не поверил и стал искать закладки. Код обнюхал весь. Нет в нем такого. Но в программе использован какой-то левый (явно не аффтаром писаный, а откуда-то скачаный) асмовский модуль для работы с графикой, причем бета-версия (и непонятно, на фига это надо, никакой уж такой особенной графики в программе нет, обычного GDI запросто хватит).

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

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

> Может XXL не врет?

Не исключено, но вряд ли. По моим данным, программа делалась не в 98 году, а позже.


 
Дмитрий Т   (2010-06-03 11:51) [42]


> Юрий Зотов ©   (03.06.10 11:47) [41]

Ну если АСМ, то да, все может быть.
Вообще, может и переписать стоит. Я бы тоже так сделал, видимо.


 
Anatoly Podgoretsky ©   (2010-06-03 13:04) [43]

> Юрий Зотов  (03.06.2010 11:34:39)  [39]

Вот и я про тоже - переписать все нафиг


 
MonoLife ©   (2010-06-03 14:11) [44]

A to-do файлика там случайно небыло? Порой, интересно почитать, что хотел и что реализовал программер..


 
Anatoly Podgoretsky ©   (2010-06-03 14:42) [45]

> MonoLife  (03.06.2010 14:11:44)  [44]

Компромата не оставляем.


 
tesseract ©   (2010-06-03 16:19) [46]


> A to-do файлика там случайно небыло?


Там разума-то не было. Какой to-do ? Я кстати  не помню был-ли to-do в Delphi 5 :-)


 
Медвежонок Пятачок ©   (2010-06-03 16:21) [47]

был был в пятерке туду


 
12 ©   (2010-06-03 16:22) [48]

фигурные скобки были :)


 
Rouse_ ©   (2010-06-03 16:39) [49]


> Розыч - теперь ты понимаешь, что ты по сравнению с этим
> юным дарованием ты просто птенец, со всеми своими морфиками-
> полиморфиками-асмами-дебаггерами?

А я всегда говорил что я нуб :)


 
vrem   (2010-06-03 21:36) [50]

Юрий Зотов, вы напоминаете художника реалиста, заслуженного, его часто показывают по тв, и каждый раз он ругает абстракционистов, высмеивает их и говорит что у них мазня :) что они просто не умеют рисовать. и с такой настойчивостью он это проделывает, продуманно и не возразишь :)
журналисты пытались, типа есть другие стили, может они эмоции рисуют, людям же нравится(покупают) и т.д., а он ни в какую - не умеют и точка. шишкин вот умеет, а эти мазильщики нет.


 
Rouse_ ©   (2010-06-03 21:43) [51]


> vrem   (03.06.10 21:36) [50]

Так и запишем - vrem программит в таком-же стиле. :)

ЗЫ: Зотыч - ты обманул самого себя.
Если взять за пример вот это:
Программа двуязычная. Но для смены языка требует перекомпиляции. Кстати, а как вы думаете, чем переключается язык? Ни за что не угадаете - изменением свойства Tag у одной из кнопок. Если Tag=3, то русский, если 4 - то английский. Причем функционал самой этой кнопки ни с какими языками совершенно не связан.
То внимание вопрос - а каким боком компилер узнает о свойстве Tag некоей кнопки? :)


 
bss   (2010-06-03 22:04) [52]

Rouse_, дык если нету встроенного механизма изменения tag"а кнопки - то как сменить язык? В design-time изменить свойство tag и перекомпилить, а как еще?

Или вводить функционал по смене tag"а кнопки, в любом случае перекомпиляция ожидает ))


 
Rouse_ ©   (2010-06-03 22:37) [53]


> В design-time изменить свойство tag и перекомпилить, а как
> еще?

Отлично, повторяю вопрос, как компилятору задать директиву, что в случае, если тэг ктопки равен трем - скомпилять этот кусок кода, а если четырем - то другой? :)


 
Германн ©   (2010-06-03 22:40) [54]

{$DEFINE Tag3}
:)


 
Rouse_ ©   (2010-06-03 22:40) [55]


> Германн ©   (03.06.10 22:40) [54]

Переведи на наш :)


 
antonn ©   (2010-06-03 22:44) [56]


> Отлично, повторяю вопрос, как компилятору задать директиву,
>  что в случае, если тэг ктопки равен трем - скомпилять этот
> кусок кода, а если четырем - то другой? :)

выдрать "dfm" из ресурса и распарсить =)


 
antonn ©   (2010-06-03 22:49) [57]


> выдрать "dfm" из ресурса и распарсить =)

ну да, предварительно поставив расширение, как мне посоветовали в теме с build-ом =)


 
Rouse_ ©   (2010-06-04 00:01) [58]

Ну ты не стесняйся - реализацию в виде кода и настроек посткомпайла или прекомпайл билда озвучь :)


 
Германн ©   (2010-06-04 00:37) [59]


> Переведи на наш :)

Элементарно, Ватсон!
Нигде ведь не сказано в какой программе та самая кнопка, Tag которой определяет вариант компиляции. :)


 
Германн ©   (2010-06-04 02:16) [60]

Ну и в добавок.
Прочее - не только моё ЖЖ!
:)
А если кто-то это не понимает, то это его проблемы. :)


 
Германн ©   (2010-06-04 03:06) [61]

Меня вот беспокоит только одно.
Почему наши ресурсы используются так безграмотно?


 
Юрий Зотов ©   (2010-06-04 10:23) [62]

> vrem   (03.06.10 21:36) [50]

Если безграмотную и бездумную халтуру Вы считаете стилем, то даже и возражать не буду. Бесполезно.

Свое мнение Вы, быть может, измените после того, как сядете к водителю, который водит машину в таком же стиле. Или (не дай Бог) попадете на стол к хирургу, который оперирует в таком же стиле. А до тех пор - бесполезно.

> Rouse

Определены 2 набора строковых констант - русский и английский. Если tag=3, то используется русский, если 4 - английский. Но при программной смене tag ничего не происходит, поэтому и нужна перекомпиляция.

При такой реализации тем более странно, что не сделана динамическая смена языка, потому что для нее почти все есть. Фактически, осталось только разбросанные по всему коду присвоения кэпшенов, хинтов и пр. свести в одну (или несколько) процедур и вызывать ее (их) при смене языка. Тогда и никаких тэгов, кстати, не понадобится.


 
KilkennyCat ©   (2010-06-04 10:23) [63]

Удалено модератором


 
Rouse_ ©   (2010-06-04 10:25) [64]


> Юрий Зотов ©   (04.06.10 10:23) [62]
> Определены 2 набора строковых констант - русский и английский.
>  Если tag=3, то используется русский, если 4 - английский.
>  Но при программной смене tag ничего не происходит, поэтому
> и нужна перекомпиляция.

Юрч - вот чес слово, ну ничего не понял зачем перекомпил нужен :)


 
12 ©   (2010-06-04 10:29) [65]

>> зачем перекомпил нужен
ну, на формкрите видимо весит чего-то частично, на формшоу частично
и во всех местах, всех форм смотрится на какую-то кнопку одной какой-то формы.
ну и отсутствует механизм смена тэга


 
Palladin ©   (2010-06-04 10:36) [66]


> Юрч - вот чес слово, ну ничего не понял зачем перекомпил
> нужен :)

ну нет слежения за сменой тага ) чего тут непонятного? )


 
Юрий Зотов ©   (2010-06-04 10:42) [67]


> Rouse_ ©   (04.06.10 10:25) [64]


type
 TLang = 3..4;
 TStr = array[TLang] of string;
const
 ExitCaption: TStr = ("Выход", "Exit");
.............
 ExitButton.Caption := ExitCaption[MagicButton.Tag];


Такие присвоения кэпшенов, хинтов и пр. есть, например, в обработчиках событий OnCreate форм. Но для форм, которые не создаются динамически (а такие там есть, и не только главная), этот код отрабатывает только 1 раз.

При программной же смене MagicButton.Tag ничего не происходит, нет такой обработки. Поэтому для смены языка нужно изменить tag в desigh-time и перекомпилировать.


 
GrayFace ©   (2010-06-04 10:45) [68]

Наверное, код типа такого:
procedure TForm1.CreateForm(...)
beging
  if Button1.Tag = 3 then
    Button2.Caption:= "Выход"
  else
    Button2.Caption:= "Exit";
end;


 
Rouse_ ©   (2010-06-04 10:48) [69]

Ужс блин, фига се логика :)
Юрч, теперь ты к настоящий программер просто обязан найти аффтора и подарить ему гранату без чеки :)


 
Юрий Зотов ©   (2010-06-04 11:07) [70]


> Rouse_ ©   (04.06.10 10:48) [69]

Времени на капитальное перепахивание у меня не было, поэтому вопрос со сменой языка я решил очень просто. Менять язык при уже работающей программе вряд ли кому нужно - поэтому достаточно добавить маленькую формочку с радиогруппой выбора языка и показать ее перед запуском главной формы прямо из DPR:

begin
 Application.Initialize;
 with TSelectLanguageDialog.Create(nil) do
 try
   ShowModal;
   UserLanguage := 3 + SelectLanguageRadioGroup.ItemIndex
 finally
   Free
 end;
 Application.CreateForm(...);
 ...
end.
 
UserLanguage -это введенная мною всюду доступная переменная, играющая ту же роль, которую раньше играл MagicButton.Tag. После этого оставалось только сделать в коде глобальную замену текста [MagicButton.Tag] на текст [UserLanguage] - и вся любовь.


 
@!!ex ©   (2010-06-04 11:12) [71]

> [62] Юрий Зотов ©   (04.06.10 10:23)
> Если безграмотную и бездумную халтуру Вы считаете стилем,
> то даже и возражать не буду. Бесполезно.

Заспорять код комментариями на каждой строке виде: Дата, имя автора
Это тоже безграмотность и незнание инструментов.
Все мы в чем-то безграмотные. Все мы чему-то учимся постоянно.
Это не повод в такой смешливой манере оскорблять автора вашей программы.
В конце концов благодаря ему у вас сейчас есть работа за которую платят немаленькие(полагаю) деньги.


 
Anatoly Podgoretsky ©   (2010-06-04 11:14) [72]

> Rouse_  (04.06.2010 10:25:04)  [64]

Да очень просто if .tag=1 then Russian else English
А вот присвоения тегу в коде нет, только в дизайн


 
@!!ex ©   (2010-06-04 11:20) [73]

> [72] Anatoly Podgoretsky ©   (04.06.10 11:14)

Что мешает сделать присваение тэга ДО того как будет первое чтение его?
Например в Create формы читать из конфига настройки языка и соответственно присваивать tag.
Не вижу проблемы.


 
Юрий Зотов ©   (2010-06-04 12:11) [74]

> @!!ex ©   (04.06.10 11:12) [71]

> Заспорять код комментариями на каждой строке виде: Дата, имя автора
> Это тоже безграмотность и незнание инструментов.


1. Не на каждой строке, а только в тех местах, где были сделаны изменения. Если же изменения приходится делать, как Вы говорите, на каждой строке, то это называется "полное переписывание кода" и тогда необходимость в подобных комментариях отпадает автоматически. Их, соответственно, и не будет.

2. Это не засорение кода, а удобная и полезная ремарка. Например, тем, что при просмотре кода сразу виден старый код (закомментированный), новый код, автора, дату и причину изменений. И для этого не требуются дополнительные инструменты, жмакание на дополнительные кнопки, поиск и просмотр дополнительной информации и т.п. Быстро, просто, удобно.

3. Такие комментарии не запрещают и не отменяют использование систем контроля версий, ведение ChangeLog и пр. Поэтому где Вы здесь увидели незнание инструмента - непонятно.

> Все мы в чем-то безграмотные. Все мы чему-то учимся постоянно.

Бесспорно. И это хорошо. Плохо другое - когда человек, еще не умеющий что-то делать, берется это делать для кого-то другого, да еще и ЗА ДЕНЬГИ. Как уже отмечалось, Вы поймете это, когда сядете в машину к водителю, толком не умеющему ее водить или попадете на стол к хирургу, не умеющему толком оперировать. И еще хорошо, если после этого у Вас останется возможность ему заплатить. А ее может и не остаться - покойники не платят.

> Это не повод в такой смешливой манере оскорблять автора вашей
> программы.


Где Вы нашли оскорбления? Я его обозвал? Я его обругал?

Я сказал, что он написал плохую программу в стиле новичка. И это правда (с чем здесь и согласились). Еще я сказал, что этот код - безграмотная и бездумная халтура. И это тоже правда. Безграмотность и бездумность следуют из приведенных выше примеров, а халтура - из факта получения денег за плохую работу. ЛЮБЫХ денег, даже маленьких.

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

> В конце концов благодаря ему у вас сейчас есть работа за которую
> платят немаленькие(полагаю) деньги.


1. Работа у меня и так есть, ее никто не отменял. А эту работу я делаю за счет своего личного времени - то есть, его уже не имею. Вам (и никому другому) тоже не запрещается выполнять дополнительную работу в свое личное время.

2. Деньги примерно вдвое меньше обычных. Я согласился на них по ряду причин. В частности, потому, что заказчик произвел более чем хорошее впечатление - и как человек, и как собственно заказчик. Он четко знает, чего он хочет, с ним легко и приятно работать, да и просто общаться. К тому же, и в программировании, и в Delphi он тоже разбирается, поэтому с ним можно разговаривать на общем языке, не опасаясь, что тебя не поймут.

3. Работу я имею не благодаря тому, что кто-то раньше плохо ее сделал, а потому, что она кому-то нужна. Лучше бы ее вообще никто раньше не делал - тогда бы я сразу написал программу с нуля. Теперь же пришлось не только делать ее с нуля, а еще и потратить время на разбор чужого кода (иначе как понять, что ее надо переписывать?).


 
Anatoly Podgoretsky ©   (2010-06-04 12:12) [75]

> @!!ex  (04.06.2010 11:20:13)  [73]

Ничего, кроме того, что непредусмотрено.
Ты не учи нас писать правильные программы, мы то умеем. На нас не
наживешься, никакой переработки не будет.


 
Юрий Зотов ©   (2010-06-04 12:16) [76]

> @!!ex ©   (04.06.10 11:20) [73]

> Что мешает сделать присваение тэга ДО того как будет первое чтение его?
> Например в Create формы читать из конфига настройки языка и
> соответственно присваивать tag.
> Не вижу проблемы.

Хорошо, подскажу. Одна маленькая проблемка все же есть - в программе отсутствует тот самый конфиг, из которого Вы собираетесь читать настройки.

Только не предлагайте его сделать, ладно? Поверьте на слово, что я и без Вас знаю, как делаются программы с сохранением настроек, как делаются мультиязычные программы и т.п.


 
@!!ex ©   (2010-06-04 12:40) [77]

Господи, какой поток... задело чтоли?
Юрий, единственная причина моего комментария выше - то что вы необычайно аггресивны последнее время.
Это удивило, учитывая что все привыкли видеть в вас очень грамотного и спокойного специалиста. И соответственно побудило написать коммент.


> [75] Anatoly Podgoretsky ©   (04.06.10 12:12)
> Ты не учи нас писать правильные программы, мы то умеем.
> На нас не
> наживешься, никакой переработки не будет.

Практика подсказывает что на этой планете нет программистов которые умеют писать программы правильно.
Все лажают. Все говнокодят. Особенно в кранче.


 
Игорь Шевченко ©   (2010-06-04 12:47) [78]


> Например, тем, что при просмотре кода сразу виден старый
> код (закомментированный), новый код, автора, дату и причину
> изменений. И для этого не требуются дополнительные инструменты,
>  жмакание на дополнительные кнопки, поиск и просмотр дополнительной
> информации и т.п. Быстро, просто, удобно.


Это код, который невозможно читать. Код должен содержать реализацию алгоритма, а не историю полетов мысли


 
Юрий Зотов ©   (2010-06-04 12:59) [79]

> @!!ex ©   (04.06.10 12:40) [77]

> Юрий, единственная причина моего комментария выше - то что вы
> необычайно аггресивны последнее время.

В самом деле? Надо же, Вы единственный, кто это заметил.

Я совершенно-спокоен, идеально-бел и мягко-пушист. До тех пор, пока на меня не наезжают (см. [50] и [71]).

Прошу учесть. И будет мир-дружба-жвачка.


 
@!!ex ©   (2010-06-04 13:08) [80]

ну нормального мира не получится, пока:
> [76] Юрий Зотов ©   (04.06.10 12:16)
> я и без Вас знаю, как делаются программы

потому что:

> [74] Юрий Зотов ©   (04.06.10 12:11)
> С воспаленным ЧСВ жить трудно



> [79] Юрий Зотов ©   (04.06.10 12:59)
> Надо же, Вы единственный, кто это заметил.

Не единственный. Но комментарий другого автора удалили.
Может и еще были, не слежу за этим.


 
Юрий Зотов ©   (2010-06-04 13:22) [81]

> @!!ex ©   (04.06.10 13:08) [80]

> ну нормального мира не получится, пока, потому что:

Потому что [71], друг мой. Потому что [71]. А уж потом Ваши цитаты. Есть восточная пословица: плюнувший вверх не должен спрашивать, что это за роса упала ему на голову.

> Но комментарий другого автора удалили.

Если удалили, значит было за что. Но сильно сомневаюсь, что Костя сказал что-то в мой адрес. И не потому что мы такие уж друзья, а потому что нет повода.

Конечно, если его не придумывать.


 
Юрий Зотов ©   (2010-06-04 13:28) [82]

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

Это что, физиологическая потребность такая у людей, что ли? Непонятно.


 
test ©   (2010-06-04 13:31) [83]

@!!ex ©   (04.06.10 11:12) [71]
Игорь Шевченко ©   (04.06.10 12:47) [78]

Вот счас не понял, я что то поменял и нигде об этом не пишу, не в перед заголовкам ни в самой функции, это зачем?

У меня привычка в чужом коде оставлять если изменений много

/*
имярек число дата, поменял:
список
*/
procedure someProcedure;
begin
...
end;

если что то по мелочи то

//имярек дата поменял условия с <старый вариант> на <новый вариант>
if(a> b)then

Это упрощает отладку, и мне, и автору.


 
Юрий Зотов ©   (2010-06-04 13:47) [84]


> test ©   (04.06.10 13:31) [83]

Это вредная привычка. Надо установить систему контроля версий, а потом, не видя из САМОГО кода, что он вообще был кем-то изменен, долго лазить по Diff, пытаясь установить - а был ли этот кусок кода вообще изменен?

Другой вариант - вести ChangeLog и уже из него (а не из Diff) пытаться понять то же самое. Особенно полезно, когда проект пишется лет 5, большой командой и уже перевалил за полмиллиона строк, а изменений в нем набралось тысяч 10.


 
Гость   (2010-06-04 13:56) [85]

Это еще цветочки. Я видел программу, где на форме лежали скрытые Едиты, тексты которых предназначались для использования в качестве глобальных переменных.


 
test ©   (2010-06-04 14:05) [86]

Юрий Зотов ©   (04.06.10 13:47) [84]
Надо конечно подумать, но оперативность в обоих вариантах падает.


 
Kerk ©   (2010-06-04 14:07) [87]


> Юрий Зотов ©   (04.06.10 13:47) [84]
> Особенно полезно, когда проект пишется лет 5, большой командой
> и уже перевалил за полмиллиона строк, а изменений в нем
> набралось тысяч 10.

Ну намного полезнее и проще, чем держать 10 тыс комментариев, переписывающих код в некоторых местах раз по пять.


 
b z   (2010-06-04 14:19) [88]

Коментарий старого кода держим пока новый "приживаеться", потом беспощадно удаляем.
Можно было и его не держать (в системе контроля версий есть), но как-то так повелось, иногда надо быстро откатить, вроде так сподручнее.


 
RWolf ©   (2010-06-04 14:25) [89]


> Это вредная привычка. Надо установить систему контроля версий,
>  а потом, не видя из САМОГО кода, что он вообще был кем-
> то изменен, долго лазить по Diff, пытаясь установить - а
> был ли этот кусок кода вообще изменен?

Если говорить про SVN, авторство изменений показывается командой Blame. Лазить нигде не нужно.


 
XXL   (2010-06-04 14:27) [90]

Юрий - предлагаю Вам вернуть Ваше личное время!

Отдайте эту работу кому-нибудь другому, например мне - с удовольсвием переделаю :)


 
turbouser ©   (2010-06-04 14:27) [91]

Комментарии можно и нужно добавлять к версии при чекине, а не в тексте программ.


 
test ©   (2010-06-04 14:28) [92]

RWolf ©   (04.06.10 14:25) [89]
Надо исправить часть которую кто то писал пол года назад, ты работаешь 5 месяцев, кто последний в unit лез никто не помнит, ваши действия?


 
Petr V. Abramov ©   (2010-06-04 14:30) [93]


> turbouser ©   (04.06.10 14:27) [91]

а как быть человеку, у которого нет доступа к репозиторию (как в нашем случае)?


 
RWolf ©   (2010-06-04 14:30) [94]


> test ©   (04.06.10 14:28) [92]

почему не помнит? в репозитории все ходы записаны.


 
turbouser ©   (2010-06-04 14:32) [95]


> Petr V. Abramov ©   (04.06.10 14:30) [93]


>
> а как быть человеку, у которого нет доступа к репозиторию
> (как в нашем случае)?

в нашем - это в каком? как в [0]?
не вижу проблемы. создаем новый репозиторий и вперед.


 
RWolf ©   (2010-06-04 14:33) [96]


> Petr V. Abramov ©   (04.06.10 14:30) [93]
> а как быть человеку, у которого нет доступа к репозиторию (как в нашем случае)?
>

Это ненормальная ситуация. Разработчик должен иметь доступ к репозиторию проекта, в котором он участвует.


 
test ©   (2010-06-04 14:35) [97]

RWolf ©   (04.06.10 14:33) [96]
Сначала у проекта репозитарий должен быть в принципе.


 
Юрий Зотов ©   (2010-06-04 14:37) [98]

> RWolf ©   (04.06.10 14:25) [89]

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

Проект пишется 5 лет. В нем полмиллиона строк и 10 тыс. изменений. Все они залиты в SVN. Ваши действия?


 
RWolf ©   (2010-06-04 14:37) [99]


> test ©   (04.06.10 14:35) [97]

речь о том, что держать репозиторий правильнее, чем засорять код историей правок.


 
Кто б сомневался ©   (2010-06-04 14:37) [100]

Это случайно не справочник лекарственных средств (ну или как то так.)
При запуске под XP x64 вываливается с ошибкой нехватка памяти (при 4 гигах рамы), а под XP работающий .


 
RWolf ©   (2010-06-04 14:41) [101]


> Юрий Зотов ©   (04.06.10 14:37) [98]


> Проект пишется 5 лет. В нем полмиллиона строк и 10 тыс.
> изменений. Все они залиты в SVN. Ваши действия?

Если мне нужно узнать автора фрагмента кода, я делаю Blame.
Если нужно откатить правку — Checkout.
Eсли сравнить с предыдущими правками — Diff.

Репозиторий моего нынешнего проекта ведётся с 2006 года. Очень помогает в работе.


 
Юрий Зотов ©   (2010-06-04 14:41) [102]


> RWolf ©   (04.06.10 14:37) [99]

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


 
turbouser ©   (2010-06-04 14:42) [103]


> Юрий Зотов ©   (04.06.10 14:37) [98]

не знаю, как в случае с SVN, но в vss, точнее в плагине для Delphi - vssconection есть source analysis - отлично показывает line history. не сомневаюсь, что и в других cvs есть подобное.


 
test ©   (2010-06-04 14:44) [104]

RWolf ©   (04.06.10 14:37) [99]
Как вытащить историю для процедуры?
Не надо авторов, не надо сравнений.
Только историю как менялась процедура, желательно в обратном порядке по времени.


 
Юрий Зотов ©   (2010-06-04 14:45) [105]

> RWolf ©   (04.06.10 14:41) [101]

> Если мне нужно узнать автора фрагмента кода, я делаю Blame.
Не нужно.

> Если нужно откатить правку — Checkout.
Не нужно.

Нужно определить, что вот этот кусок кода в 5 строк вообще хоть раз менялся. Это позволяет сделать Diff. Сколько времени на это у Вас уйдет?

При наличии комментария - мгновенно.


 
Anatoly Podgoretsky ©   (2010-06-04 14:45) [106]

> Юрий Зотов  (04.06.2010 14:37:38)  [98]

Веревка?


 
RWolf ©   (2010-06-04 14:46) [107]


> Юрий Зотов ©   (04.06.10 14:41) [102]
> А никто и не говорит,
> что репозиторий не нужен. Но как понять, что вот этот кусок
> кода был вообще кем-то когда-то изменен?

TortoiseSVN показывает это как-то так: http://leprastuff.ru/data/img/20100604/a3e149ee7e795d241bece5d2652fcbdf.PNG


 
Юрий Зотов ©   (2010-06-04 14:47) [108]

> turbouser ©   (04.06.10 14:42) [103]

Я тоже не сомневаюсь. Сколько времени это займет?

При наличии комментария - нисколько.


 
Юрий Зотов ©   (2010-06-04 14:49) [109]


> RWolf ©   (04.06.10 14:46) [107]

См. 108.


 
RWolf ©   (2010-06-04 14:50) [110]


> Юрий Зотов ©   (04.06.10 14:49) [109]

[107] — разве не оно?
именно кем и когда изменена конкретная строка.


 
test ©   (2010-06-04 14:50) [111]

test ©   (04.06.10 14:44) [104]
Вопрос снят.

turbouser ©   (04.06.10 14:42) [103]
Дай ссылку.


 
turbouser ©   (2010-06-04 14:56) [112]


> Юрий Зотов ©   (04.06.10 14:49) [109]

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


 
turbouser ©   (2010-06-04 14:57) [113]


> test ©   (04.06.10 14:50) [111]

http://www.epocalipse.com/vcxscr.htm


 
Юрий Зотов ©   (2010-06-04 14:58) [114]


> RWolf ©   (04.06.10 14:50) [110]

Еще раз - не нужно определить кем, не нужно определить когда.

Вот в коде есть строка:
if A > B then
Нужно определить, что она вообще хоть раз менялась. Неважно кем и когда. Важно только определить, что она вообще менялась, хоть раз.

Несомненно, репозиторий это сделать позволяет. Но за какое время?

Комментарий на этот вопрос отвечает мгновенно и без всяких служебных операций.


 
Petr V. Abramov ©   (2010-06-04 15:07) [115]


> turbouser ©   (04.06.10 14:32) [95]


> в нашем - это в каком? как в [0]?
> не вижу проблемы. создаем новый репозиторий и вперед.

можно и так, но в данном случае из пушки по воробьям, это раз.
причесанный код отдается заказчику, полагаю, исходники взял - исходники отдал. Закомментаренное - мухи, код - котлеты, все другот друга отделено, хоят и рядышком :) что может быть проще?
Репозиторий - вещь хорошая, но не для этой задачи


 
RWolf ©   (2010-06-04 15:19) [116]


> Комментарий на этот вопрос отвечает мгновенно и без всяких
> служебных операций.

По-моему, такого рода комментарии только мешают читать код.
Если мне нужно посмотреть, не менялся ли код, самое очевидное — посмотреть историю ревизий файла, ознакомиться по меткам в чейнджлоге в общих чертах, что менялось, потом просмотреть Blame.


> Petr V. Abramov ©   (04.06.10 15:07) [115]
> причесанный код отдается заказчику, полагаю, исходники взял
> - исходники отдал.

репозиторий — это и есть исходники. Заказчик (точнее, его программисты) должен иметь возможность ознакомиться с историей правок, раз он получает исходники. А ещё репозиторий — это дистрибутивы разных версий проекта, сопроводительная документация и т.п.
Захотел заказчик откатиться на старую версию — вытаскивает из репозитория её дистрибутив.


 
Petr V. Abramov ©   (2010-06-04 15:27) [117]


> RWolf ©   (04.06.10 15:19) [116]

какая заказчегу разница, сколько раз ЮЗ что-от правил, ему важно было->стало. он исходники получил, дальше у себя с ними чё хочет делает, хоть в свой репозиторий кладет, хоть в мусорку, хоть на стене зарубки делает, что где у него лежит.


 
RWolf ©   (2010-06-04 15:31) [118]


> Petr V. Abramov ©   (04.06.10 15:27) [117]

Исходники передаются заказчику в том числе для того, чтобы он имел возможность развивать проект, своими силами или с привлечением кого-то ещё со стороны. Для этого и нужна история правок — чтобы продолжать разработку, зная, как развивался проект в любой момент его существования.


 
Юрий Зотов ©   (2010-06-04 15:43) [119]

> RWolf ©   (04.06.10 15:19) [116]

> Если мне нужно посмотреть, не менялся ли код, самое очевидное —
> посмотреть историю ревизий файла, ознакомиться по меткам в
> чейнджлоге в общих чертах, что менялось, потом просмотреть Blame.

А если МНЕ нужно посмотреть, не менялся ли код, то мне НИЧЕГО не надо делать.


 
Игорь Шевченко ©   (2010-06-04 15:50) [120]

Юрий Зотов ©   (04.06.10 15:43) [119]


> А если МНЕ нужно посмотреть, не менялся ли код, то мне НИЧЕГО
> не надо делать.


У кода вообще несколько иное назначение, чем показывать, менялся он или нет. Это так, к слову.


 
Германн ©   (2010-06-04 15:53) [121]


> Юрий Зотов ©

Я вообще не понимаю чего они так набросились на комментарии? Каждый работает так как ему удобно. Я тоже использую подобные комментарии в своих программах для контролеров. Правда для них я так и не нашел ничего подобного SVN.


 
>_   (2010-06-04 15:54) [122]

Удалено модератором


 
RWolf ©   (2010-06-04 15:56) [123]


> Юрий Зотов ©   (04.06.10 15:43) [119]

Не спорю, автору кода может быть удобнее читать свои же комментарии с историей правок, но как насчёт остальных разработчиков?
На каждую строку исходника комментарий с правкой всё равно не поставить, поэтому по таким комментариям читателю будет ясно, менялся код или нет, только в общих чертах. То есть имеем тот же чейнджлог, но вписанный в исходники. Опять же, читать их от этого проще не станет.
Blame в этом смысле просто информативнее — правки показываются с точностью до отдельной строки.


 
Дмитрий Т   (2010-06-04 15:56) [124]

Юрий, зачем спорить )
Репозитарий при должной культуре его ведения неоценимая помощь в ведении проекта. Не думаю, что данный факт может вызывать сомнение у столько опытного разработчика. Незачем код засорять комментами, что и где правилось.  

Опять же от ситуации зависит. Бывают не самые маленькие опенсорсные проекты, которые состоят из одного модуля, но он большой. Там часто задают всю историю прямо в коде. Но это, как я думаю, особый случай.


 
Дмитрий Т   (2010-06-04 15:58) [125]

Блейм - вещь, подтверждаю. Вообще информативность логов в репозитарии зависит от культуры их ведения ) Я вот знаю людей, которые их вообще не ведут. Используют SVN как файлообменник )


 
Юрий Зотов ©   (2010-06-04 15:58) [126]

> Германн ©   (04.06.10 15:53) [121]

> Я вообще не понимаю чего они так набросились на комментарии?

Я тоже. Да мне и пофиг. Именно потому, что "Каждый работает так как ему удобно".

Тем более, если приемы работы хорошо себя показали уже многие тысячи раз.


 
tesseract ©   (2010-06-04 16:10) [127]

Возможно оффтоп - но тут такой хохма про таких  программопейсателей : http://talla2k.livejournal.com/9773.html


 
Anatoly Podgoretsky ©   (2010-06-04 16:18) [128]

> >_<  (04.06.2010 15:54:02)  [122]

Ламеры достали в последнее время.


 
Юрий Зотов ©   (2010-06-04 16:24) [129]

> Дмитрий Т   (04.06.10 15:56) [124]

> Юрий, зачем спорить
И правда, незачем.

> Репозитарий при должной культуре его ведения неоценимая помощь в
> ведении проекта. Не думаю, что данный факт может вызывать сомнение у
> столько опытного разработчика.
И не вызывает, ни разу.

> Незачем код засорять комментами, что и где правилось.

Смотрю список пожеланий заказчика, изучаю код. Потом говорю ему: вот это, это и это можно сделать быстро, а вот это и это требует капитального перепахивания, если не полного переписывания. Заказчик отвечает - ОК, сейчас делай то, что можно сделать быстро, а там посмотрим.

Вношу правки, говорю заказчику - готово. Как я уже говорил, заказчик в программизме не профи, но и далеко не профан. Поэтому его интересует не только Exe, но и сырцы. Он говорит - ок, давай приеду, покажешь промежуточный результат.

Приезжает. Промежуточным результатом доволен и готов его оплатить. Но прежде совершенно справедливо хочет понять объем проделанной мною работы, потому что от него зависит сумма. Делаю поиск подстроки YZ по исходникам и через секунду показываю ему - около 350 вхождений и по каждому я готов пояснить, зачем он потребовалось. На языке программиста, поскольку он этот язык понимает. Он выборочно смотрит, убеждается, что все честно и говорит - ок, вот деньги, слей мне измененные сырцы и давай договариваться о дальнейшем.

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

А засорение кода меня в данном случае ничуть не волнует, потому что через короткое время весь этот код все равно окажется в корзине.

Вот и пример. Совершенно, кстати, реальный - именно так оно и было.

Разные сиуации бывают - и когда нужно всего лишь подняться на 5 этаж, то удобнее использовать лифт, а не вертолет. К сожалению, не все это понимают, встречаются люди, склонные к категоричным утверждениям.
:o)


 
Anatoly Podgoretsky ©   (2010-06-04 16:30) [130]

> tesseract  (04.06.2010 16:10:07)  [127]

Тут нужны не программисты, а дизайнеры. Иконки это сложная вещь, вон
Микрософт вбухала несколько миллионов в иконки для Висты и все равно ерунда
получилась, не понятные. Но там спасает хинт, а здесь как я понял хинтов
нет. И не одна из иконок интуитивна не понятна, может быть кроме первой с
рисунком разъема ком порта, что то как то связаная со связью.


 
Юрий Зотов ©   (2010-06-04 16:35) [131]

Удалено модератором


 
turbouser ©   (2010-06-04 16:38) [132]


> Разные сиуации бывают

+1
Но держать код в репозитории все-таки практичнее :) Даже для небольших проектов. Всякое бывает.


 
RWolf ©   (2010-06-04 16:38) [133]


> Юрий Зотов ©   (04.06.10 16:24) [129]


> Можно все это сделать с помощью репозитория? Можно.

И, что характерно, так же быстро. Щелчок мышкой — и на экране список изменённых файлов. Ещё один щелчок по файлу — и заказчик видит слева что в файле было, справа — что стало, и все правки, выделенные цветом. Нагляднее не придумаешь.
Заодно и слить заказчику после изменения можно не все сырцы, а дельту, что сильно экономнее в плане хранения и пересылки.

> Только на фига из пушки по воробьям стрелять?

SVN — штука вовсе не сложная и не громоздкая.


 
Юрий Зотов ©   (2010-06-04 16:45) [134]

> RWolf ©   (04.06.10 16:38) [133]

> Нагляднее не придумаешь.

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

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

> SVN — штука вовсе не сложная и не громоздкая.

Спасибо, я с ним работал и работаю.
:o)


 
>_   (2010-06-04 16:54) [135]

Удалено модератором


 
Игорь Шевченко ©   (2010-06-04 17:20) [136]

Юрий Зотов ©   (04.06.10 16:24) [129]


> А засорение кода меня в данном случае ничуть не волнует


все правильно, есть твой подход, есть иные подходы. Если для тебя так удобно и код дальше тебя не выходит, то никаких вопросов не имеется :)


 
Германн ©   (2010-06-05 03:14) [137]


> > А засорение кода меня в данном случае ничуть не волнует
>
>
> все правильно, есть твой подход, есть иные подходы.

Ну наконец, ты Игорь, понял суть.
Комментарии вроде ещё никому пока не вредили. А вот пользу комментариев даже ты не сможешь оспорить!


 
turbouser ©   (2010-06-05 03:29) [138]


> Германн ©   (05.06.10 03:14) [137]


> Комментарии вроде ещё никому пока не вредили.

Вредили. Еще как. В итоге, когда комментатора уволили - весь этот шлак удалили.
Постепенно, со знанием дела. Мусор.


 
Германн ©   (2010-06-05 03:38) [139]


> turbouser ©   (05.06.10 03:29) [138]
>
>
> > Германн ©   (05.06.10 03:14) [137]
>
>
> > Комментарии вроде ещё никому пока не вредили.
>
> Вредили. Еще как. В итоге, когда комментатора уволили -
> весь этот шлак удалили.
> Постепенно, со знанием дела. Мусор.
>

Ну и да. Ну и и нет.
Программист (если он не ЖЗЧ) первым делом читает сам код. А уж потом читает комментарии.


 
Германн ©   (2010-06-05 03:42) [140]


> turbouser ©   (05.06.10 03:29) [138]
>
>

Но ты вышел из темы. ЮЗ в сабже говорит о комментариях совсем других.


 
turbouser ©   (2010-06-05 03:45) [141]


> Германн ©   (05.06.10 03:42) [140]


> Но ты вышел из темы

В этой ветке давно уже все отошли от темы :)


 
turbouser ©   (2010-06-05 03:47) [142]


> Германн ©   (05.06.10 03:38) [139]


> первым делом читает сам код. А уж потом читает комментарии.

Воооот :)


 
Германн ©   (2010-06-05 03:55) [143]

Ну и?
Что даёт чтение кода, если нет комментариев?
Спать пора.
Good night. Sleep tight.


 
turbouser ©   (2010-06-05 04:00) [144]


> Германн ©   (05.06.10 03:55) [143]
>
> Ну и?
> Что даёт чтение кода, если нет комментариев?

Они есть. в cvs. Обычно :)))


 
@!!ex ©   (2010-06-05 08:46) [145]

Трололо... Жирно получилось. :))


 
_Юрий ©   (2010-06-05 09:22) [146]


> turbouser ©   (05.06.10 03:29) [138]


> Вредили.  Еще как. В итоге, когда комментатора уволили - весь этот шлак удалили.


Проблема разрешима с помощью регионов, благо IDE позволяет.

Вообще, имхо,  комментарии бывают двух разных типов:
1. минимальная документация(требуется далеко не для каждого класса\метода\типа, а только там, где сами названия не дают однозначной информации, избыточные комментарии вредны)

2.История изменений.

Мое мнение - первое лучше держать в коде,   для второго как раз и созданы системы контроля версий


 
sniknik ©   (2010-06-05 10:36) [147]

такое впечатление, что никто не правил чужого кода (серьезно во всяком случае)... но позволяют себе учить это делать того кто это делал... ;(

свн-ы, контроль версий, история изменений... научились умным словам и спешите этим поделиться?

нафиг все это не нужно в данном случае. вы упускаете главное, имхо конечно (т.к. может не упускаете, а игнорируете потому что в доказывании своего оно вам мешает).
вам дают код на переделку, в большинстве случаев без этих мелочей таких как история его изменения. да в принципе и зачем они? (хорошо еще если все модули/компоненты есть, и он вообще компилится). в общем вы получаете окончательный и единственной версии код который вам нужно заменить на свой, следить за изменениями своего это ваше дело, это как вы привыкли, но вам то нужно сохранить оригинальный код, часто только из него можно понять, что делал автор, его логику, причем делал неверно (раз переписываете), хотел одно а сделал другое, т.е. понять по неверному коду правильную логику и написать свою... тоже недолго и ошибиться. и вот тут ОЧЕНЬ помогает иметь перед глазами старый код, и свой. причем иметь это постоянно в работе, писать свой, смотря на чужой обдумывая "а чего же ты этим хотел ламерюга?", а не разово  смотря время от времени в svn. а когда свое заработает и это будет именно так как нужно (логика по неверному коду понята верно)  тогда его можно и удалить (обычно этот момент наступает когда весь оригинальный код закоментарен, и ты идешь к начальству со словами "я же говорил переписать "ЭТО" с 0 было бы быстрее!").

в общем резюме - Юрий прав на 100%, со своими закоментариваниями старого кода, и временем о начале своих (понять глюк изменений или того что меняем при тестах). так очень все наглядно и удобно получается, а то что строк стало в 2 раза больше, в процессе работы, так ну и что? закончится, работа можно и удалить если место на диске экономите...


 
Игорь Шевченко ©   (2010-06-05 10:47) [148]

sniknik ©   (05.06.10 10:36) [147]

Так ты нифига и не понял


 
@!!ex ©   (2010-06-05 10:51) [149]

> [147] sniknik ©   (05.06.10 10:36)

Еще один программист не знающий инстурментов.
Кстати, нет проблем держать перед собой старый код...
У меня 3 моника на компе, один для IDE, второй для документации и сопутствующей информации(старый код, например), третий для всякого хлама.
Рекомендую.

А комментарии на каждую строчку кода - это засирание(извините за выражение, не могу адекватного синонима подобрать) кода.


 
sniknik ©   (2010-06-05 11:14) [150]

> Кстати, нет проблем держать перед собой старый код...
удобно не держать, а работать с ним (разница однако), чтобы был рядом, можно было, что то скопировать из него, сделать поиск аналогичного и т.д. менять окна при работе даже на соседнем экране двигая мышку неудобно.

> У меня 3 моника на компе
вопрос сколько их у ЮЗ? (у меня кстати один)

> А комментарии на каждую строчку кода
кто о таком говорит? переписывается обычно блок, и комментируется блок, и ниже в "скобках" из комментариев пишется замена.
строчка это очень редкий случай.

> Так ты нифига и не понял
я понял. вы сами придумываете себе "страшилки", приписываете их другим и храбро бичуете их стиль работы.

чего уж тут не понять. p.s. собственно.


 
Sha ©   (2010-06-05 11:20) [151]

Напоминает дискуссию о том, допустим ли прием пищи без вилки.


 
sniknik ©   (2010-06-05 11:24) [152]

> Напоминает дискуссию о том, допустим ли прием пищи без вилки.
+1
причем в варианте
- "подали очень жидкую еду, назвали кашей, для удобства использую ложку."
- "да ты что! кашу полагается есть вилкой. ты совсем не знаешь инструментов."

очень похоже.


 
Sha ©   (2010-06-05 11:31) [153]

Еще есть:
- походные условия
- прием у королевы
- рыба-курица-фрукты
- японцы-китайцы
- никто не видит, а посуду мыть тебе лень
- рекламная пауза в любимом сериале
.....


 
Kerk ©   (2010-06-05 11:55) [154]


> sniknik ©   (05.06.10 10:36) [147]
>
> такое впечатление, что никто не правил чужого кода (серьезно
> во всяком случае)... но позволяют себе учить это делать
> того кто это делал... ;(

Любой программист 90% (если не больше) времени работает с чужим кодом.
Если речь, конечно, о серьезных проектах, а не об одиночной работе на коленке.


 
Kerk ©   (2010-06-05 12:16) [155]

Ситуации, когда старый код лучше не удалять, а закомментировать, действительно бывают.
Но это не правило, а исключение.


 
Дмитрий Т   (2010-06-05 12:19) [156]

тут смешение какое-то тем.

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


 
turbouser ©   (2010-06-05 12:57) [157]


> sniknik ©   (05.06.10 10:36) [147]


> в общем резюме - Юрий прав на 100%

еще раз. для танкистов.

> turbouser ©   (04.06.10 16:38) [132]
>
>
> > Разные сиуации бывают
>
> +1
> Но держать код в репозитории все-таки практичнее :) Даже
> для небольших проектов. Всякое бывает.


 
@!!ex ©   (2010-06-05 12:59) [158]

> [151] Sha ©   (05.06.10 11:20)
> Напоминает дискуссию о том, допустим ли прием пищи без вилки.

Точно! Примерно так:

- Мне тут дали суп. Ужасный повар. Ем вилкой.
- Вилкой суп есть неудобно. Есть инструмент ложка. Им значительно лучше.
- Я профессиоанал! Не учите меня чем есть суп! Мне так удобнее. Ложкой нельзя сделать "Х".
- Можно ложкой сделать Х. Удобнее чем вилкой.
- Я сам знаю как удобнее.

Как-то так. :)


 
turbouser ©   (2010-06-05 13:05) [159]


> _Юрий ©   (05.06.10 09:22) [146]


> Проблема разрешима с помощью регионов, благо IDE позволяет.

есть регионы в d2007?

> 1. минимальная документация

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

> 2.История изменений.

а вот это уже лишнее.


 
turbouser ©   (2010-06-05 13:24) [160]


> Sha ©   (05.06.10 11:20) [151]
>
> Напоминает дискуссию о том, допустим ли прием пищи без вилки.
>

скорее "можно ли разделочной вилкой кушать десерт"


 
Юрий Зотов ©   (2010-06-05 13:37) [161]

> Sha ©   (05.06.10 11:20) [151]
> Sha ©   (05.06.10 11:31) [153]

+100
:o)

Подброшу дровишек: а вообще, даже интересно, как таварисчи на полном серьезе пытаются объяснить плюсы систем контроля версий тем, кто эти самые системы вовсю юзал еще тогда, когда эти самые таварисчи в школу ходили.

Вперед, хлопцы! Смелее! Успехов! Так нас, ламеров! Комментаторов поганых!

Ржунимагу, LOL. Мужики, вы мне еще расскажите, с какой стороны от жены спать надо, а то вдруг я че неправильно делаю?
:o)


 
test ©   (2010-06-05 13:37) [162]

turbouser ©   (05.06.10 13:05) [159]
>>да и вообще, нормальные человеческие комментарии в коде это +

Нет, только svn и cvs коментарии являются правильными, все остальное от лукавого, к тому же они легче читаются, надо просто выполнить 7-8 команд и ты получишь все коментарии для кода, потом grep"ом проходишься и получаешь все коментарии для метода, это очень удобно. Да, обязательно должно быть 3 монитора на столе.


 
test ©   (2010-06-05 13:39) [163]

Юрий Зотов ©   (05.06.10 13:37) [161]
Спать надо на правом боку, если что присниться не то, рукой махать полноценно не сможешь.))


 
Kerk ©   (2010-06-05 13:40) [164]


> Юрий Зотов ©   (05.06.10 13:37) [161]

К чему истерика-то? Самолюбие задето?


 
Kerk ©   (2010-06-05 13:44) [165]

Поверь, всем по барабану когда ты начал пользоваться системами контроля версий, всем так же по барабану с какой стороны от жены ты спишь и еще более по барабану когда кто в школу ходил.

Обсуждается один метод работы с кодом против другого метода работы с кодом.

И на личности здесь только ты пытаешься перейти.


 
Юрий Зотов ©   (2010-06-05 13:44) [166]


> Kerk ©   (05.06.10 13:40) [164]

Ром, а где истерика-то? Смешно - это да. Так ведь и правда смешно.


 
Юрий Зотов ©   (2010-06-05 13:47) [167]

> Kerk ©   (05.06.10 13:44) [165]

Ром, а к чему истерика-то? Самолюбие задето?
LOL

И это... ты ветку-то все же прочти. Тогда и увидишь, кто и когда на личности переходить начал.


 
turbouser ©   (2010-06-05 13:48) [168]


> Юрий Зотов ©   (05.06.10 13:37) [161]


> Подброшу дровишек

так их! так!
зы
LOL


 
turbouser ©   (2010-06-05 13:49) [169]


> Kerk ©   (05.06.10 13:44) [165]

+100500


 
sniknik ©   (2010-06-05 13:51) [170]

turbouser ©   (05.06.10 12:57) [157]
> еще раз. для танкистов.

>> turbouser ©   (04.06.10 16:38) [132]
>>
>> > Разные сиуации бывают
>>
>> +1
>> Но держать код в репозитории все-таки практичнее :) Даже
>> для небольших проектов. Всякое бывает.

повторим и для танкистов
> sniknik ©   (05.06.10 10:36) [147]
> ... следить за изменениями своего это ваше дело, это как вы привыкли ...

одно другого не исключает, но ЮЗ то как раз четко разграничил (как я его понял) речь не о слежении за своим кодом, а о комментировании чужого на время работы над ним по замене своим.
что дальше с этими комментариями будет плевать, есть или нет у него репозиторий и слежение тоже плевать, т.к. речь не о них. собственно их "ввели в спор" оппоненты как отвлекающий маневр, и чтобы потом можно было сказать "но все таки правильно делать так" (и тогда пусть ЮЗ их и использует, но последнее слово будет за ними :).
p.s. на размер проектов тоже плевать. несущественно для обсуждаемого стиля работы. хотя естественно он небольшой, раз переделывается одним человеком.


 
Kerk ©   (2010-06-05 13:57) [171]


> Юрий Зотов ©

Тут мне остается только рукой махнуть. Слишком ленив я стал, чтоб спорить на форуме с человком, который явно закусил удила.

> sniknik ©   (05.06.10 13:51) [170]
> Речь не о слежении за своим кодом, а о комментировании чужого
> на время работы над ним по замене своим.

Неправда. Речь вот о чем:
"Нужно определить, что вот этот кусок кода в 5 строк вообще хоть раз менялся" (с) ЮЗ [105]


 
turbouser ©   (2010-06-05 13:59) [172]


> sniknik ©   (05.06.10 13:51) [170]


> повторим и для танкистов

масло масляное :)


 
sniknik ©   (2010-06-05 14:04) [173]

> Неправда. Речь вот о чем:
> "Нужно определить, что вот этот кусок кода в 5 строк вообще хоть раз менялся" (с) ЮЗ [105]
ну так, если не менялся значит код чужой. ведь не о слежении за изменениями речь, а о том  "хоть раз". дальнейшее не волнует. разграничить свое и чужое.

мы что на разных языках говорим?


 
Kerk ©   (2010-06-05 14:24) [174]


> sniknik ©   (05.06.10 14:04) [173]

Ты пытаешься тут нас учить работать с кодом, в то время как сам не умеешь работать с обычным текстом. Перечитай тему и пойми о чем конкретно тут разговор.

"Нужно определить, что она вообще хоть раз менялась. Неважно кем и когда." (с) ЮЗ [114]

Причем тут "разделение кода на свой и чужой"? Причем тут "комментировании чужого на время работы над ним по замене своим"?


 
нет имени   (2010-06-05 16:15) [175]

www.delphilamer.ru


 
Gydvin ©   (2010-06-05 17:34) [176]

To subject
Может это был у чела первый заработок на стезе программиста ;)

Вон у меня был подобный опыт. Писал прогу одну, походу обучаясь прогать, до этого был только опыт создания всяческих "перещетных матриц" в экселе (я тады первый раз, нормально, до компа добрался), да глючная, да теряющая данные при каждом удобном случае, но я свои 1000 рублей (RUR) получил ;). Хотя то что я там накодил, до сих пор вспоминать стыдно :) . Более того я потом этому же клиенту продал вторую версию этого "продукта". Но само сабой уже стабильного и более функционального, но уже за ~ 9000 рублей. Затем проект я забросил. Но до сих пор несколько организаций им пользуются и немогут нарадоваться. Даже поступали предложения портировать эту фигню под линукс...

Так к чему я все это. Все мы бывали начинающими... а денех в любом стадии знаний хоца! И если вы взялись за исправление этой проги, то значит вам тоже денех хоца ;)


 
b z   (2010-06-05 20:05) [177]

Наши заказчики в код не смотрят, платят исправно, код и программа их собственность.


 
Юрий Зотов ©   (2010-06-05 22:15) [178]

> Gydvin ©   (05.06.10 17:34) [176]

> To subject
> Может это был у чела первый заработок на стезе программиста

Может. И даже похоже. И даже ОЧЕНЬ похоже. Но!

Вы куски кода смотрели? Ну и как Вам кусок из постинга [2], например?

Человек берет переменную (которой изначально присвоена константа), пишет эту переменную в реестр, тут же, в этой же процедуре ее же из реестра читает - и все. Больше он НИГДЕ с реестром не работает.

Вы можете объяснить смысл этих телодвижений с реестром? Зачем вообще нужны запись и чтение?

Они бессмысленны. И чтобы понять это, совсем не требуется быть профи - достаточно просто немного думать. Ну хоть чуть-чуть. Тем более, что тебе за это платят.

А тут явно прослеживается не только неумение грамотно кодить, но еще и нежелание просто думать. И если неумение грамотно кодить понять еще можно, то нежелание думать - понять нельзя. И оправдать тоже. Потому что это и есть откровенная халтура.

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


 
xayam ©   (2010-06-05 22:45) [179]


> Вы можете объяснить смысл этих телодвижений с реестром?
> Зачем вообще нужны запись и чтение?
> Они бессмысленны.

скорей всего код тестировался и был не дописан на полноценное использование. Не?


 
asails   (2010-06-05 23:04) [180]


> Юрий Зотов ©   (05.06.10 22:15) [178]

> Человек берет переменную (которой изначально присвоена константа),
>  пишет эту переменную в реестр, тут же, в этой же процедуре
> ее же из реестра читает - и все. Больше он НИГДЕ с реестром
> не работает.

Возможно, раньше работал. Потом переделал, а этот кусок остался... Атавизм, блин...

По поводу всяких SVNов и VSSов. Штука это, конечно хорошая, но не всегда доступна. Мне, например, попадается на работе старый код, писанный задолго до того, как в конторе начали использовать VSS (более 6-7 лет назад примерно). Комменты помогают понять, об чем речь. Если есть.
И у нас правило: все заливается в VSS, но комменты обязательны (и в VSS и в коде). И зачастую помогают, несмотря на наличие системы контроля версий. Быстрее просто. Вот, увидел что-то непонятное в коде, который сосед по комнате месяц назад правил, сразу его и спросить монжно. Типа, шо это за фигня? А так, лезь в VSS, смотри кто конкретно это место в юните правил. А изменений в каждом юните может быть дофига... Короче в VSS иногда чтоб только понять, кто и когда последним конкретную строчку менял, может минут 10-20 уйти. И, кстати, может оказаться, что никто не менял, а изначально так написанно...
Само собой, с коментами не надо злоупотреблять, т.е. в крайности бросаться. А то, вот индусы любители писаниной заниматься. Иногда на 2 строчки кода 50 строк комментов. Поубивав бы!!! Все хорошо в меру и к месту.
Плюс иногда нет просто физического доступа к БД VSS. Например, когда сидишь у заказчика и надо что-то смотреть в коде, чтоб объяснить, что сия функция делает, или подправить чего... Учитывая, что продукт огромный по объему, и мне например за 4 года ну, может процентов 10 кода на глаза попались. Так что каждый день открытия для себя в нашем коде делаю.

Короче, я за комментарии в коде. И не против систем контроля версий.


 
Юрий Зотов ©   (2010-06-05 23:37) [181]

> asails   (05.06.10 23:04) [180]

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


 
Германн ©   (2010-06-06 03:42) [182]

Позволю себе ещё одно замечание к тем, кто возражает ЮЗ.
Хоть мы и на ДМ, но ЮЗ - программист "внесистемный".
В частности известны его (имхо успешные) попытки программировать на Яве.
Так "об чём речь"?
Если кто-то привязан к "системе контроля версий" так, что не может никак без неё обойтись, то это его проблемы.


 
Германн ©   (2010-06-06 04:01) [183]


> Юрий Зотов ©   (05.06.10 22:15) [178]
>
> > Gydvin ©   (05.06.10 17:34) [176]
>
> > To subject
> > Может это был у чела первый заработок на стезе программиста
>
> Может. И даже похоже. И даже ОЧЕНЬ похоже. Но!
>
> Вы куски кода смотрели? Ну и как Вам кусок из постинга [2],
>  например?
>
> Человек берет переменную (которой изначально присвоена константа),
>  пишет эту переменную в реестр, тут же, в этой же процедуре
> ее же из реестра читает - и все. Больше он НИГДЕ с реестром
> не работает.
>
> Вы можете объяснить смысл этих телодвижений с реестром?
> Зачем вообще нужны запись и чтение?
>

Типичные телодвижения троешника.
Что-то сделал, но не уверен правильно ли сделал. Проверяет.
:)


 
Gydvin ©   (2010-06-06 05:45) [184]


> Германн ©   (06.06.10 04:01) [183]
> > Юрий Зотов ©   (05.06.10 22:15) [178]> > > Gydvin ©  
> (05.06.10 17:34) [176]> > > To subject> > Может это был
> у чела первый заработок на стезе программиста> > Может.
> И даже похоже. И даже ОЧЕНЬ похоже. Но!> > Вы куски кода
> смотрели? Ну и как Вам кусок из постинга [2],>  например?
> > > Человек берет переменную (которой изначально присвоена
> константа),>  пишет эту переменную в реестр, тут же, в этой
> же процедуре > ее же из реестра читает - и все. Больше он
> НИГДЕ с реестром > не работает.> > Вы можете объяснить смысл
> этих телодвижений с реестром? > Зачем вообще нужны запись
> и чтение?> Типичные телодвижения троешника.Что-то сделал,
>  но не уверен правильно ли сделал. Проверяет.:)


Где-то так.
А может быть корова, а может три медведя, а может папа с мамой, а может бегемот.

И про атавизм тоже вариант.

ЗЫ. Только не подумайте, что я оправдываю чела ))


 
@!!ex ©   (2010-06-06 08:14) [185]

> [182] Германн ©   (06.06.10 03:42)
> Если кто-то привязан к "системе контроля версий" так, что
> не может никак без неё обойтись, то это его проблемы.

Системы контроля версий работают с любыми языками.
Только школоло делает проекты без использования VCS.
Даже если нет сервера, поднять локальный репозиторий не проблема.

Может местные программисты еще и без багтрекера работают? :D


 
Anatoly Podgoretsky ©   (2010-06-06 08:35) [186]

> @!!ex  (06.06.2010 08:14:05)  [185]

Какая тебе разница, кто с чем или без чего работает, это их выбор, который
ничего о их качествах и знаниях ничего не говорит.


 
@!!ex ©   (2010-06-06 08:45) [187]

> [186] Anatoly Podgoretsky ©   (06.06.10 08:35)

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


 
Anatoly Podgoretsky ©   (2010-06-06 08:55) [188]

> @!!ex  (06.06.2010 08:45:07)  [187]

Научи, а не ной.


 
vrem   (2010-06-06 10:42) [189]

Представляю - как там - твентинейджер с деньгами и пафосом, папины деньги дали толчок и пока не кончились - сидит развалившись и смотрит на всё как на.. ну не как на деньги :)
А напротив сидит Юрий Зотов и поясняет суть изменений в коде. С нуворишными детьми нужно очень быстро и чётко объяснять, а то они отвлекаются - какая там другая программа свн, оно кому надо вообще? вот строчка кода вот комментарий - усекаешь, пафосный мальчик? да? ну хорошо, понаделали же вас таких, что за времена, вот в советские времена.. о чём это я? ах да, финализе пустой был, а теперь тут фрее(ну или что там:) вот тут видишь - да? да. ну и хорошо - не устал? устал. но доволен? - доволен. значит оплата как договаривались - да.

Вывод то может быть и другой - пафосные дети нуворишей, хоть и имеют деньги, раздражают больше, чем платят, зачем такие клиенты? но может быть и такой что свн это не то что надо, надо комментарии в коде.
*свн не пользвался, комментарии в коде нравятся больше, сообщение на правах исследования :)


 
test ©   (2010-06-06 12:34) [190]

Германн ©   (06.06.10 03:42) [182]

Программист вне категорий?))

@!!ex ©   (06.06.10 08:14) [185]

Надо рассказать об этом авторам Unix и Dos, а то может они не знают!))
А сколько написано без использования SVN, наверное они все тупые были!))

Ты удивишься но необходимый миниум для программирования: компилятор и блокнот. В прочем чтобы не быть голословным посмотри turbo pascal версии 1. Да можно облепить все вокруг новыми фишками: багтрекер, svn и тд, но как это относиться к разумному использованию коментареев?


 
Юрий Зотов ©   (2010-06-06 12:53) [191]

> vrem   (06.06.10 10:42) [189]

Какая богатая у Вас фантазия... вот если бы Вы еще и читать умели...

Напридумывали Вы, конечно, очень ярко, но... уж извините, скажу прямо - со своими домыслами торжественно сели в лужу.

Потому что с заказчиком все обстоит ровно наоборот. И об этом было сказано - см. [74], предпоследний абзац.

Чукча не читатель?


 
@!!ex ©   (2010-06-06 21:54) [192]

> [190] test ©   (06.06.10 12:34)

Не удивлюсь.
Но мы говорим про сейчас, а не про 20 лет назад.
Можно, конечно не использовать ООП, писать в блокноте и компилировать консольным компилятором, используя в качестве единственного средства дебага - лог файл...
сейчас так большой софт не пишут.


 
Leonid Troyanovsky ©   (2010-06-06 22:51) [193]


> @!!ex ©   (06.06.10 21:54) [192]

> сейчас так большой софт не пишут.

Сейчас микро, завтра - нано.

--
Regards, LVT.


 
test ©   (2010-06-07 00:17) [194]

@!!ex ©   (06.06.10 21:54) [192]

Инструмент за тебя делает массу работы, но инструмент не является панацеей, игнорировать свойства языка потому что есть инструмент, по моему не стоит. До маразма доводить коменты естественно не метод
(* a:= 5; //инициализируем переменную а числом 5*)
, но полностью игнорировать тоже самое но в другую сторону.

Потом появиться что то еще вместо svn и багтрекера, что делать будешь?
Строго в соотвествии с "Огонь и движение"?

ссылка на "Огонь и движение"
http://russian.joelonsoftware.com/Articles/FireAndMotion.html


 
Германн ©   (2010-06-07 02:13) [195]


> @!!ex ©   (06.06.10 21:54) [192]
>
> > [190] test ©   (06.06.10 12:34)
>
> Не удивлюсь.
> Но мы говорим про сейчас, а не про 20 лет назад.
> Можно, конечно не использовать ООП, писать в блокноте и
> компилировать консольным компилятором, используя в качестве
> единственного средства дебага - лог файл...

Почти моя ситуация. И не 20 лет назад, а сейчас. Никакого ООП и в помине нет и никогда не будет. Правда пишу не в блокноте, а в редакторе TP. Дебаг терпимый. Компилятор показывает ошибки в коде а встроенные возможности IDE Турбо Паскаля позволяют найти строку с ошибкой и позиционироваться на неё в редакторе.


 
Германн ©   (2010-06-07 02:29) [196]

Ну ещё одно.
Всякие внешние способы типа SVN - это конечно хорошо. И за это спасибо их авторам. Но нет внешних способов типа "всё в одном".
А комментарии - они всегда полезны.
Ну, иногда они избыточны. Но не в случае сабжа!


 
@!!ex ©   (2010-06-07 08:37) [197]

Никто не говорил об избыточности комментариев!
Говорилось об избыточности комментариев вида: "Автор, Дата изменения" и "Старый код"


 
Юрий Зотов ©   (2010-06-07 09:14) [198]

Как это часто бывает, вкус устриц обсуждают те, кто никогда их не ел...

И доказывают, что раки вкуснее. Причем доказывают тем, кто очень много раз ел и устриц, и раков.

"Ну что сказать, ну что сказать? Устроены так люди..."
(C) Пестня.

"Практика - критерий истины".
(С) Философ.


 
@!!ex ©   (2010-06-07 09:36) [199]

> [198] Юрий Зотов ©   (07.06.10 09:14)

Это на меня намек?
Зря выводы делаете столько поспешно.
У меня, конечно, нет такого опыта как у вас.
Но уж и "устриц" и "раков" "поесть" успел.


 
Sha ©   (2010-06-07 10:05) [200]

- Как пройти на Дерибасовскую?
- Давайте я лучше покажу вам, как пройти на кладбище.


 
Игорь Шевченко ©   (2010-06-07 11:29) [201]

@!!ex ©   (07.06.10 08:37) [197]


> Говорилось об избыточности комментариев вида: "Автор, Дата
> изменения" и "Старый код"


Тут рядом ветка есть о code review, так я такие комментарии если встречаю, просто вытираю. Ибо нефиг.


 
12 ©   (2010-06-07 11:46) [202]

+0.0005 коп :)

и я комментирую старый код, добавляю 12, дату, пишу новый. Иногда почему
// 12 07.06.10
//Writeln("ок");
Writeln ("Cancel");

// 12 07.06.10
//Writeln("ок");
// ибо нефиг
Writeln ("Cancel");

Контроль версий юзал разок - не понравилось, мне так понятнее.


 
test ©   (2010-06-07 14:58) [203]

Игорь Шевченко ©   (07.06.10 11:29) [201]
Причина?


 
Kerk ©   (2010-06-07 15:01) [204]


> test ©   (07.06.10 14:58) [203]

Опыта маловато. Понабрался умных слов типа SVN и умничает тут.
Гыгыгы, ЛОЛ (с) ЮЗ


 
Юрий Зотов ©   (2010-06-07 16:06) [205]

@!!ex ©   (07.06.10 09:36) [199]

Самопротиворечие. Тот, кто пробовал и устриц, и раков должен знать, что устрицы хороши под вино, а раки - под пиво. Поэтому он никогда и никому не будет доказывать, что одно вкуснее другого.

А что мы здесь видим?


 
asails   (2010-06-07 16:12) [206]


> 12 ©   (07.06.10 11:46) [202]

> Контроль версий юзал разок - не понравилось, мне так понятнее.

Верю. Если ты один с этим кодом работаешь постоянно. А если 10 чел? Там же кроме комментов ничего не видно будет.


> Игорь Шевченко ©   (07.06.10 11:29) [201]

> Тут рядом ветка есть о code review, так я такие комментарии
> если встречаю, просто вытираю. Ибо нефиг.

Твое право. Но в [24] уж слишком категорично.
Просто, если Ю.З. или мне удобнее не так, то это тоже наше право, нет?
Ну, вот ежели, ты моим начальником будешь тогда дело другое...

Имхо, если что...


 
Игорь Шевченко ©   (2010-06-07 16:28) [207]

asails   (07.06.10 16:12) [206]


> Просто, если Ю.З. или мне удобнее не так, то это тоже наше
> право, нет?


Если оно дальше вас не выходит, безусловно это ваше право. Даже если оно выходит дальше вас, покуда я не начальник - опять же, ваше право.

Я не думаю, что на форуме имеет смысл обсуждать личные пристрастия и удобства при кодировании, код для себя и код для других - это две большие разницы.


 
Германн ©   (2010-06-07 17:03) [208]


> Я не думаю, что на форуме имеет смысл обсуждать личные пристрастия
> и удобства при кодировании

А кто начал о(б)суждать?
:)


 
@!!ex ©   (2010-06-07 18:27) [209]

А личные предпочтения никто и не о(б)суждает.
Речь естественно только о командной работе.

P.S.
тверждение что с системами контроля версий работать неудобно - крайне удивительное. Просто мозг взрывается при попытке понять чего же там такого неудобного...


 
test ©   (2010-06-07 18:32) [210]

@!!ex ©   (07.06.10 18:27) [209]

<Цитата>
тверждение что с системами контроля версий работать неудобно - крайне удивительное. Просто мозг взрывается при попытке понять чего же там такого неудобного...
</Цитата>

Вместо комента сразу по месту, надо выполнять какие то действия, в том числе напрягать CVS и прочих.


 
Eraser ©   (2010-06-07 18:56) [211]

информация о том, кто правил код и когд по-моему избыточна в комментариях, для этого, как раз удобнее SVN, в т.ч. можно посмотреть кто оставлял/правил тот или иной комментарий. а вот информация о том, что делает тот или иной сложный участок кода, куда уместнее в виде комментариев. imho.

еще один интересный аспект, который тут не упомянули - документирование кода, т.е. стандартизация комментариев, в делфи есть стандартный xdoc, но, к сожалению ОЧЕНЬ глючный, хотя местами использую. вообще очень полезная вещь, особенно для больших проектов.


 
Дмитрий Белькевич   (2010-06-07 22:28) [212]

Не так давно приобрёл замечательную книгу Р. Мартин "Чистый код". Оказалась на редкость интересной, на фоне прочей макулатуры. Правда, используют плюсы и жаву в качестве языков, но принципиальной разницы нет. Почти всё, что пишут, можно и к Делфи применить.

Многое из написанного я использовал и до автора, но некоторые идеи показались новыми и интересными.

---цитата---

Комментарии не компенсируют плохого кода.

Одной из распространённых причин для написания комментариев является низкое качество кода. Вы пишете модуль и видите, что код получился запутанным и беспорядочным. Вы говорите себе "О, да это стоит прокомментировать!". Нет, лучше исправьте свой код!

Ясный и выразительный код с минимумом комментариев гораздо лучше громоздкого, сложно кода с большим количеством комментариев. Не тратьте время на написание комментариев, объясняющих созданную вами путаницу - лучше потратьте его на исправление.

---конец цитаты---

У меня комментариев в коде почти нет. Бывает, убираю в комментарий старый код. Через какое-то время, когда прошло тестирование и появилась промежуточная стабильная бета версия или релиз, старый код удаляю, что бы не захламлять сырцы.

В новых версиях сред, кстати, появился history/diff. Иногда бывает полезен.


 
sniknik ©   (2010-06-07 23:53) [213]

> Речь естественно только о командной работе.
то, что пишет ЮЗ, только я читаю? вроде как он изначально начал с того, что в одно лицо переделывает программу другого лица.
какая же это командная работа? ламер не справился, его код отдали профессионалу (типа чтобы быстрее, не с 0 писать), тот писал один, и этот будет один.

p.s. то очевидные фразы "понимают" по своему, то обсуждают вроде как в ответ автору, но выдуманное самостоятельно.


 
Германн ©   (2010-06-08 02:59) [214]


> sniknik ©   (07.06.10 23:53) [213]

Спасибо, Коля.
Ты позволил мне продолжить тему.

Комментарии с датой лично для меня очень полезны. По другим причинам чем у Ю.З.
Проект длится уже более N-лет. Иногда делаются некие изменения по желанию заказчиков. И если я/мы считаем такое изменение обоснованным, то они делаются. Но где гарантии, что введя новые изменения я не внёс ошибку?
Отладчик мне показывает строку с ошибкой. Комментарии рядом.


 
Компромисс   (2010-06-08 05:37) [215]

В некотором смысле, правы обе стороны.
При внесении больших изменений удобно использовать уникальную метку для поиска (например, YZ, xoтя я предпочитаю TODO или FIXME, чтобы IDE показывала их в списке задач) и комментировать старый код (пока отлаживаешь, очень полезно).
Но когда программа готова для записи в CVS/SVN, метки и комментарии со старым кодом должны быть удалены.
Конечно, если исходники не записываются в CVS/SVN, а передаются заказчику в обычном виде, то комментарии можно не удалять. Особенно если у заказчика никогда не было ни CVS/SVN :)


 
@!!ex ©   (2010-06-08 08:44) [216]

> [213] sniknik ©   (07.06.10 23:53)
> и этот будет один.

Каюсь. Не увидел где об этом написано. :(
Кстати, где?


 
test ©   (2010-06-08 08:46) [217]

@!!ex ©   (08.06.10 08:44) [216]
[0] ))


 
12 ©   (2010-06-08 09:21) [218]


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

тормоза в работе. Элементарное ждать приходилось.

когда работает [5,8) человек, необходимость CVS/SVN есть, согласен.
А вот если 2-3, как иногда у меня бывает, или 1-2, как в большинстве случаев (у меня, опять же :) ) - нафиг не надо.


 
@!!ex ©   (2010-06-08 09:47) [219]

> [217] test ©   (08.06.10 08:46)

Опять не увидел. :(
Процитируйте пожалуйста.


> [218] 12 ©   (08.06.10 09:21)

Контроль версий одинаково хорошо работает в больших коммандах на несколько человек и в проектах, где разработчик один.
Синхронизация изменений - это одна из важных фишек системы контроля версий, но не единственная.


 
Kerk ©   (2010-06-08 09:50) [220]


> 12 ©

Я даже лично для своих проектиков SVN поднял. Удобно же :)
Это совершенно иной уровень работы с кодом, ибо позволяет освободить голову от лишних забот.


 
RWolf ©   (2010-06-08 09:54) [221]


> [218]


Контроль версий полезен независимо от того, сколько человек работают над проектом. Даже если не затрагивать командную работу, в процессе разработки регулярно приходится решать типовые задачи:
- поднять старую версию программы (смоделировать рабочее окружение у некоего пользователя, проверить софт на совместимость и т.п.);
- сравнить исходники версии полугодовой давности с нынешними;
- вычислить причину ошибки, которой точно не было в версии 1111, в багрепорте указана версия 1234 (текущая версия проекта 2222).

Все эти задачи решаются с помощью VCS легко и естественно.


 
test ©   (2010-06-08 09:58) [222]

@!!ex ©   (08.06.10 09:47) [219]

>>Надо тут было допилить одну программу. Чужую, неизвестно кем и когда писаную. На >>Delphi. Дали мне исходники - вперед, парень, разберешься.

>>Разобрался. Редкий перл.

Неизвестный герой пионер 1 штука.
Программа 1 штука.
Переделать и исправить Юрий Зотов 1 штука.


 
@!!ex ©   (2010-06-08 09:59) [223]

> [222] test ©   (08.06.10 09:58)

Не сказано что Юрий работает один.
не сказано что после Юрия никто не будет трогать программу.


 
@!!ex ©   (2010-06-08 10:02) [224]

ПионЭр работал один, но если бы был репозиторий с изменениями я думаю Юрию было бы проще разбираться в коде.
Да и в любом случае отмазка: Я работаю один и работаю так как хочу.
Применима только к домашним проектам. Если проект после тебя будут править, будь добр пиши так ка кпринято в компании,  а не так как принято у тебя.
Поэтому первое что утверждается в компании - общий Code Convention, которому придерживаются все независимо от личных предпочтений, даже в проектах, над которыми работаю в одиночку.


 
sniknik ©   (2010-06-08 10:13) [225]

> Не сказано что Юрий работает один.
ага и написано на китайском, так что простому русскому парню не понять...

> будь добр пиши так ка кпринято в компании
как только попаду в компанию с описываемыми тобой принципами, буду добр... а пока что происходит все как ЮЗ пишет.

p.s. а можно хоть раз обсуждать именно написанное, а не выдуманное? а то просто какое то сборище тещ... которые (по анекдоту) сначала скажут потом сами себя опровергнут, а после начинают себе же противоречить.


 
@!!ex ©   (2010-06-08 10:16) [226]

> [225] sniknik ©   (08.06.10 10:13)
> ага и написано на китайском, так что простому русскому парню
> не понять...

научите читать между строк?


 
test ©   (2010-06-08 10:21) [227]

@!!ex ©   (08.06.10 10:16) [226]

>>Надо тут было допилить одну программу. Чужую, неизвестно кем и когда
>>писаную. На Delphi. Дали мне исходники - вперед, парень,
>>разберешься.

>>Разобрался. Редкий перл.

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


 
test ©   (2010-06-08 10:37) [228]

test ©   (08.06.10 09:58) [222]
Хотя если сложить точно 3 получается, странно как это я не доглядел.))


 
@!!ex ©   (2010-06-08 10:42) [229]

да не, понятно что сейчас ЮЗ один работает.
Но кто после него продукт будет развивать? Он или другой человек, или команда. не сказано.


 
test ©   (2010-06-08 10:46) [230]

@!!ex ©   (08.06.10 10:42) [229]
Программа отдается заказчику, он на свое усмотрение может закинуть ее в SVN и приделать багтрекер или сложить аккуратно в папочку написать название версия 2, по моему так.


 
Павел Калугин ©   (2010-06-08 10:51) [231]


> @!!ex ©   (08.06.10 10:42) [229]
> Но кто после него продукт будет развивать? Он или другой
> человек, или команда. не сказано.

А оно надо - развивать законченый продукт полностью удовлетворяющий требованияим заказчика? Ентот продукт использовать надо.


 
test ©   (2010-06-08 10:54) [232]

Павел Калугин ©   (08.06.10 10:51) [231]
Надо выйдет версия Windows 8 которая может быть не совместима с Windows XP, потом Windows 9 которая не совместима с Windows 7.


 
Kerk ©   (2010-06-08 10:55) [233]

По-моему, вы тут все потеряли предмет спора.


 
Anatoly Podgoretsky ©   (2010-06-08 11:01) [234]

> @!!ex  (08.06.2010 10:02:44)  [224]

Пионер любой репозиторий сможет превратить в депозиторий.


 
Anatoly Podgoretsky ©   (2010-06-08 11:03) [235]

> test  (08.06.2010 10:21:47)  [227]

Один пионер, это легкий случай, а вот толпа это сила.


 
Думкин ©   (2010-06-08 11:08) [236]

Что-то градус дискуссии упал. Неужели до 300 постов не дотянет?


 
test ©   (2010-06-08 11:13) [237]

Anatoly Podgoretsky ©   (08.06.10 11:03) [235]
Толпа студентов со студентом менеджером вот это сила!


 
sniknik ©   (2010-06-08 11:33) [238]

> По-моему, вы тут все потеряли предмет спора.
предмета спора и не было... если конечно читать/понимать смысл(хотя бы пытаться) написанное, а не спорить по придуманному.


 
Kerk ©   (2010-06-08 11:35) [239]


> sniknik ©   (08.06.10 11:33) [238]
>
> > По-моему, вы тут все потеряли предмет спора.
> предмета спора и не было... если конечно читать/понимать
> смысл(хотя бы пытаться) написанное, а не спорить по придуманному.

Что не мешало тебе спорить :)


 
Anatoly Podgoretsky ©   (2010-06-08 11:40) [240]

> Kerk  (08.06.2010 11:35:59)  [239]

Не спорить, а трепаться, теперь это "Общить"


 
Kerk ©   (2010-06-08 11:41) [241]


> Anatoly Podgoretsky ©   (08.06.10 11:40) [240]

Не "общить", а "прочить" :)


 
ocean   (2010-06-08 11:52) [242]

Хочу возразить, но конструктивно. Во-первых, чужой код a propos вызывает отвращение. Это дань усилию, которое придется потратить, чтобы разобраться. Ну написал человек try, чтобы обойти эксепшн. Думаю, многие могут привести фрагменты кода намного более убойные. Возможно, программист-силиконщик откроет текст некоторых присутствующих и тоже что-нибудь скажет. Неоптимально! Ну что вы, господа? Программа свою задачу выполняла? Заказчиком была принята? Я зачастую имею дело с компаниями-разработчиками, которых такие мелочи не интересуют. И пионер для них предпочтительнее, потому что налепит таких труднопонимаемых глюков, что заказчик без этого разработчика уже не обойдется. Вот с этим надо как-то бороться. Не знаю как. Сам MS так делает. И в-третьих, где стандарты? Дейкстра, венское соглашение о переменных? Я считаю, единственный критерий - это удобство и надежность программы для пользователя.
А теперь конструктив. Почему бы не создать на основе данного форума независимое общество, допустим ДОЛД. (добр.общ.люб.Д) Привлечь внимание добротным кодом, а далее выдавать пионерам сертификаты. Чушь? Почти. Вывод: ощущается недостаток плодотворной дебютной идеи, пока не до "чистого" кода.


 
sniknik ©   (2010-06-08 11:56) [243]

> Что не мешало тебе спорить :)
где? (риторический вопрос, а то сейчас начнется очередное "выдумывание фактов" уже по сказанному мной) по моему просто объяснил ситуацию т.к. сам попадал в такое. и вижу как "поняли" ее некоторые.
лозунгов "надо делать только так", или "ваш подход не верен в принципе" вроде нигде не выдвигал...


 
Kerk ©   (2010-06-08 12:01) [244]


> sniknik ©   (08.06.10 11:56) [243]
>
> > Что не мешало тебе спорить :)
> где?

[147]-[174]

> лозунгов "надо делать только так", или "ваш подход не верен
> в принципе" вроде нигде не выдвигал...

Ну да, ты просто не разобравшись о чем в теме речь (это видно в [170]-[174]), решил высказаться.
Я б внимания не обратил, но ты же начал с хамства: "свн-ы, контроль версий, история изменений... научились умным словам и спешите этим поделиться?"


 
test ©   (2010-06-08 12:01) [245]

ocean   (08.06.10 11:52) [242]

Мэтт Тэллес, Юань Хсих "Наука отладки"

Примеры С, С++, Java не думаю что это станет препятствием, примеры все простые только чтобы пояснить мысль. То про что ты говоришь AT&T в 1990 году испытала, были очень недовольны(*break забыли в case*), так же знаменитая история про аппарат облучающий не нужной радиацией тоже описана(*ошибка переполнения*).


 
Игорь Шевченко ©   (2010-06-08 12:17) [246]

ocean   (08.06.10 11:52) [242]


> Сам MS так делает


Врешь


> где стандарты? Дейкстра, венское соглашение о переменных?


Ты перепутал, Гаагское соглашение. От 1913 года


 
Anatoly Podgoretsky ©   (2010-06-08 12:25) [247]

> ocean  (08.06.2010 11:52:02)  [242]

Общество ДОЛБ не надо.


 
Anatoly Podgoretsky ©   (2010-06-08 12:29) [248]

> Игорь Шевченко  (08.06.2010 12:17:06)  [246]

Перепутал Бабеля с Бебелем


 
RWolf ©   (2010-06-08 13:10) [249]


> test ©   (08.06.10 12:01) [245]
> Мэтт Тэллес, Юань Хсих "Наука отладки"

эту книгу можно где-нибудь в сети найти? я как-то пробовал поискать, безуспешно.


 
ocean   (2010-06-08 13:17) [250]

> > Сам MS так делает> Врешь
Откуда столько эмоций? MS набирает студентов:
https://careers.microsoft.com/careers/ru/ru/diversity.aspx
Постоянное исправление багов входит в архитектуру большинства продуктов MS и де факто стало частью нашей повседневной жизни. Является ли оптимальным код MS Office с его объемом? Через какую ж... делали его автоматизацию и многое другое? Поясни, на что ты обиделся.

Вообще, как сказал вчера Жванецкий, мы живем в эпоху Остапа Бендера. Батурина заработала за год миллиард долларов. А я уверен, что пионер - афтар приведенных фрагментов - в 1000 раз толковее ее. Так что пусть пионеры дерзают, а заказчики знают что делают.


 
Павел Калугин ©   (2010-06-08 13:52) [251]


> test ©   (08.06.10 10:54) [232]
> Надо выйдет версия Windows 8 которая может быть не совместима
> с Windows XP, потом Windows 9 которая не совместима с Windows
> 7.

Выйти то она выйдет только кто ее купит, если и в текущей версии все хорошо работает. Если какой-нибудь пальцегнущий одмин и продавит апдейт - это его грабли будут.


 
12 ©   (2010-06-08 13:53) [252]

всем работать!

А так.., да - спрос рождает предложения
Значит, был спрос на пионеров

Зы

> Батурина

забыл было кто это, погуглил
как нашел, сразу почему-то вспомнил Место вречи..
..ну и рожа у тебя, Шарапов...
даже не так обидно, как-то стало вдруг :)
Пусть хоть по-ворует еще немного, в утешение..


 
Игорь Шевченко ©   (2010-06-08 13:54) [253]


> Откуда столько эмоций?


ламеры раздражают


 
Дмитрий Т   (2010-06-08 13:57) [254]


> ocean   (08.06.10 11:52) [242]

Возможно, что мы (разработчики) придем к СРО - саморегулируемым организациям. Сейчас так в аудите. Недавно сделали.
Лицензии еще будут )


 
Павел Калугин ©   (2010-06-08 14:00) [255]


> ламеры раздражают

Люблю раздражать модераторов :)


 
Игорь Шевченко ©   (2010-06-08 14:00) [256]

Павел Калугин ©   (08.06.10 13:52) [251]


> Выйти то она выйдет только кто ее купит, если и в текущей
> версии все хорошо работает.


ты и купишь. выйдет очередной архикад с кучей супер-пупер фенек, но под новую венду.


 
Павел Калугин ©   (2010-06-08 14:06) [257]


> ты и купишь. выйдет очередной архикад с кучей супер-пупер
> фенек, но под новую венду.

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

Опять же речь о том, что задача рашена полностью. Задача заказная, то есть только для одного клиента. Смысла развивать чтобы наращивать продажи никакого.


 
Игорь Шевченко ©   (2010-06-08 14:17) [258]

Павел Калугин ©   (08.06.10 14:06) [257]


> Задача заказная, то есть только для одного клиента. Смысла
> развивать чтобы наращивать продажи никакого.


Мы про винду или про что ?


 
Павел Калугин ©   (2010-06-08 14:18) [259]


> Мы про винду или про что ?

Или про что. Про то, что выход на рынок новой винды не повод покупать оную и переписывать под нее существующее и работающее ПО.


 
Anatoly Podgoretsky ©   (2010-06-08 14:41) [260]

> Павел Калугин  (08.06.2010 14:18:19)  [259]

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


 
Игорь Шевченко ©   (2010-06-08 14:43) [261]

Павел Калугин ©   (08.06.10 14:18) [259]


> Про то, что выход на рынок новой винды не повод покупать
> оную и переписывать под нее существующее и работающее ПО.
>


Смотря для кого не повод. Винда же не просто так выходит, она же чем-то отличается от предыдущей версии, иногда в лучшую сторону. Лично тебя конечно никто не заставляет покупать свежевышедшую версию, но разработчики не только на тебя ориентируются, не так ли ?


 
Павел Калугин ©   (2010-06-08 15:10) [262]


> Лично тебя конечно никто не заставляет покупать свежевышедшую
> версию, но разработчики не только на тебя ориентируются,
>  не так ли ?

Абсолютно в дырочку. Если ПО разрабатывается на перспективу продать его более чем одному клиенту.
Если же ПО разрабатывается для единственного заказчика желающего работать здесь и сейчас, удобно быстро и эффективно то какой смысл думать про то, что ему через 5 лет захочется перейти на другую ОС? Захочет - придет даст денег за доделку. Не захочет придти и дать денег - его персональные похороны.


 
Медвежонок Пятачок ©   (2010-06-08 15:15) [263]

Захочет - придет даст денег за доделку. Не захочет придти и дать денег - его персональные похороны.

Многие разрабы именно так по жлобски и поступают.


 
test ©   (2010-06-08 15:25) [264]

Медвежонок Пятачок ©   (08.06.10 15:15) [263]

Был такой старый анекдот:
-Только если нам потребуется чуть чуть доработать внести маленькие изменения вы же внесете? Естественно мы не будем просить переписать вас весь код, так по мелочи.
-Да без проблем, только я к вам буду заходить иногда за деньгами ничего да? Естественно я не буду просить еще раз ту же сумму, так на пиво.

Есть такое волшебное слово сопровождение.


 
Медвежонок Пятачок ©   (2010-06-08 15:28) [265]

Есть такое волшебное слово сопровождение.

Я когда-то купил аверовский тюнер. Хороший. Дорогой. С аппаратным мпегом.
Затем вышли виста и вин7.
Дров нет и не предвидится.

Следуя этой же жлобской логике, мне следует доплатить аверу за разработку дров под семерку.

Пример конечно очень частный, про дрова. Но примеров про ПО у меня тоже есть.


 
12 ©   (2010-06-08 15:30) [266]

Вообще, с состоянием самописного ПО - бардак..
если в целом :)
Еще хорошо, если его писали люди, типа некоторых отсюда, не буду называть, что б никого не обидеть

А в остальном ситуация в некоторых местах аховая, с буквой п в начале
Доводилось видеть FoxPro 2/5, худо-бедно пашущей в солиднейших организациях.
Что самое удивительно - на его написание еще дают заказы.

Никакие клиент-серверные технологии не нужны им и в помине
Каждый юзер колотит свое файло, потом админ(компьютерщик/программист для них это едино) собирает все файлы в один.
Делается ревизия, исправления и эти файлы раздаются. Опять каждый начинает колотить в свой.
Для поддержания актуальности исп. VPN неимоверной скорости, по нему файлики кидаются чуть ли не каждые 5 минут
Админ/программист, если не совсем бестолочь, пишет софтинку, коотрая собирает все это дело. Если нет - "работает" весь день руками и получает еще благодарности!
Авторы чуда выпускает новые версии, стригут капусту и проблемы индейцев никого не волнуют.

Министерство труда и занятости, например, у нас так работает.
До недавнего времени (а может и сейчас, не знаю, давно там не появлялся) - Министерство здравоохранения. Там вообще, кстати, разработчики приехали со своей клипперной программкой, а установить на NT не могут..
Я сижу, играю в кваку.. Они злятся, типа я играю, а они софт нам привезли.
Говорю им, что 1. обед, что 2. софт поставить - их дело, что 3. автоекзеки править надо знать где, раз такое бабло вам дают, а вы ни в зуб ногой в установке собственной программы.Они, типа, мы под NT не ставили..
Я  - а я вообще не ставил ни под чего, но тем не менее поставить смогу.
Они - ставь
Я - не хочу :)
Потом начальник пришел, поставил все-таки..
И купили кажись, и работали в ЛПУ на этой программе.
(Кстати, говорят, что предметная часть в ней неплохая была, В отличии от первого примера, где один отчет противоречит другому, а справка какая-нибудь, выданная программой обоим этим отчетам.
Это так, чтоб уж совсем не чернить, вторых.)

Иногда такая злость берет - хоть Медведеву пиши :)


 
test ©   (2010-06-08 15:31) [267]

RWolf ©   (08.06.10 13:10) [249]
Русское издательство Кудиц образ (рус)
Международное издательство Coriolis
Название русское Наука отладки
Название иностранное The science of Debugging
Авторы на русском Мэтт Теллес Юань Хсих
Авторы на иностранном Matt Telles, Yuan Hsieh
Год выпуска 2003

У меня бумажная копия, шибко книга нравиться.


 
RWolf ©   (2010-06-08 15:35) [268]


> Медвежонок Пятачок ©   (08.06.10 15:28) [265]
> Следуя
> этой же жлобской логике, мне следует доплатить аверу за
> разработку дров под семерку.

Разработчикам драйверов авер зарплату платит.


 
Медвежонок Пятачок ©   (2010-06-08 15:37) [269]

Разработчикам драйверов авер зарплату платит.

Мне до мохнатой сумочки кто там и кому платит.
Но дров под семерку/висту для AVER TV PVR нету и не будет.


 
test ©   (2010-06-08 15:40) [270]

Медвежонок Пятачок ©   (08.06.10 15:28) [265]
Когда купил?
Сопровождение оно не пожизненное, оно по какому то гарантийному сроку дальше за деньги(*привет МС давно это продавливали*).


 
Медвежонок Пятачок ©   (2010-06-08 15:42) [271]

Купил в 2006


 
test ©   (2010-06-08 15:43) [272]

Медвежонок Пятачок ©   (08.06.10 15:37) [269]
Переходи на Unix там такого кидалава раз за разом не наблюдается ИМХО конечно.


 
RWolf ©   (2010-06-08 15:44) [273]


> Медвежонок Пятачок ©   (08.06.10 15:37) [269]

речь о том, кто будет платить зарплату разработчикам из [263] ?


 
Anatoly Podgoretsky ©   (2010-06-08 15:45) [274]

> Медвежонок Пятачок  (08.06.2010 15:28:25)  [265]

Пример не хороший, с железом иначе, ПО для него дается бесплатно и
производителю еще надо потрудиться, что бы я выбрал именно его железо, а не
другое. С программами строго наоборот, за железо (компьютер) автор ничего не
просит, только за программу.


 
Медвежонок Пятачок ©   (2010-06-08 15:46) [275]

речь о том, кто будет платить зарплату разработчикам из [263] ?

О том, что вендору мной было заплачено за девайс конечно можно уже не вспоминать.


 
Павел Калугин ©   (2010-06-08 15:47) [276]

> Медвежонок Пятачок ©   (08.06.10 15:15) [263]
> Многие разрабы именно так по жлобски и поступают.

Как бы сказать. Благотворительностью занимается Красный Крест, а не разработчики ПО.


 
Anatoly Podgoretsky ©   (2010-06-08 15:48) [277]

> test  (08.06.2010 15:31:27)  [267]

И это два тех же человека, а не восемь разных.


 
Медвежонок Пятачок ©   (2010-06-08 15:49) [278]

Как бы сказать. Благотворительностью занимается Красный Крест, а не разработчики ПО.

У вас уже купили копию ПО.
Какая здесь благотворительность?

Или ПО не планируется продавать тем кто на свежей оси сидит изначально?


 
Anatoly Podgoretsky ©   (2010-06-08 15:49) [279]

> Медвежонок Пятачок  (08.06.2010 15:37:29)  [269]

Переругивайся с Авером, хотя я ответ за ранее знаю, мол купите эту версию,
она разработана для Seven, а для данной версии нет, но мы готовы разработать
если вы готовы оплатить разработку.


 
Павел Калугин ©   (2010-06-08 15:49) [280]


> Но дров под семерку/висту для AVER TV PVR нету и не будет.

А оно еще производится? А сколько лет как снято с производства? И новые устройства с новыми примочками продавать не надо?


 
Павел Калугин ©   (2010-06-08 15:50) [281]


> Или ПО не планируется продавать тем кто на свежей оси сидит
> изначально?

По разработано и передано заказчику. Больше его продавать не планируется. Все. на этом точка.


 
Anatoly Podgoretsky ©   (2010-06-08 15:53) [282]

> Медвежонок Пятачок  (08.06.2010 15:46:35)  [275]

Конечно можно не вспоминать, они свои обязанности выполнили, продали
комплекс устройство + ПО, и больше ничем не обязаны.


 
Медвежонок Пятачок ©   (2010-06-08 15:54) [283]

А оно еще производится? А сколько лет как снято с производства?

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


 
turbouser ©   (2010-06-08 15:55) [284]


> Медвежонок Пятачок ©   (08.06.10 15:37) [269]

Для Aver 507 - есть драйвера. Для PVR тоже должны быть


 
test ©   (2010-06-08 15:55) [285]

Медвежонок Пятачок ©   (08.06.10 15:54) [283]
И за это время никто не послал письмо с требованием "Где мои дрова для Windows 7 падщая женщина?"


 
Медвежонок Пятачок ©   (2010-06-08 15:57) [286]

Для Aver 507 - есть драйвера. Для PVR тоже должны быть

Хренушки.

И за это время никто не послал письмо с требованием "Где мои дрова для Windows 7 падщая женщина?"


Пилили ихний форум техсаппорта. Всем гуртом. И так и не выпилили.


 
Anatoly Podgoretsky ©   (2010-06-08 15:58) [287]


> Она спустя полгода после покупки уже была.

В 2006 году уже требовал драйверы для Windows 7


 
turbouser ©   (2010-06-08 16:00) [288]


> Медвежонок Пятачок ©   (08.06.10 15:57) [286]


> Хренушки.

Мда. Действительно. Даже странно.
http://www.avermedia.com/avertv/support/Download.aspx?Type=Software&id=43&tab=APDriver


 
Anatoly Podgoretsky ©   (2010-06-08 16:04) [289]

> Медвежонок Пятачок  (08.06.2010 15:57:46)  [286]

Потому что хотели на халяву, еще раз получить часть продукта, а он отдельно
не продается, разве что у фирмы есть лишнии деньги и команда для разработки.


 
Игорь Шевченко ©   (2010-06-08 16:07) [290]

Медвежонок Пятачок ©   (08.06.10 15:37) [269]

А для behold есть. Вывод ? :)


 
Медвежонок Пятачок ©   (2010-06-08 16:14) [291]

Вывод ? :)

Ну все верно.
По итогу у меня просто открылась форточка и он со свистом полетел в недалекие края.

Благо есть теперь чем его кардинально заменить в части каптуринга.


 
Anatoly Podgoretsky ©   (2010-06-08 16:27) [292]

> Медвежонок Пятачок  (08.06.2010 16:14:51)  [291]

Вот это правильно, но проблема снова встанет с новой ОС. Выгоднее не биться
головой об стену, а просто менять модель на более современную с поддержкой
нужной ОСи.


 
Павел Калугин ©   (2010-06-08 16:34) [293]


> Anatoly Podgoretsky ©   (08.06.10 16:27) [292]

Или не менять ОС.


 
Медвежонок Пятачок ©   (2010-06-08 16:38) [294]

я поменял парадигму.
купил медиаплеер. точнее медиарекордер.
вещь крайне удобная и полезная.


 
test ©   (2010-06-08 16:46) [295]

Павел Калугин ©   (08.06.10 16:34) [293]
Когда все резко поменяли ОС, а ты один со старьем приходится менять ОС.


 
vrem   (2010-06-08 16:52) [296]

Автор, давайте помиримся :)
http://www.youtube.com/watch?v=TMwKP4BKdGg


 
Юрий Зотов ©   (2010-06-08 16:53) [297]

> @!!ex ©   (07.06.10 18:27) [209]
> А личные предпочтения никто и не о(б)суждает.
> Речь естественно только о командной работе.

Смеялся долго.
:o)


 
test ©   (2010-06-08 16:54) [298]

vrem   (08.06.10 16:52) [296]
Дык, давно уже никто не ругается, даже не спорит, просто обсуждение.


 
Павел Калугин ©   (2010-06-08 17:06) [299]


> test ©   (08.06.10 16:46) [295]
> Когда все резко поменяли ОС, а ты один со старьем приходится
> менять ОС.

Зачем?


 
test ©   (2010-06-08 17:12) [300]

Павел Калугин ©   (08.06.10 17:06) [299]
Потому что НАДА! При резкой смене  3.11(dos) на 98(NT) сколько осталось за бортом?


 
Павел Калугин ©   (2010-06-08 17:16) [301]


> Потому что НАДА!

кому нада?


 
Медвежонок Пятачок ©   (2010-06-08 17:18) [302]

тому кто не хочет за борт.

хотя клиппер - сила (был)


 
test ©   (2010-06-08 17:25) [303]

Павел Калугин ©   (08.06.10 17:16) [301]
Программу для кого пишешь? Вот как у пользователя поменяется мировозрение так и станет НАДА, доказывать что все это есть в более логичном исполнении в Linux/BSD считай смертный приговор "красноглазик". Нада что бы с знакомствами и играми (*Windows*), его ставят на новые компы без спроса, его требует новое железо потому что НАДА. Точно так же нада новый смарт фон с процессором в 1.2 Гигагерца на борту, да ты по нему максимум звонить будешь и читать SMS, но нада потому что.


 
Павел Калугин ©   (2010-06-08 17:28) [304]


> Программу для кого пишешь? Вот как у пользователя поменяется
> мировозрение так и станет НАДА,

О. сам сказал. Заказчику нада. А если емук нада то он сам и придет к разработчику и скажет Мне ос новая нада. Потому перепиши своя программа, чтоб под ней рабботала. А то новый красивый сапер работает а твоя программа нет. И разработчик с удовольствием сделает все от него зависящее в рамках оплаченной суммы. Или не так?


 
Anatoly Podgoretsky ©   (2010-06-08 18:54) [305]

> Павел Калугин  (08.06.2010 17:28:04)  [304]

В рамках оплаченной суммы это неправильно, надо больше.


 
_Юрий ©   (2010-06-08 19:46) [306]

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


 
Leonid Troyanovsky ©   (2010-06-08 20:59) [307]


> _Юрий ©   (08.06.10 19:46) [306]

> для него, не работает на старой платформе, а наше творение
> не работает на новой.

Так и объяснить: мало денег для работы на новой.

--
Regards, LVT.


 
Petr V. Abramov ©   (2010-06-08 22:55) [308]

при заказных разработках, "мы, цыгане, с одной стороны, и одесское морское пароходство, с другой стороны", обычно пишется: "ПО должно работать под windows такой-то версии без глюков"


 
Marser ©   (2010-06-09 03:12) [309]


> Юрий Зотов ©   (03.06.10 08:10) [3]
>
> > boriskb ©   (03.06.10 07:42) [1]
>
> Сколько заплатил пионэру - не знаю. Опыт подсказывает, что
> "программер" столь низкой квалификации - это именно пионэр,
>  а пионэрам, как известно, много не платят.

На современном жаргоне это махровый быдлокодер :)


 
Германн ©   (2010-06-09 03:19) [310]


> Marser ©   (09.06.10 03:12) [309]
>
>
> > Юрий Зотов ©   (03.06.10 08:10) [3]
> >
> > > boriskb ©   (03.06.10 07:42) [1]
> >
> > Сколько заплатил пионэру - не знаю. Опыт подсказывает,
>  что
> > "программер" столь низкой квалификации - это именно пионэр,
>
> >  а пионэрам, как известно, много не платят.
>
> На современном жаргоне это махровый быдлокодер :)

Тёзка. Не надо ругать кого бы то ни было, не зная фактов.


 
SP   (2010-06-09 12:15) [311]


> Marser ©   (09.06.10 03:12) [309]
>
>
> > Юрий Зотов ©   (03.06.10 08:10) [3]
> >
> > > boriskb ©   (03.06.10 07:42) [1]
> >
> > Сколько заплатил пионэру - не знаю. Опыт подсказывает,
>  что
> > "программер" столь низкой квалификации - это именно пионэр,
>
> >  а пионэрам, как известно, много не платят.
>
> На современном жаргоне это махровый быдлокодер :)


хз. Но эти "пионэры" разводятся благодаря желающим сэкономить работодателям. так что еще не ясно кто из них хуже...


 
Юрий Зотов ©   (2010-06-09 22:15) [312]

Уфффф. Пишу с нуля, родил структуру, почти сделал движок. Думаю, сегодня его довинчу и надо будет приступать к плагинам. К прикладухе, то есть.

Устал здорово... а еще пару часов посидеть, наверное, придется... люди, пожалейте меня... я же и правда не жадный, я почти не из-за денег, чес-слово....

"Тяжела и неказиста жизнь простого программиста"
(с) Кто-то.


 
Kerk ©   (2010-06-09 22:41) [313]


> Юрий Зотов ©   (09.06.10 22:15) [312]

Решил все-таки заново? Читал недавно об исследовании, что если проект нужно переделывать более, чем на 20%, то дешевле переписать его заново. Тот случай или просто личное предпочтение?


 
Юрий Зотов ©   (2010-06-09 23:02) [314]

Kerk ©   (09.06.10 22:41) [313]

По-моему, все же тот случай. Уж больно много там грязи, в ней разбираться и править ее, да еще не меняя идеологии - это больше времени потратишь.

Хотя и личное предпочтение тоже. Поскольку за работу отвечать теперь уже мне, то я хочу отвечать за свои огрехи, а не за чужие.


 
Kerk ©   (2010-06-09 23:08) [315]

старенькое в тему :)
http://delphimaster.net/view/14-1106553402


 
turbouser ©   (2010-06-09 23:48) [316]


> Юрий Зотов ©

Удачи!


 
Jeer ©   (2010-06-10 00:26) [317]

Бог мой, сколько же слов нужно, в том числе - лишних, чтобы понять/принять аксиому: "Все мое ношу с собой" :)


 
turbouser ©   (2010-06-10 00:37) [318]


> Jeer ©   (10.06.10 00:26) [317]


> чтобы понять/принять аксиому: "Все мое ношу с собой" :)

Это не аксиома :) Это лайфстайл :)


 
Германн ©   (2010-06-10 01:39) [319]


> Jeer ©   (10.06.10 00:26) [317]


> turbouser ©   (10.06.10 00:37) [318]

Невнимательно вы оба читали обсуждение.
Тут есть ещё один важный момент, на который Юрий в конце концов решил плюнуть учтя что "личное здоровье прежде всего!"!
Сделав всё заново - трудно объяснить заказчику какой объем работы пришлось выполнить. Даже если заказчик что-то понимает в коде.
:)


 
turbouser ©   (2010-06-10 01:45) [320]


> Германн ©   (10.06.10 01:39) [319]


> Невнимательно вы оба читали обсуждение

я внимательно читал.

> Сделав всё заново - трудно объяснить

вовсе нет.


 
Германн ©   (2010-06-10 02:05) [321]


> turbouser ©   (10.06.10 01:45) [320]


> вовсе нет.
>

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


 
turbouser ©   (2010-06-10 02:14) [322]


> Германн ©   (10.06.10 02:05) [321]


> Вот ты ответь.

Сейчас примерно тем же занимаюсь. (да, да.. с 0 пришлось все переделывать)
И раньше приходилось не раз.
А Тебе?


 
Jeer ©   (2010-06-10 02:23) [323]

Почитав сей опус, хочу признаться в страшном - мне повезло в этой жизни.

Я ни разу и ни за кем ничего не переделывал !

Только с нуля, только с чистого листа !

Когда перед тобой чистый лист бумаги, слабо очерченная проблема и ты, приступая к волшебству, создаешь на бело-пергаментном листе бумаги наброски Великого решения Невзрачной задачи..

Это Кайф неописуемый, это Смысл жизни.. Ради этого мы и живем.


 
Германн ©   (2010-06-10 03:07) [324]


> Jeer ©   (10.06.10 02:23) [323]


> Jeer ©   (10.06.10 02:23) [323]
>
> Почитав сей опус, хочу признаться в страшном - мне повезло
> в этой жизни.
>
> Я ни разу и ни за кем ничего не переделывал !
>
> Только с нуля, только с чистого листа !
>

Ну повезло.


 
Германн ©   (2010-06-10 03:18) [325]


>
> > Германн ©   (10.06.10 02:05) [321]
>
>
> > Вот ты ответь.
>
> Сейчас примерно тем же занимаюсь. (да, да.. с 0 пришлось
> все переделывать)
> И раньше приходилось не раз.
> А Тебе?
>

Не передёргивай. Исторически речь  не шла о "переделывании заново с нуля".


 
Германн ©   (2010-06-10 03:27) [326]

С нуля многие из нас горазды! Да все почти.
Только в реальной жизни.
Если кто-то готов платить за твой код, то ...


 
Юрий Зотов ©   (2010-06-10 09:33) [327]

Ура! Движок задышал! Еще есть недостатки в его интерфейсе с плагинами, но это нормально, сразу всего не предусмотришь. Главное - это то, что архитектура действительно была выбрана и реализована в целом правильно, плагины пишутся "на раз" (просто наследуешь класс плагина от уже готового базового, перекрываешь несколько простейших методов - и плагин сразу работает, и сразу правильно взаимодействует с движком, и для этого почти ничего не надо писать, можно сосредоточиться на прикладном функционале самого плагина). И программа получается бесконечно расширяемой, и плагины может писать кто угодно - красотишша, елы-палы!

А непредусмотренные сразу мелочи постепенно рассосутся, в процессе.

PS
Кстати, о птичках - тут некоторые могут не поверить, но коде (хотя в нем уже несколько тысяч строк и многие из них в процессе отладки менялись далеко не раз) пока что нет ни единого комментария типа //YZ.

И не будет.
:o)


 
Anatoly Podgoretsky ©   (2010-06-10 09:35) [328]

> Германн  (10.06.2010 01:39:19)  [319]

Объяснение: пришлось все с нуля делать!


 
Anatoly Podgoretsky ©   (2010-06-10 09:37) [329]

> Германн  (10.06.2010 03:18:25)  [325]

Исторически, смеяться хочется, но слезы мешают.


 
Бывалый   (2010-06-10 13:45) [330]

Может стоило взять Eclipse? Уже готовый бесконечно расширямый плагинами движок. Беспланый, с открытым кодом, с миллионной аудиторией пользователей. Или надо принципиально писать на свой велосипед?


 
test ©   (2010-06-10 13:49) [331]

Юрий Зотов ©   (10.06.10 09:33) [327]
А ссылка есть посмотреть подобное в действии с исходниками или в виде статьи?


 
@!!ex ©   (2010-06-10 14:04) [332]

> [330] Бывалый   (10.06.10 13:45)
> Уже готовый бесконечно расширямый плагинами движок.

А вы знаете ЧТО нужно Юрию? С чего вы решили что Эклипс подходит??


 
boriskb ©   (2010-06-10 14:12) [333]

Можно только посочуствовать некоторым участникам  спора, ибо, видно очень скучная у них жизнь раз такого рода развлечения предпочитают :))


 
Бывалый   (2010-06-10 14:15) [334]

С чего решил? Раз до Юрия ЭТО писал пионэр, то уж Eclpise справится, как два пальца об асфальт. Дедукция, Ватсон.


 
test ©   (2010-06-10 14:17) [335]

Бывалый   (10.06.10 13:45) [330]
Qt там еще проще есть QScript на нем как угодно изголяйся. Но заказчику нужен Дельфи...


 
Anatoly Podgoretsky ©   (2010-06-10 14:42) [336]

> test  (10.06.2010 14:17:35)  [335]

Заказчику надо решение его задачи/проблемы, а не Дельфи.


 
Kerk ©   (2010-06-10 14:46) [337]


> Бывалый

Жжошь!


 
Юрий Зотов ©   (2010-06-10 18:07) [338]

> Бывалый   (10.06.10 13:45) [330]

1. Делать плагины в Delphi ничуть не сложнее, чем в Eclipse.

2. Пришлось бы еще и переводить на другой язык прикладной функционал (а он достаточно сложен), поэтому вероятность ошибки возросла бы.

3. Хотя Eclipse я юзаю (на работе), но Delphi все равно знаю намного лучше. Естественно использовать тот инструмент, который для тебя привычнее - особенно если учесть, что сроки не резиновые.

4. Визуальный интерфейс программы достаточно сложен. А как раз в отношении скорости и удобства реализации визуального интерфейса Delphi практически вне конкуренции. А сроки, как уже отмечалось, не резиновые.

> Или надо принципиально писать на свой велосипед?

Никаких велосипедов. Любая Delphi программа (включая и саму Delphi), по сути, состоит из движка (EXE) и набора плагинов (BPL). Динамическая загрузка/выгрузка BPL, их регистрация, возможность внедрения своего кода в процесс загрузки и т.п. тоже предусмотрены.

Поэтому - о каких велосипедах вообще может идти речь? Это всего лишь использование средств, для того и предзначенных. Практически то же самое, что и в Eclipse.


 
jack128_   (2010-06-10 22:21) [339]


> 4. Визуальный интерфейс программы достаточно сложен. А как
> раз в отношении скорости и удобства реализации визуального
> интерфейса Delphi практически вне конкуренции.

был 10 лет назад. По сравнению с WPF на любом хоть чуть-чуть не стандартном интерфейсе дельфя отровенно лажает..


 
Игорь Шевченко ©   (2010-06-10 22:36) [340]

jack128_   (10.06.10 22:21) [339]

а что такое WPF и почему delphi по сравнению с ним "откровенно лажает" ?


 
test ©   (2010-06-11 10:48) [341]

Игорь Шевченко ©   (10.06.10 22:36) [340]
С# + .Net это у них так RAD система завется.


 
jack128_   (2010-06-11 23:36) [342]


> а что такое WPF и почему delphi по сравнению с ним "откровенно
> лажает" ?

дот нетовская гуёвая библиотека. А лажает дельфя хотя бы тем, что в отличии в от WPF в дельфи внешний вид контрола жестко сшит с логикой работы этого котрола.


 
Игорь Шевченко ©   (2010-06-11 23:52) [343]

jack128_   (11.06.10 23:36) [342]


> что в отличии в от WPF в дельфи внешний вид контрола жестко
> сшит с логикой работы этого котрола.


Не совсем понимаю, а что, в WPF Edit может выглядеть как Listbox ?
Вроде как все контролы имеют внешний вид, подходящий для логики их работы. Нельзя ли подробнее ?


 
DVM ©   (2010-06-11 23:55) [344]


> внешний вид контрола жестко сшит с логикой работы этого
> котрола.

в WPF все то же самое практически.


 
DVM ©   (2010-06-11 23:58) [345]

У WPF на современных машинах есть серьезное преимущество в виде аппаратной поддержки и ускорения - это да. А вот насчет отделения логики от внешнего вида - не все так очевидно.


 
test ©   (2010-06-12 01:28) [346]

jack128_   (11.06.10 23:36) [342]

Если только не самопал, то вполне переключается внешний вид вместе с внешним видом для элементов всей системы. Про что речь?


 
turbouser ©   (2010-06-12 01:37) [347]


> jack128_   (10.06.10 22:21) [339]


> был 10 лет назад. По сравнению с WPF на любом хоть чуть-
> чуть не стандартном интерфейсе дельфя отровенно лажает..
>

Не верю. Примеры микрософтовские видел - не впечатлило.


 
Германн ©   (2010-06-12 03:57) [348]


> DVM ©   (11.06.10 23:58) [345]
>
> У WPF на современных машинах есть серьезное преимущество
> в виде аппаратной поддержки и ускорения - это да.

Сомневаюсь я однако.


 
DVM ©   (2010-06-12 10:00) [349]


> Германн ©   (12.06.10 03:57) [348]


> Сомневаюсь я однако.

В чем? Действительно отрисовка WPF выполняется DirectX. Ну и масштабирование разное замечательно работает - под любым разрешением выглядит одинаково. Плюсов там масса, но это вообще другой подход, другая идеология построения интерфейса и сравнивать ее со стандартным интерфейсом некорректно.

Вообще странна MS. Сначала пела песни про унификацию интерфейса всех программ (после ДОС) и как хорошо теперь заживем, что пользователю не придется переучиваться каждый раз и элементы управления легко узнаваемы. Теперь же с эти WPF все может выглядеть ну настолько разным, что порой и не догадаешься что и где.


 
jack128_   (2010-06-12 10:55) [350]

>> Игорь Шевченко

Вообще по WPF пишут книги, в одном посте сложно описать.

Что лично меня больше всего в wfp порадовало, так это композиция контролов. То есть состовление из одних контролов, других-более сложных. В дельфи с этим туго.
Например что такое по сути Bitbtn? Это кнопка на которую кинули TImage + TLabel.
Но нет,  в дельфи Bitbtn - это отдельный контрол, который сам ручками рисует картинку.
Как мне отобразить список картинок? В WPF листбокс отображает список чего угодно. Список TLAbel"ов, пожалуйста. Список TImage"ей - сколько угодно.  В дельфе - такое не катит, для списка строк - один контрол, для списка картинок другой контрол.
И так по любому контролу можно пройтись...

Интересный подход с позиционирование элементов (вроде в джава такое же используют) - очень редко где в явном виде задается Top/Left,  практически везде используются панели(контролы, которые сами управляют расположением дочерних элементов) - такой подход в результате дает реально маштабируемый интерфейс, безо всяких уезжаний элементов, при изменении размеров окон, или шрифтов, или добавлении/удалении контролов на форму.. В принципе похожий эфект можно получить и на дельфи (если юзать Margin/Padding, якоря/алигны и панели) только будет не так удобно.

Ну набор красявостей всяких чисто в графическом плане (DirectX все таки)
Вообще  в WPF все хорошо, кроме высокого порога вхождения. Для того чтоб им уметь эффективно пользоваться нужен достаточно большой опыт и мозги. Дельфиский подход конечно более простой..


 
инспектор   (2010-06-12 15:14) [351]


> Для того чтоб им уметь эффективно пользоваться нужен достаточно
> большой опыт и мозги.


Ерунда


 
turbouser ©   (2010-06-12 15:22) [352]


> jack128_   (12.06.10 10:55) [350]


> Вообще  в WPF все хорошо, кроме высокого порога вхождения.

:)))
В общем, ничего позитивного :) Еще один фреймворк для веб. Не вижу плюсов.


 
test ©   (2010-06-12 15:35) [353]

jack128_   (12.06.10 10:55) [350]
ХА, ХА - ХА - ХА. Это было в Симпсонах! Батерс Стотч, Южный парк(с)

Все то же самое в Qt, только отрисовка в OpenGL. Ну и  что? Только Qt несколько раньше появился. Как там с системой слотов/сигналов? Как там с перехватчиками/обработчиками событий?


 
jack128_   (2010-06-12 19:13) [354]


> Как там с системой слотов/сигналов?

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

button.Click += (sender, args) => MessageBox.Show("Обработчик1");
button.Click += (sender, args) => MessageBox.Show("Обработчик2");

при нажатии кнопки появится 2 мессадж бокса. Но это все не относится к WPF.


> Еще один фреймворк для веб.

для десктоп. силверлайт - не роляет ИМХО...Кроме каких нить intranet-сайтов


 
test ©   (2010-06-12 20:34) [355]

jack128_   (12.06.10 19:13) [354]
Тогда  чем уникальность WPF, что он все что было написано до него забарывает?


 
jack128_   (2010-06-12 21:32) [356]


> Тогда  чем уникальность WPF, что он все что было написано
> до него забарывает?

Э-э-э, а я утверждал что WPF уникален?? Я вообще то указывал на  преимущества WPF перед Дельфи/VCL, не более того. Внимательней на контекст разговора посмотри ;-)


 
инспектор   (2010-06-12 21:51) [357]


> Я вообще то указывал на  преимущества WPF перед Дельфи/VCL


нет никаких преимуществ. все, что можно сделать в одном фреймворке, можно сделать и в другом. тормоза у WPF есть по сравнению с Delphi, как у всех .Net приложений.


 
jack128_   (2010-06-12 22:04) [358]


> нет никаких преимуществ. все, что можно сделать в одном
> фреймворке, можно сделать и в другом.

точно. А впрочем - нахрен вообще эти фреймвоки -все равно можно на winapi все написать.


 
инспектор   (2010-06-12 23:02) [359]

jack128_   (12.06.10 22:04) [358]


> все равно можно на winapi все написать


Для этого мозги нужны


 
_Юрий ©   (2010-06-12 23:21) [360]

Лучше всего писать сразу на АСМе. Быстрее всего будет работать.
И сделать можно все, что угодно


 
Я всегда говорил!   (2010-06-13 00:22) [361]


> _Юрий ©   (12.06.10 23:21) [360]
>
> Лучше всего писать сразу на АСМе. Быстрее всего будет работать.
>
> И сделать можно все, что угодно

Сперва заказчика найди, который согласится тебе за это платить.


 
test ©   (2010-06-13 01:55) [362]

jack128_   (12.06.10 21:32) [356]
Хорошо чем WPF лучше чем VCL, ну кроме того что MS так говорит?
Отрисовка в DirectX? А зачем оно в программе скажем учета?


 
Германн ©   (2010-06-13 02:46) [363]


> Хорошо чем WPF лучше чем VCL

Тем что помог сменить направление обсуждения данного топика на такое, которое интересно не многим (или которое знаю не многие). :)


 
test ©   (2010-06-13 04:12) [364]

Германн ©   (13.06.10 02:46) [363]
Это Потрепаться, ты тему про хамство на форуме посмотри...


 
Kerk ©   (2010-06-13 21:09) [365]


> _Юрий ©   (12.06.10 23:21) [360]
>
> Лучше всего писать сразу на АСМе. Быстрее всего будет работать.

в цене не производительность, а масштабируемость


 
_Юрий ©   (2010-06-14 10:57) [366]


> Kerk ©   (13.06.10 21:09) [365]


Это был сарказм, если что :-)


 
Юрий Зотов ©   (2010-06-14 20:22) [367]

Уфф... как оно и предполагалось, при разработке прикладухи потребовалось изменить плагинный интерфейс и соответственно докрутить движок. Процесс такой докрутки, конечно, итерационный, но радует то, что итерации становятся все более мелкими (раз) и что на каждой итерации движок работает безукоризненно (два). Что очень важно, потому что ошибка в плагине - это ошибка в ОДНОМ плагине, а ошибка в движке - это ошибка во ВСЕХ плагинах.

Блин. Увлекся я этой задачкой, кодю день и ночь... ну совершенно непрофессиональный подход. Зато кайфую... на дельфях пишу...
:o)


 
Германн ©   (2010-06-15 02:56) [368]


> Блин. Увлекся я этой задачкой, кодю день и ночь... ну совершенно
> непрофессиональный подход. Зато кайфую... на дельфях пишу.
> ..

То же самое. Только я уже иссяк. Сегодня ничего нового придумать не смог. Но зато предыдущие 3 недели - как бальзам на душу!. Новый контроллер плюс программа для его тестирования!
И всё это - кайф! После полугода работы в дурной конторе, с дурным гендиром, с идиотской задачей и плюс ко всему с обманом. Может меня  и не так обманули как тебя, но обман остаётся обманом.


 
Marser ©   (2010-06-17 02:16) [369]


> хз. Но эти "пионэры" разводятся благодаря желающим сэкономить
> работодателям. так что еще не ясно кто из них хуже...

Да я сам из яйца вылупился благодаря такому подходу. Интересно, что мой код, написанный на третьем курсе, в первые месяцы моей работы по профилю (я тогда ещё здесь флеймил отчаянно) до сих пор там работает, и изменения только я сам и вносил, чуть позднее...
Часто ретроспективно прокручиваю, как я реализовывал те или иные вещи и понимаю, что можно было бы намного лучше, проще, эффективнее...
Но ведь надо же с чего-то начинать? Реальная практика за денежки, каким бы крутым теоретиком и олимпийцем вы ни были, всё равно перевернёт ваши представления о программировании с ног на голову за несколько месяцев. Это совсем другой подход и идеология, этому нельзя научиться в теории или в курсовой, это критерий практики.


 
Германн ©   (2010-06-17 02:40) [370]


> Marser ©   (17.06.10 02:16) [369]
>
>

Тебе отчасти повезло.
Отчасти и ты сам помог себе - ибо "не дурак".
Но эти "пионэры" ака ЖЗЧ плодятся как тараканы. Блин.
А Марсеров из них один на тысячу. :(
Или на миллион. Ну и т.д.


 
Германн ©   (2010-06-17 02:55) [371]


> То же самое. Только я уже иссяк.

Не. Не иссяк.
Спасибо Косте из Питера. Теперь могу предложить работодателю новую версию за особую плату.


 
Marser ©   (2010-06-17 12:05) [372]


> А Марсеров из них один на тысячу. :(

Вы мне льстите :)
Я не бог и даже не гуру, даже не увлечённый в программирование с головой. Но таков путь джуниора, его надо пройти...


 
DiamondShark ©   (2010-06-18 11:17) [373]

Мастера Дельфи такие мастера.


 
b z   (2010-06-18 11:28) [374]


> не роляет
Это что такое?


 
Anatoly Podgoretsky ©   (2010-06-18 12:32) [375]


> > не роляет
> Это что такое?

Роль, ролять, не роляет, нет смысла.


 
Суслик__   (2010-06-18 12:44) [376]


> DiamondShark ©   (18.06.10 11:17) [373]
> Мастера Дельфи такие мастера.


Тут такой шум, что и ты не выдержал!
Приветствую! ))

----

Я думаю, пионеры - не всегда плохо.

Когда я еще не отличал поток от процесса и вообще много-много чего не знал я написал публичную программу.
Это *образовательный* продукт. До сих пор пользуются много ВУЗов и никак не хотят переходить на последние версии.
Вот ссылка, http://www.vkkb.ru/dwnld/demo3/CORPPLUS.EXE, если интересно.
Первая версия была еще в 95 году. Потом пересборка в 2001 году.

Обычно достойные пионеры проигрывают в области, где нужны широкие знания. Если в области нужны именно алгоритмические способности, а не знание тех. деталей, то достойный (повторю это слово) пионер не так плох )))

Сужу, по себе, естественно.


 
DiamondShark ©   (2010-06-18 12:51) [377]


> Суслик__   (18.06.10 12:44) [376]
> Тут такой шум, что и ты не выдержал!Приветствую!
>  ))


До меня докатилось ноосферное эхо.
Дельфимастер всё тот же, что и пять лет назад. А стабильность -- признак мастерства ;)



Страницы: 1 2 3 4 5 6 7 8 9 
10 вся ветка

Форум: "Прочее";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 1.6 MB
Время: 0.014 c
2-1276805385
DiamondeX
2010-06-18 00:09
2010.09.12
Открытие диалога из формы наследника


15-1275146068
stas
2010-05-29 19:14
2010.09.12
Win 7 получить доступ к файлам реестра


2-1276854352
terra
2010-06-18 13:45
2010.09.12
как заблокировать колонки в StringGrid


6-1225222273
SKIPtr
2008-10-28 22:31
2010.09.12
Изменения файла в интернете


2-1276668024
DROWSY
2010-06-16 10:00
2010.09.12
Access violation at address 00356273 in module designide60.bpl .





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский