Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Вниз
Отвечать на вопросы про иконку в трее - вредить самому себе? Найти похожие ветки
← →
Sergey Masloff (2005-12-18 00:15) [120]Ну вот прекрасный образчик кода обозвали кривым ;-) А я так старался ;-)
← →
Lamer@fools.ua © (2005-12-18 00:22) [121]>>Sergey Masloff (18.12.05 00:15) [120]
Приз в студию за самый крив... э-э-э... в смысле, самый прекрасный-распрекрасный код! ;o)
← →
Anatoly Podgoretsky © (2005-12-18 00:31) [122]Sergey Masloff (18.12.05 00:15) [120]
Думаю как тебя словом назвать, змей точно, но мягко.
← →
Sergey Masloff (2005-12-18 00:36) [123]Нет, ну может мне нравится так называть поля моего класса.
На самом деле пример написан специально чтобы показать что по приведенному куску кода рано делать выводы - вот и Form1 оказалась не переменной а членом класса ;-) и код стал вполне корректным. А что имена провоцирующие ну так что ж ;-) Может чтобы врагу было непонятно.
А насчет самого прекрасного я тут в гараже обнаружил если не 20 то 15 летней давности свой код. Распечатка и 360 Кб флопик. Где я его прочел даже не спрашивай ;-) Плакал от умиления ;-) Кусок без купюр
PROGRAM INFXTOPOSTFX;
CONST
STRINGLENGTH = 100;
MAXSTACK = STRINGLENGTH;
TERMINATOR = ";";
ERR_UNMATCHED_PARENTHESIS = "ERROR:UNMATCHED "(" OR ")"";
ERR_BEFORE_OPERATOR = "ERROR: OPERATOR PRECEDED BY LEFT PARENTHESIS OR OPERATOR";
ERR_BEFORE_IDENT = "ERROR: IDENTIFIER PRECEEDED BY IDENTIFIER OR RIGHT PARENTHESIS";
ERR_BEFORE_LEFT_PH = "ERROR: LEFT PARENTHESIS MUST BE PRECEDED BY OPERATOR";
ERR_BEFORE_RIGHT_PH = "ERROR: RIGHT PARENTHESIS MUST BE PRECEDED BY IDENTIFIER";
TYPE
ELEMENTTYPE = CHAR;
ERRORSTRING = STRING(100);
TOKENTYPE = (IDENTIFIER, ENDOFEXPRESSION, RIGHTPARENTHESIS, LEFTPARENTHESIS,
ADDINGOPERATOR, MULTIPLYINGOPERATOR, EMPTY);
ACTION = (MOVETOPOSTFIX, PUSHONSTACK, POPTOPOSTFIX,
POPANDPITCH, ERROR, DONE);
INFIXRANGE = IDENTIFIER..MULTIPLYINGOPERATOR;
STACKRANGE = LEFTPARENTHESIS..EMPTY;
TABLE = ARRAY[INFIXRANGE, STACKRANGE] OF ACTION;
POSTFIXTYPE = RECORD
DATA : ARRAY[1..STRINGLENGTH] OF ELEMENTTYPE;
LENGTH : 0..STRINGLENGTH;
END;
STACKTYPE = RECORD
STACKARRAY : ARRAY[1..MAXSTACK] OF ELEMENTTYPE;
TOPOFSTACK : 0..MAXSTACK;
UNDERFLOW : BOOLEAN;
OVERFLOW : BOOLEAN;
END;
VAR
CURRENTELEMENT : ELEMENTTYPE;
PREVIOUSELEMENT : ELEMENTTYPE;
NOERRORSFOUND : BOOLEAN;
EXISTSPREVELEMENT : BOOLEAN;
ERRORMESSAGE : ERRORSTRING;
TRANSITIONTABLE : TABLE;
POSTFIX : POSTFIXTYPE;
OPERATORSTACK : STACKTYPE;
IFILE : TEXT;
OFILE : TEXT;
PROCEDURE INITSTACK(VAR STACK : STACKTYPE);
BEGIN
WITH STACK DO
BEGIN
TOPOFSTACK := 0;
UNDERFLOW := FALSE;
OVERFLOW := FALSE;
END;
END; {OF INITSTACK}
PROCEDURE PUSH(VAR STACK : STACKTYPE; ELEMENT : ELEMENTTYPE);
BEGIN
WITH STACK DO
IF TOPOFSTACK = MAXSTACK THEN
OVERFLOW := TRUE
ELSE BEGIN
TOPOFSTACK := TOPOFSTACK + 1;
STACKARRAY[TOPOFSTACK] := ELEMENT;
END;
END; {OF PUCH}
PROCEDURE POP(VAR STACK : STACKTYPE; ELEMENT : ELEMENTTYPE);
BEGIN
WITH STACK DO
IF TOPOFSTACK = 0 THEN
UNDERFLOW := TRUE
ELSE BEGIN
ELEMENT := STACKARRAY[TOPOFSTACK];
TOPOFSTACK := TOPOFSTACK - 1;
END;
END; {OF POP}
FUNCTION STACKEMPTY(STACK : STACKTYPE) : BOOLEAN;
BEGIN
STACKEMPTY := STACK.TOPOFSTACK = 0;
END; {OF STACKEMPTY}
PROCEDURE ACCESSTOP(VAR STACK : STACKTYPE; VAR ELEMENT : ELEMENTTYPE);
BEGIN
WITH STACK DO
IF TOPOFSTACK = 0 THEN
UNDERFLOW := TRUE
ELSE
ELEMENT := STACKARRAY[TOPOFSTACK];
END; {OF ACCESSTOP}
FUNCTION TOKEN(ELEMENT : ELEMENTTYPE) : TOKENTYPE;
BEGIN
CASE ELEMENT OF
"A".."Z" : TOKEN := IDENTIFIER;
"+", "-" : TOKEN := ADDINGOPERATOR;
"*","/" : TOKEN := MULTIPLYINGOPERATOR;
"(" : TOKEN := LEFTPARENTHESIS;
")" : TOKEN := RIGHTPARENTHESIS;
";" : TOKEN := ENDOFEXPRESSION;
END;
END; {OF TOKEN}
← →
Sergey Masloff (2005-12-18 00:41) [124]Да похоже не релиз... даже не компилируется... :(
Кстати это даже не Борландовский паскаль
← →
Piter © (2005-12-18 00:45) [125]Marser © (17.12.05 23:33) [116]
В чём именно? Чем конкретное название экземпляра хуже self?
ну, Marser, не ожидал от тебя :)
Смотри:unit Unit1;
interface
...
type
TOutputForm = class(TForm)
public
procedure HideForm;
end;
var
OutputForm: TOutputForm ;
implementation
{$R *.dfm}
{ TOutputForm }
procedure TOutputForm.HideForm;
begin
OutputForm.Hide();
end;
end.
Все просто прекрасно. А теперь представь, что я впоследствии захотел создать вторую форму вывода, ну и пишем:var
SecondaryOutputForm: TOutputForm;
begin
SecondaryOutputForm := TOutputForm.Create(nil);
SecondaryOutputForm.HideForm;
end;
И что мы по твоему получим?
Понимаешь отличие от случая, если было бы:procedure TOutputForm.HideForm;
begin
Self.Hide();
end;
Это маленький пример, но демонстрирует грубейшее нарушение принципов ООП.
← →
Piter © (2005-12-18 00:48) [126]Marser © (17.12.05 23:33) [116]
Вон, Сергей Маслов(кистате, спасибо за поддержку), тоже так считает
он так не считает - смотри пример :)
jack128 © (17.12.05 23:58) [117]
Да. За такое действительно убивать не нужно. За такое нужно всю жизнь каленым железом пятую точку жечь
Lamer@fools.ua © (18.12.05 0:10) [118]
Это уж точно.
Lamer@fools.ua © (18.12.05 0:14) [119]
См. [117] by jack128.
Lamer@fools.ua © (18.12.05 0:22) [121]
Приз в студию за самый крив... э-э-э... в смысле, самый прекрасный-распрекрасный код! ;o)
А ВОТ ВЫ И ПОПАЛИСЬ :))))
Посмотрите внимательнее на пример Сергея :)))
Как он вас облапошил то? :)
Меня тоже почти удалось, я было стал писать гневную тираду, а потом присмотрелся к примеру Сергея :)))
Говорю же, Маслофф - негодяй, развел всех :) (ну кроме меня :)))
← →
jack128 © (2005-12-18 00:55) [127]Попался ты, Миш. Всё прекрасно поняли прикол Сергея М. (кроме, пожалуй его тески ;) ) . Более того в реале такой код на порядок хуже, чем классический вариант ошибки..
← →
Piter © (2005-12-18 00:58) [128]jack128 © (18.12.05 0:55) [127]
я не попадался :)
Если ты понял прикол - то чего тогда каленым железом сечь? Ну нравится человеку такие названия. Нехорошо, конечно, но так-то все правильно :)
← →
Джо © (2005-12-18 00:59) [129]За такие названия - ж0сткие репрессии. Даже имхо не поставлю :p
← →
Lamer@fools.ua © (2005-12-18 01:00) [130]>>Piter © (18.12.05 00:48) [126]
Никуда я (например) не попался. У класса TForm1 поле Form1 типа TLogOutputWindow, а переменная Form5 типа TForm1.
GOTO [117] :-))
← →
jack128 © (2005-12-18 01:05) [131]Piter © (18.12.05 0:58) [128]
Ну нравится человеку такие названия. Нехорошо, конечно, но так-то все правильно :)
Не-а. Как раз не правельно. Потому что 99% народу глядя на код
procedure TForm1.HideLogWindow;
begin
Form1.Hide();
end;
Подумают, что этим методом скрывается текущая форма, а не какое то поле. Если же мы говорим только о техническом аспекте, то и обычный код:
var
Form1: TForm;
procedure TForm.HideWindow;
begin
Form1.Hide;
end
Может быть правельным..
← →
Sergey Masloff (2005-12-18 01:08) [132]Я кистате видел систему (немалых размеров) в базе которой все таблицы имели имена T1, T2... TN а в каждой из них поля X1, X2...XN никаких комментариев ничего разработка велась в самописной среде которая все это безобразие генерила (специально чтобы враг не догадался) соответственно во всех ХП триггерах индексах и всем все поддерживалось вобщем довольно серьезно все это выглядело.
← →
Sergey Masloff (2005-12-18 01:14) [133]Блин, все я чувствую завязну на неделю. Кое что компилится гну паскалем. Это я все про свою археологическую находку. Можно методичку какую-нибудь написать по процедурному программированию. Тут и стеки и графы и что-то похожее на субд... И ни одного объекта ;-)
← →
Marser © (2005-12-18 01:20) [134]
> Piter © (18.12.05 00:45) [125]
Да, понял я всё. Если человек пишет такое для тиражируемой формы, то яйки ему нужно отрывать.
И... Наверное, признаю свою неправоту. Ламерство тут признавать нечего, я всё равно пользуюсь self. А вот то, что человек в методах класса обращается к конкретным экземплярам, это действительно ламерство. Варианта с несколькими экземплярами я не учёл.
Можно оправдаться, что необязательно создавать несколько экземпляров. Ну а если с таким "мастерством" пойти и создать? Тогда... человек получит по рукам от родной Делфи и, даст Бог, поумнеет.
← →
Anatoly Podgoretsky © (2005-12-18 01:33) [135]Варианта с несколькими экземплярами я не учёл.
Ну не только это, даже с одним экземпляром и динамическим созданием получит проблему.var
Form1: TForm1
begin
Form1 := TForm1.Create
Приплыли и бежим в форум, а код вроде как безобидный, ошибок компиляции не будет.
← →
Marser © (2005-12-18 01:37) [136]
> Приплыли и бежим в форум, а код вроде как безобидный, ошибок
> компиляции не будет.
Кстати, я єтот вариант в своём первом приближении(про AV, выше по странице) тоже обдумывал, но не написал.
Всё! Убедили! Раньше я за такое грозил пальчиком, теперь буду откусывать голову :-)
← →
Piter © (2005-12-18 02:17) [137]Marser © (18.12.05 1:20) [134]
Если человек пишет такое для тиражируемой формы
да неважно сколько экземпляров будет создано, тут вопрос идеологии ООП. Объект - как черный ящик, законченный элемент, неважно что внутри, но есть интерфейс взаимодействия с ним. В теории кто угодно и когда угодно может создать экземпляр черного ящика и взаимодействовать с ним согласно описанному интерфейсу.
И не должно быть такого, что вызываешь метод одного черного ящика, а некий эффект происходит почему-то с другим черным ящиком.
P.S. На практике, конечно, не все так идеально, но надо стремиться...
← →
Юрий Зотов © (2005-12-18 03:34) [138]Form1 - это еще что. Тут поклиничнее был случай. Присылает мне как-то чел один свой компонент - посмотри, мол, что-то там не так. А компонент этот юзает... глобальные переменные вместо своих полей. Указываю ему на это и задаю наводящий вопрос - что будет, если я несколько твоих компонентов на форму положу?
Елы-палы, он так ничего и не понял... компонентрайтер, блин, фигов...
← →
Германн © (2005-12-18 04:56) [139]Юр! А вот "чел" - это не в твоём стиле, имхо.
Хотя, блин, фигов... Да еще в 03:34!
Но всё равно, не в стиле, имхо.
Про "прочее" я молчу. Тут, имхо, нужно сравнивать степень "заряженности".
← →
Юрий Зотов © (2005-12-18 05:02) [140]> Германн © (18.12.05 04:56) [139]
Нет у меня никакой заряженности, работаю сижу, вот потрепаться маленько заглянул. А стиль - мы ж с тобой в реале общались, неужели ничего не понял?
← →
Германн © (2005-12-18 06:00) [141]Юра! Но в реале ты не употреблял термин "чел".
А вообще понял! Я тоже употребляю, употребляю к месту и (иногда) упротребляю не к месту". :-)
← →
YurikGL © (2005-12-18 10:54) [142]Кстати, об ООП....
Сейчас читаю "Объектно - ориентированный анализ и проектирование" Гради Буч.... очень познавательно. Во всяком случае, гораздо более полно и основательно, чем книги именно по ООП в Delphi, которые я до этого читал. А может, мне просто не везло :)
Но опосля ее прочтения обратиться к экземпляру класса из самого класса просто невозможно.
← →
Lamer@fools.ua © (2005-12-18 11:06) [143]>>YurikGL © (18.12.05 10:54) [142]
>Но опосля ее прочтения...
... о виртуальных статических методах и конструкторах придётся забыть :o)
← →
YurikGL © (2005-12-18 11:34) [144]
> Lamer@fools.ua © (18.12.05 11:06) [143]
Одно другому не мешает?
← →
Lamer@fools.ua © (2005-12-18 11:50) [145]>>YurikGL © (18.12.05 11:34) [144]
Для тех, кто в бронепоезде, рекомендую обратить внимание на смайлик в конце сообщения за номером 143.
← →
Petr V. Abramov © (2005-12-18 19:13) [146]> YurikGL ©
> Нужно что-бы человек держался за свое место. Это можно сделать либо
> очччень большой з.п. (а это экономически не выгодно) либо
> доверием/хорошим колллективом/интересной работой/возможность
> получения опыта от старших товарищей
Еще свободный режим курения нужен, чтоб держался :)))
← →
YurikGL © (2005-12-18 19:29) [147]
> Еще свободный режим курения нужен, чтоб держался :)))
В данном случае, можно немного переплатить :)
← →
paul_k © (2005-12-19 09:57) [148]Nikolay M. © (16.12.05 17:02) [37]
Предлагаешь студента собеседовать детскими задачками на соображалку или заставить заполнить простынь психологических тестов?
ну не знаю.. предложение написать 10-к запросов вполне разумно, ИМХО
Nikolay M. © (16.12.05 17:02) [37]
> sql? А мне это время работать за троих? За себя, за него
> и плюс учить sql-ю? Тяжко :(
решали просто. BOL, TFM по софтине в зубы, 2 -3 обзорные лекции по продукту а дальше какая нить процедура немерянная в руки и будь любезен отрисуй как оно работает (вопросы задавать - лови меня в курилке). После чего изучи доку как она должна работать и выдай рекомендации по приведению одного к другому. Выдал? осознал? Обсудил? утвердили? - пиши.. Сдал работу - когда написал и ОПИСАЛ то что сделал. 2-3 подобные задачи и можно в бой пускать:)
Игорь Шевченко © (16.12.05 17:08) [38]
Игорь ну была у Шефа такая политика партии. Какая сейчас не знаю..
Браслись студенты на мало у.е. И того взращивались.
← →
paul_k © (2005-12-19 10:34) [149]Rouse_ © (17.12.05 0:14) [46]
лучше взять одного проффесионала и пристегнуть к нему 2-х студентов. Тогда если вдруг через некое время проффесионал закапризничает, типа виллу на канарах не заработал ещё, - то эти студенты легко его заменят
Piter © (17.12.05 13:22) [82]
а вот и нифига. Даже с такой точки зрения, что профи всегда будет лезть куда не хочет руководитель,
Очень редко.. только если там помойка которая мешает выполнять его прямые обязанности.
DSKalugin © (17.12.05 16:03) [87]
надо просить писать соискателя на листочке запросы, сажайте сразу за компьютер и пусть показывает свои навыки практической работы,
От на бумаге , пусть и показывает. Где ж я 5 - 10 компуков найду? или на целий день собеседование 10-ти человек растягивать?
И что это за практические навыки, при которых на клаве чепятая задачка решается а на листке бумаги - нет. Такой практик и даром не нужен (ИМХО!!)
> На закуску можно предложить ему пройти он-лайн
>тестирование подобно
> http://www.certifications.ru/
Как мне больше года назад соватовали тут - проще надо быть. sql-ex.ru нколько листочков с разным уровнем задач сформировано. Когда соискатель шибко наглый попадается, садишся, перенабираешь его бред со всеми ошибками и капу жмешь.
Piter © (17.12.05 21:49) [108]
Ты видишь, что он не совсем понимает суть того, что делает
Иногда это указывает, что человека надо доучить. О чем ему прямо и указывается.
← →
Игорь Шевченко © (2005-12-19 11:43) [150]Piter © (17.12.05 13:22) [82]
> ну вот ответьте, Игорь, что вам мешало знать все это, когда
> вы только устраивались на работу?
Еще не было :) Ты про HTML в начале 80-ых слышал ? Или под стол пешком ходил ?
← →
Piter © (2005-12-19 12:24) [151]Игорь Шевченко © (19.12.05 11:43) [150]
Еще не было
а у вас на работе на HTML писали?
На работе то писали на чем-то? И как я понимаю - вы этого не знали?
Что же мешало выучить?
← →
Игорь Шевченко © (2005-12-19 12:29) [152]Piter © (19.12.05 12:24) [151]
> И как я понимаю - вы этого не знали?
Ты неправильно понимаешь. Охота пофлеймить - аська/почта/чат.
← →
Piter © (2005-12-19 19:11) [153]Игорь Шевченко © (19.12.05 12:29) [152]
Ты неправильно понимаешь. Охота пофлеймить - аська/почта/чат
Ну насчет пофлейми - тут и так флейм :)
Просто ваша фраза:
"так как его, некоторого опыта работы, у меня при приеме в далеком-далеком году практически не было"
значит, вы под опытом работы подразумеваете именно работу на фирму, коммерческое программирование.
Я думал, вы имеете в виду, что не было опыта программирования как такового.
Ибо, если человек сносно знает какой-то язык - у него не может не быть опыта работы, нельзя освоить программирование без практического написания программ.
← →
Gero © (2005-12-19 21:09) [154]
> нельзя освоить программирование без практического написания
> программ.
Можно писать программы не устраиваясь на работу :)
← →
Piter © (2005-12-19 23:44) [155]Gero © (19.12.05 21:09) [154]
Можно писать программы не устраиваясь на работу :)
ну понятное дело...
← →
Джо © (2005-12-19 23:51) [156]Можно даже получать за них деньги, и вообще плевать на работу в офисе — вещь губительную, нудную, бессмысленную и недостойную истинного фрилансера, лентяя и вообще джедая в седьмом колене...
:)
← →
Игорь Шевченко © (2005-12-20 12:39) [157]Piter © (19.12.05 19:11) [153]
> нельзя освоить программирование без практического написания
> программ.
Можно.
← →
Gero © (2005-12-20 13:12) [158]
> Игорь Шевченко © (20.12.05 12:39)
> Piter © (19.12.05 19:11) [153]
>
>
> > нельзя освоить программирование без практического написания
>
> > программ.
>
>
> Можно.
Вы сталикавались с чем-то подобным?
Ведь и изобразительное искусство можно выучить, ничего не нарисовав.
← →
Игорь Шевченко © (2005-12-20 13:36) [159]Gero © (20.12.05 13:12) [158]
> Вы сталикавались с чем-то подобным?
Да, конечно. В то время, когда компьютеры были большими и их на всех не хватало.
← →
Gero © (2005-12-20 13:44) [160]
> Игорь Шевченко © (20.12.05 13:36)
А какое значение Вы вкладываете в слово «освоить»?
Страницы: 1 2 3 4 5 вся ветка
Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Память: 0.83 MB
Время: 0.049 c