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

Вниз

Вот такие у нас программисты !   Найти похожие ветки 

 
infom ©   (2007-03-12 13:31) [0]

Вчера позвонил мне давний знакомый, спросил занимаюсь ли я до сих пор программированием, я подтвердил! Обрадовавшись он попросил меня помочь его начальнику который пишет программу на Делфи и у него возникло несколько вопросов, я согласился помочь.
Сегодня с утра очень сильно удивился когда увидел "программиста", саму программу и услышал вопросы:

Программист - подполковник, начальник какого-то управления по надзору за деятельностью охранных служб. (Я подумал "Ну мало-ли, может он программист хороший...")
Программу он принес на флешке, суть её рассказывать не буду приведу только описание класса формы:
  TForm1 = class(TForm)
   Panel1: TPanel;
   ComboBox1: TComboBox;
   ScrollBox1: TScrollBox;
   ComboBox2: TComboBox;
   BitBtn1: TBitBtn;
   BitBtn2: TBitBtn;
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Label5: TLabel;
   Label6: TLabel;
   Label7: TLabel;
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;
   Edit4: TEdit;
   Edit5: TEdit;
   Edit6: TEdit;
   Edit7: TEdit;
   Edit8: TEdit;
   Label8: TLabel;
   Label9: TLabel;
   Edit9: TEdit;
   Edit10: TEdit;
   Edit11: TEdit;
   Edit12: TEdit;
   Edit13: TEdit;
   Edit14: TEdit;
   Edit15: TEdit;
   Edit16: TEdit;
   Label10: TLabel;
   Label11: TLabel;
   Edit17: TEdit;
   Edit18: TEdit;
   Edit19: TEdit;
   Edit20: TEdit;
   Edit21: TEdit;
   Edit22: TEdit;
   Edit23: TEdit;
   Edit24: TEdit;
   Label12: TLabel;
   Edit25: TEdit;
   Edit26: TEdit;
   Edit27: TEdit;
   Edit28: TEdit;
   Label13: TLabel;
   Label14: TLabel;
   Edit29: TEdit;
   Edit30: TEdit;
   Edit31: TEdit;
   Edit32: TEdit;
   Edit33: TEdit;
   Edit34: TEdit;
   Edit35: TEdit;
   Edit36: TEdit;
   Label15: TLabel;
   Label16: TLabel;
   Edit37: TEdit;
   Edit38: TEdit;
   Edit39: TEdit;
   Edit40: TEdit;
   Edit41: TEdit;
   Edit42: TEdit;
   Edit43: TEdit;
   Edit44: TEdit;
   Label17: TLabel;
   Edit45: TEdit;
   Edit46: TEdit;
   Edit47: TEdit;
   Edit48: TEdit;
   Label18: TLabel;
   Label19: TLabel;
   Edit49: TEdit;
   Edit50: TEdit;
   Edit51: TEdit;
   Edit52: TEdit;
   Edit53: TEdit;
   Edit54: TEdit;
   Edit55: TEdit;
   Edit56: TEdit;
   Label20: TLabel;
   Edit57: TEdit;
   Edit58: TEdit;
   Edit59: TEdit;
   Edit60: TEdit;
   Label21: TLabel;
   Edit61: TEdit;
   Edit62: TEdit;
   Edit63: TEdit;
   Edit64: TEdit;
   Label22: TLabel;
   Label23: TLabel;
   Edit65: TEdit;
   Edit66: TEdit;
   Edit67: TEdit;
   Edit68: TEdit;
   Edit69: TEdit;
   Edit70: TEdit;
   Edit71: TEdit;
   Edit72: TEdit;
   Label24: TLabel;
   Edit73: TEdit;
   Edit74: TEdit;
   Edit75: TEdit;
   Edit76: TEdit;
   Label25: TLabel;
   Edit77: TEdit;
   Edit78: TEdit;
   Edit79: TEdit;
   Edit80: TEdit;
   Label26: TLabel;
   Edit81: TEdit;
   Edit82: TEdit;
   Edit83: TEdit;
   Edit84: TEdit;
   Label27: TLabel;
   Edit85: TEdit;
   Edit86: TEdit;
   Edit87: TEdit;
   Edit88: TEdit;
   Label28: TLabel;
   Label29: TLabel;
   Edit89: TEdit;
   Edit90: TEdit;
   Edit91: TEdit;
   Edit92: TEdit;
   Edit93: TEdit;
   Edit94: TEdit;
   Edit95: TEdit;
   Edit96: TEdit;
   Label30: TLabel;
   Edit97: TEdit;
   Edit98: TEdit;
   Edit99: TEdit;
   Edit100: TEdit;
   Label31: TLabel;
   Edit101: TEdit;
   Edit102: TEdit;
   Edit103: TEdit;
   Edit104: TEdit;
   Label32: TLabel;
   Edit105: TEdit;
   Edit106: TEdit;
   Edit107: TEdit;
   Edit108: TEdit;
   Label33: TLabel;
   Edit109: TEdit;
   Edit110: TEdit;
   Edit111: TEdit;
   Edit112: TEdit;
   Label34: TLabel;
   Label35: TLabel;
   Edit113: TEdit;
   Edit114: TEdit;
   Edit115: TEdit;
   Edit116: TEdit;
   Edit117: TEdit;
   Edit118: TEdit;
   Edit119: TEdit;
   Edit120: TEdit;
   Label36: TLabel;
   Edit121: TEdit;
   Edit122: TEdit;
   Edit123: TEdit;
   Edit124: TEdit;
   Label37: TLabel;
   Edit125: TEdit;
   Edit126: TEdit;
   Edit127: TEdit;
   Edit128: TEdit;
   Label38: TLabel;
   Edit129: TEdit;
   Edit130: TEdit;
   Edit131: TEdit;
   Edit132: TEdit;
   Label39: TLabel;
   Edit133: TEdit;
   Edit134: TEdit;
   Edit135: TEdit;
   Edit136: TEdit;
   Label40: TLabel;
   Label41: TLabel;
   Edit137: TEdit;
   Edit138: TEdit;
   Edit139: TEdit;
   Edit140: TEdit;
   Edit141: TEdit;
   Edit142: TEdit;
   Edit143: TEdit;
   Edit144: TEdit;
   Label42: TLabel;
   Edit145: TEdit;
   Edit146: TEdit;
   Edit147: TEdit;
   Edit148: TEdit;
   Label43: TLabel;
   Edit149: TEdit;
   Edit150: TEdit;
   Edit151: TEdit;
   Edit152: TEdit;
   Label44: TLabel;
   Edit153: TEdit;
   Edit154: TEdit;
   Edit155: TEdit;
   Edit156: TEdit;
   Label45: TLabel;
   Label46: TLabel;
   Edit157: TEdit;
   Edit158: TEdit;
   Edit159: TEdit;
   Edit160: TEdit;
   Edit161: TEdit;
   Edit162: TEdit;
   Edit163: TEdit;
   Edit164: TEdit;
   Label47: TLabel;
   Edit165: TEdit;
   Edit166: TEdit;
   Edit167: TEdit;
   Edit168: TEdit;
   Label48: TLabel;
   Edit169: TEdit;
   Edit170: TEdit;
   Edit171: TEdit;
   Edit172: TEdit;
   procedure ScrollBox1MouseWheel(Sender: TObject; Shift: TShiftState;
     WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
   procedure ComboBox2Change(Sender: TObject);
   procedure BitBtn1Click(Sender: TObject);
  // procedure Label6Click(Sender: TObject);
     private
   { Private declarations }
 public
   { Public declarations }
 end;

Остальное можете глянуть тут http://avral.ru/1696 (Больше никуда залить не получилось, к сожалению, webfile глючит, рапиду не люблю, а опубликовать все тут нехватит размеров сообщения).

Увидев программу я смеялся наверно минут 15 (правда про себя).....

Но когда он мне задал вопрос, Как сделать так чтобы если процент меньше нуля Label делался красным, я вообще упал под стул.....

Вот такие у нас программисты :)


 
Kolan ©   (2007-03-12 13:35) [1]

>  Edit172: TEdit;

ИМХО тот кто так пишет мучает сам себя, все равно такое дерьмо на продажу/в использование не поступит...


 
Virgo_Style ©   (2007-03-12 13:36) [2]

если не знать про фреймы, можно и не такого наворотить (телепатирую)


 
infom ©   (2007-03-12 13:40) [3]

> [1] Kolan ©   (12.03.07 13:35)

Вы бы видели что у него делает процедура загрузки данных во все эти лабелы.... вот такой код на протяжении 300 строк:
Edit1.Text := Sheet.Cells[3,3+Pokaz].Value;
    Edit2.Text := Sheet.Cells[3,4+Pokaz].Value;
    Edit3.Text := Sheet.Cells[3,5+Pokaz].Value;
if   Sheet.Cells[3,4+Pokaz].Value =0 then
    Sheet.Cells[3,6+Pokaz].Value:="0"
    else
    Edit4.Text := (Sheet.Cells[3,6+Pokaz].Value)*100;
Edit5.Text := Sheet.Cells[4,3+Pokaz].Value;
    Edit6.Text := Sheet.Cells[4,4+Pokaz].Value;
    Edit7.Text := Sheet.Cells[4,5+Pokaz].Value;
if   Sheet.Cells[4,3+Pokaz].Value =0 then
    Sheet.Cells[4,6+Pokaz].Value:="0"
    else
    Edit8.Text := (Sheet.Cells[4,6+Pokaz].Value)*100;


 
TUser ©   (2007-03-12 13:40) [4]

> Virgo_Style ©   (12.03.07 13:36) [2]

Или не знает, как динамически создать 172 эдита.


 
infom ©   (2007-03-12 13:42) [5]

> [4] TUser ©   (12.03.07 13:40)

Он создал на основе Edit"ов таблицу размером 30*4


 
Игорь Шевченко ©   (2007-03-12 13:45) [6]

сразу видно - военный.


 
Kolan ©   (2007-03-12 13:46) [7]

> вот такой код на протяжении 300 строк

Я жговорю мазохист. С другой стороны подполковник - это пАчётно...


 
Kerk ©   (2007-03-12 13:55) [8]

> вот такой код на протяжении 300 строк

Может, его писали те, кто отмазался от строительства дачи? :))


 
Брюнетка ©   (2007-03-12 13:57) [9]

>infom ©   (12.03.07 13:42) [5]

>Он создал на основе Edit"ов таблицу размером 30*4

"Маловато будет! Ма-ло-ва-то!!" (с)
-)


 
Kolan ©   (2007-03-12 14:03) [10]

> infom ©

Ну ты хоть StringGrid посоетовал?


 
DillerXX ©   (2007-03-12 14:05) [11]


> Может, его писали те, кто отмазался от строительства дачи?
>  :))

))))))


 
Думкин ©   (2007-03-12 14:10) [12]

> Kolan ©   (12.03.07 13:35) [1]
> >  Edit172: TEdit;
>
> ИМХО тот кто так пишет мучает сам себя, все равно такое
> дерьмо на продажу/в использование не поступит...


Черт его знает. Видел в одной фирме, не очень большой - около 12 лимонов зелени в год оборот, программу реально использовавшуюся писанную на ФоксПро, которое нечто подобное из себя и представляла - винегрет из контролов, которые облепляли формы практически полностью - не оставляя живого места.
Вначале, как сказали старожилы - все было путем. потом по просьбам менеджерам им стали добавлять контролы и фичи. В итге и появился монстр, который неподготовленного человека приводил в ступор. а те кто работал - даже не ругались, а вполне сносно щелкали на нем свои повседневные задачи.


 
Alkid ©   (2007-03-12 14:17) [13]


> Черт его знает. Видел в одной фирме, не очень большой -
> около 12 лимонов зелени в год оборот, программу реально
> использовавшуюся писанную на ФоксПро, которое нечто подобное
> из себя и представляла - винегрет из контролов, которые
> облепляли формы практически полностью - не оставляя живого
> места.
> Вначале, как сказали старожилы - все было путем. потом по
> просьбам менеджерам им стали добавлять контролы и фичи.
> В итге и появился монстр, который неподготовленного человека
> приводил в ступор. а те кто работал - даже не ругались,
> а вполне сносно щелкали на нем свои повседневные задачи.

Есть такая штука - рефакторинг называется. В этой ситуации это самое то, что нужно :)


 
Думкин ©   (2007-03-12 14:21) [14]

> Alkid ©   (12.03.07 14:17) [13]

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


 
tesseract ©   (2007-03-12 14:26) [15]


>  Текучка там была и есть большая. Но фирма работает.


Титаник плывёт!


 
Аноним   (2007-03-12 14:45) [16]

Это доп. защита от злоумышленника - чтобы врагам было труднее догадаться


 
_uw_ ©   (2007-03-12 14:53) [17]

О происхождении видов путем...

//Эта процедура происходит после того как выбирается раздел
procedure TForm1.ComboBox2Change(Sender: TObject);
var   AExcelApplication,AWorkBooks,AWorkBook, ASheet: Variant;
     BExcelApplication,BWorkBooks,BWorkBook, BSheet: Variant;
     ExcelApplication,WorkBooks,WorkBook, Sheet: Variant;
begin  if (ComboBox1.ItemIndex = -1)or(ComboBox2.ItemIndex = -1) then exit;
    Pokaz :=  ComboBox1.ItemIndex;
...
...


 
Alkid ©   (2007-03-12 14:53) [18]


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

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

Кстати, примерно по этому же сильно предпочитаю работу в софтверных фирмах, а не там, где софтостроение - это либо побочная либо обслуживающая деятальность :-)


 
ProgRAMmer Dimonych ©   (2007-03-12 15:19) [19]

> infom ©
Так какие планы-то насчёт этой программы???
Да Нет Отмена Послать Принять Удалить Замочить

P.S. Интересно просто... :)


 
boriskb ©   (2007-03-12 15:27) [20]


> Программист - подполковник
...
> Вот такие у нас программисты :)



> infom ©   (12.03.07 13:31

А доложи ка ты нам тактику мотострелкового полка в оборонительном бою.


 
infom ©   (2007-03-12 15:45) [21]

> [19] ProgRAMmer Dimonych ©   (12.03.07 15:19)

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

> [20] boriskb ©   (12.03.07 15:27)

Может тоже заняться тем в чем ни черта не понимаю и буду пугать спецов каких-нибудь...


 
Ega23 ©   (2007-03-12 15:54) [22]


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


Кстати, в конце марта, похоже, первая инсталляция "следующей версии"


 
infom ©   (2007-03-12 15:55) [23]

> [22] Ega23 ©   (12.03.07 15:54)

Теперь кнопок не 200 как в пред версии а целых 700 ! :)


 
vajo   (2007-03-12 16:03) [24]

Может это у полковника хобби такое, а тут профессионализм необязателен.


 
Ega23 ©   (2007-03-12 16:15) [25]


> Теперь кнопок не 200 как в пред версии а целых 700 ! :)


Не, там теперь одна большая смарт-кнопка. Причём нажимается тоже сама тогда, когда надо...   :)


 
Real ©   (2007-03-12 18:22) [26]

Програмулина суперская :) Кто нить нажимал "about" ? Автора зовут очень созвучно самой программе: Гр.Ал.Пет


 
Ega23 ©   (2007-03-12 18:31) [27]


> Гр.Ал.Пет


Ну это просто.
Грамотный Артиллерист Петров.
:)


 
isasa ©   (2007-03-12 18:35) [28]

Ega23 ©   (12.03.07 18:31) [27]

Нет. Фамилия у него такая. "Пет" - это не сокращение. Видишь, точки там нет ...


 
cyborg ©   (2007-03-12 18:43) [29]

> [20] boriskb ©   (12.03.07 15:27)

Одна половина окапывается а вторая на мотоциклах заезжает с тыла и стреляет. :)


 
AntiRussian   (2007-03-12 18:49) [30]


> cyborg ©   (12.03.07 18:43) [29]
>
> > [20] boriskb ©   (12.03.07 15:27)
>
> Одна половина окапывается а вторая на мотоциклах заезжает
> с тыла и стреляет. :)


Пустить отвлекающим маневром на мясо, а в тыл противнику заслать вертолетный полк со снайперами-гранатометчиками?


 
udaff_com   (2007-03-12 19:45) [31]

Пет - жывотное...


 
Knight ©   (2007-03-12 19:51) [32]

И чё смешного? Кто-то вообще ничего не делает и ничего не спрашивает...


 
ArtemESC ©   (2007-03-12 21:03) [33]

Тут больше жалости, чем смеха...


 
Knight ©   (2007-03-12 21:09) [34]

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


 
Sergey Masloff   (2007-03-12 21:12) [35]

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


 
ArtemESC ©   (2007-03-12 21:13) [36]

А может он человек хороший...


 
Гарри Поттер ©   (2007-03-12 21:14) [37]

> [32] Knight ©   (12.03.07 19:51)
> И чё смешного? Кто-то вообще ничего не делает и ничего не
> спрашивает...

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


 
isasa ©   (2007-03-12 22:03) [38]

Да все, в общем то, нормально. И смех беззлобный. Н жетко настораживает факт:

infom ©   (12.03.07 15:45) [21]
... Сейчас думаю предложить ему все это сделать просто в Excel, программу писать для того чтобы разделить один столбик даных представленных в листе Экселя на другой и потом распечатать эти данные не хочется.
Подполковник отмел Excel тем что он не удобен и не нагляден...


Это Excel-то ненаглядній для таблиц? Excel, если вся работа только с табличнім материалом, да еще с наличием VBA идеален.
:)


 
Knight ©   (2007-03-12 22:13) [39]


> [38] isasa ©   (12.03.07 22:03)

Мож человек в детстве прочитал "Энциклопедия профессора Фортрана" и мечтал стать программером... но не сложилось...


 
ne   (2007-03-12 22:27) [40]

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



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

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

Наверх




Память: 0.59 MB
Время: 0.063 c
2-1174742156
MASTAFA
2007-03-24 16:15
2007.04.15
Помогите с Паскалем. Нужно построить правильный 5-угольник.


1-1171703509
Medved_
2007-02-17 12:11
2007.04.15
Печать Canvas


15-1174447946
Slider007
2007-03-21 06:32
2007.04.15
С днем рождения ! 21 марта


9-1147630654
Kn1ght
2006-05-14 22:17
2007.04.15
Вертикальное падене


15-1174497274
Другой
2007-03-21 20:14
2007.04.15
Старые пивные этикетки (фото)