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

Вниз

Как определить чего ты стоишь как программист.   Найти похожие ветки 

 
panov ©   (2004-04-06 21:13) [160]

>Verg ©   (06.04.04 20:58) [158]

-)
Самый простой способ:

function PiG( A, B : PChar ) : boolean;
begin
 result := boolean(integer(A) > integer(B));
end;


 
panov ©   (2004-04-06 21:14) [161]

Сорри, не то.

Только заголовок функции надо поменять - вместо pointer поставить PChar.


 
panov ©   (2004-04-06 21:15) [162]

function PiG( A, B : PChar ) : boolean;
begin
 result := A>B;
end;


 
Verg ©   (2004-04-06 21:18) [163]


> короче с integer такое будет работать не правильно


Так откуда и почему эта привычка поинтеры приводить к integer-ам
Integer - "Целое со знаком", со знаком, понимаете, со зна-ком!
Это так, просто "крик души"... :))

Еще, почему high(integer) можно, а high(pointer) - нет?

Никак не могу придумать ясную (словесную, не интуитивную) формулировку сему "эффекту"....:))


 
Style ©   (2004-04-06 21:18) [164]

Прикольно :)
Я то думаю в чем прикол :))


 
Vuk ©   (2004-04-06 21:19) [165]

to Style ©   (06.04.04 20:41) [155]:
>т.е. владельцем может стать форма?
Компонент лежит на фрейме, фрейм на форме, в качестве обработчика компоненту назначен метод формы.

>это Loaded нужно использовать??
Угу. Гарантировано работать будет, я думаю, не нужно объяснять почему.


 
Юрий Зотов ©   (2004-04-06 21:20) [166]

> Piter ©   (06.04.04 20:33) [152]
> А также всем, кто готов подписаться под этими словами:

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


Что делать, говорите?

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

Во-вторых, если Вы в Москве, если Вы знаете SQL и Interbase (вовсе не обязательно на суперпуперуровне, но неплохо), если по этому тесту Вы набрали не менее 4-х баллов (считая плюс за 1, а звездочку за 0.5), если Вы уже закончили учебу (или вот-вот ее закончите), если Вы действительно тащитесь от программизма и хотите работать в софтверной конторе (естественно, для начала на самой рядовой должности) - то можно послать свое резюме на job@elprise.ru

Гарантированного трудоустройства, золотых гор и легкой жизни не обещаю, но шансы устроиться есть. Дальнейшее во многом будет зависеть от Вас самих.


 
Юрий Зотов ©   (2004-04-06 21:24) [167]

> Verg ©   (06.04.04 21:18) [163]

> короче с integer такое будет работать не правильно

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


 
Piter ©   (2004-04-06 21:24) [168]

А можно огласить правильные ответы на вопросы:

- В чем принципиальное различие между классами TLabel и TStaticText?
- От какого класса наследуется класс TCollection и почему?
- У каких компонентов есть событие OnCreate? Почему его нет у других компонентов?
- 3.4. Написать модуль, содержащий класс, который позволяет создать только единственный экземпляр объекта этого класса (эфективный вариант, а не с мьютексами, семафорами  и т.д.)
- Как послать сообщение в безоконное приложение и как его там принять?

Юрий Зотов (06.04.04 20:40) [154]
Но ведь Вы еще учитесь, а как же совмещать?


Да сейчас нет, конечно. Я просто так прикидываю свои шансы...
просто вроде как  и уже не мало времени в этой среде. И вроде как сравниваю уровень с другими и ничего хорошего не нахожу. Некоторые в 19 лет вроде уже и м фирмами сотрудничают, те их ведут, по выпуску сразу к себе берут, на теплое место, повышения квалификаци всякие там, дополнительные курсы за счет фирмы и т.д. А тут ощущаешь себя серой мышкой.
Просто вот странно, знал человека, который ОЧЕНЬ, ОЧЕНЬ хорошо разбирался в Дельфях. Он еще свой IRC клиент писал, причем грамотный и красивый, даже без глюков. Устроился помню на $450, причем на VC, так как работы на D не нашел... а вот вас слушаешь, даже $1000 это типа и не предел, хотя мне кажется, что программистам в России, окромя особых случае, больше не платят, что очень прискорбно осознавать, ибо это именно та отрасль, которая единственно мне нравится (ну если не считать там админство, то есть настройка компьютеров, но мне все таки больше по душе программинг).

P.S. Кстати, Юрий, вы не могли бы посмотреть ветку http://delphimaster.net/view/14-1081086968/ если ее просто не замечали. Особенно хочется услышать комментарии на посты № 27-28
Если замечали - но читать/отвечать не хотите - то не надо, я ни в коем случае не настаиваю


 
Verg ©   (2004-04-06 21:29) [169]


> Юрий Зотов ©   (06.04.04 21:24) [167]
> > Verg ©   (06.04.04 21:18) [163]
>
> > короче с integer такое будет работать не правильно
>
> Теоретически - да, практически - доступные нам адреса все
> равно лежат в двух нижних гигах. Поэтому прокатит нормально
> и с Integer.


Хорошо, пусть пока прокатывает, я ведь не настаиваю - мне "просто за державу обидно" :))


 
Игорь Шевченко ©   (2004-04-06 21:30) [170]

Verg ©   (06.04.04 20:41)

PChar(A) > PChar(B) ?


 
Verg ©   (2004-04-06 21:43) [171]


> Игорь Шевченко ©   (06.04.04 21:30) [170]


Ну, я надеюсь, ты меня понял...


 
Style ©   (2004-04-06 21:43) [172]

Verg ©
а чего кричать то так??
понимаю что со знаком, просто возможно мое сознание помутнилось глядя на енту функцию
и я почему то решил, что если число больше чем 7FFFFFF  то оно станет отрицательным и соответственно меньше другому числу.

Но вот если в последнем варианте написать
 Pig(pointer($FFFFFFFF), pointer(20))
то первый параметр будет больше чем второй..

>>>Еще, почему high(integer) можно, а high(pointer) - нет?
наверное High  работает только с Ordinal, Array, or ShortString value типами.. к которым указатель не относится :)


 
DmitryPV   (2004-04-06 21:45) [173]

Н да... И как меня еще на работе держат??? И тем более приняли. :)) На самом деле, ИМХО, првильно тут говорили, что каждый хорошо разбирается в основном в области, в которой приходится работать каждый день. Голова у человека не резиновая! Зачем тогда хелпы и в магазинах куча справочников?
Ну и конечно, прежде чем идти на собеседование, необходимо ВНИМАТЕЛЬНО прочитать требования к кандидатам. А то допустим, работает человек в основном с БД (как я например, Delphi+M$SQLServer), а начинаются тесты на крутой WinAPI, ессно основательно подзабытый, потому как не очень и нужный. И начинается...


 
Verg ©   (2004-04-06 21:48) [174]


> Style ©   (06.04.04 21:43) [172]
> Verg ©
> а чего кричать то так??


Да, не, нормально все, просто задолбало маленько видеть это Integer(@P).
Но это мое, личное :) Я ж сказал - крик души.


> >>>Еще, почему high(integer) можно, а high(pointer) - нет?
> наверное High  работает только с Ordinal, Array, or ShortString
> value типами.. к которым указатель не относится :)


Наверно, мысль идет в правильном направлении... :))


 
Style ©   (2004-04-06 21:50) [175]

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

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


 
Юрий Зотов ©   (2004-04-06 21:53) [176]

> Piter ©   (06.04.04 21:24) [168]

Сначала о P.S.

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

1. > Именно такой формат имеет ShortString. Первый байт...
Все же нулевой, а не первый. К нему прямо так и можно обращаться - Byte(S[0]) дает длину.

2. > тем более, что тип недокументирован
Уже документирован. В D7 структура AnsiString есть в справке (топик "Long string types").

3. Про AnsiString не сказано главное - что это, как и PChar, тоже указатель на первый символ тела строки. Это важно для понимания совместимости с PChar.

4. Еще можно добавить, что с длинными строковыми константами компилятор позволяет работать и как с AnsiString, и как с PChar, без преобразования.

4. И, если уж писать статью, то можно упомянуть, что AnsiString имеет управляемое время жизни (и пояснить, что это такое, для чего нужен RefCount, что есть область видимости). И что присвоение S1 := S2 дублирует адрес и увеличивает RefCount, но не приводит к размещению в памяти еще одной строки. И еще затронуть WideString, WideChar, PWideString и PWideChar. Но это все уже на усмотрение автора.

Теперь по поводу
> А можно огласить правильные ответы на вопросы

Думаю, все же не стоит. По крайней мере, пока что.
:о)


 
Style ©   (2004-04-06 21:59) [177]

2 Piter
>>>> даже $1000 это типа и не предел,

лично знаю таких Москвичей которые врядли бы ответили хоть на один вопрос из вышеприведенного теста И получают они не меньше 1000$.

Я бы в Москву и не поехал за меньшие деньги.
Какой смысл?? Даже с 1000$ если одному снимать квартиру, кормить себя, и тратиться на дорогу возможно у меня останется то что я в состоянии заработать у себя в Ногинске (ну если считать не только работу, с калымами вместе). Конечно немного выгодно, но не настолько чтобы бросать все и мчатся в Москву при первом предложении в 1000$. Нужно очень многое обдумать..


 
Юрий Зотов ©   (2004-04-06 22:02) [178]

> Verg ©   (06.04.04 21:29) [169]

> Хорошо, пусть пока прокатывает

Я так и знал, что слово пока прозвучит и будет выделено. Поэтому заранее заготовил ответ. :о)

Тип Integer - это generic тип. Так что смена платформы не грозит глобальной чисткой сырцов. Простая перекомпиляция снова даст native код.

Разве что в Win64 распеределение адресного пространства станет совершенно иным... но это вряд ли.

Хотя, если честно, я и сам старюсь приводить к unsigned.


 
Vuk ©   (2004-04-06 22:05) [179]

function PiG( A, B : pointer ) : boolean;
begin
result := longword(A) > longword(B);
end;


 
Игорь Шевченко ©   (2004-04-06 22:08) [180]


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


Задачи, они разные бывают. И доступные адреса необязательно лежат в двух нижних гигабайтах адресного пространства.
Пример: ключ /3GB и параметр LargeAddressAware у EXE-файла. И DLL, написанная на Delphi и загружаемая таким вот приложением :)


 
Alex Konshin ©   (2004-04-06 22:12) [181]

LongWord появилось довольно недавно (не помню в какой версии, IMHO в D4).
Если поищи в интернете, то в неком FAQ, имевшем хождение в FIDO тоже был приведен (мой:)) ответ с использованием PChar. Это работает для всех Delphi2+ версий.


 
Piter ©   (2004-04-06 23:14) [182]

Style (06.04.04 21:59) [177]
лично знаю таких Москвичей которые врядли бы ответили хоть на один вопрос из вышеприведенного теста И получают они не меньше 1000$


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

Юрий Зотов (06.04.04 21:53) [176]
Может быть, местами немножко путано


блин. И вы тоже говорите, что путанно. А не могли бы дать рекомендации - что именно путано? В чем нелинейность? Только давайте тогда в той ветке, чтобы эту не засорять...
>И, если уж писать статью,
да не статья это. Это пояснение для вопроса в FAQ "Как преобразовать PChar к String и наоборот". Это типа пояснение для тех, кто хочет копнуть глубже.

Юрий Зотов (06.04.04 21:53) [176]
Думаю, все же не стоит. По крайней мере, пока что


почему? Хотя вы правы, я еще подумаю... :)

- В чем принципиальное различие между классами TLabel и TStaticText?

Посмотрел тут в справку. Все таки TStaticText потомок TWinControl, то есть это окно, имеет Handle.
И собсна можно прочитать HELP: Use TStaticText instead of TLabel when the component’s accelerator key must belong to a windowed control—for example, on an ActiveX property page
Это главное отличие?

- От какого класса наследуется класс TCollection и почему?

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

- У каких компонентов есть событие OnCreate? Почему его нет у других компонентов?

это я так понимаю вопрос века. Ну так почему, народ? Тут уже есть обсуждение, но я не очень понимаю, объясните плиз доступно.

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

Сам бы не догадался, но вы тут говорите про перекрытие NewInstance.
Стал смотреть. Во-первых, непонятно что за строка в обработчике TObject.NewInstance
Что за _GetMem ?

И собственно говоря, ведь в задании сказано написать модуль.
Почему не использовать какую-нибудь глобальную переменную, объявленную в этом модуле?

type
 TMyClass = class
   constructor Create;
   destructor Destroy; override;
 end;
....
Ptr: TMyClass;

...

constructor TMyClass.Create;
begin
if Ptr=nil then
 Ptr:=Self
else
 abort;
end;

destructor TMyClass.Destroy;
begin
if Ptr=Self then
 Ptr:=nil;
end;


Вроде нормально. Такой код не позволит создать более одного экземпляра класса TMyClass, причем глобальная переменная Ptr будет указывать на текущий экземпляр класса или равна nil, если такого экземпляра не существует...


 
Style ©   (2004-04-06 23:32) [183]


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


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


 
Юрий Зотов ©   (2004-04-06 23:35) [184]

> Piter ©   (06.04.04 23:14) [182]

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

Про Create - решение зачесть вполне можно, но все же оно не совсем точно отвечает формулировке вопроса. Там сказано - не дает создать - а Ваше решение создать дает, но тут же убивает. А вот замещение NewInstance именно не дает создать.

if Ptr = nil then
begin
 Result := inherited NewInstance;
 Ptr := Result // поэтому лучше объявлять Ptr, как TObject
end
else Result := Ptr;

И, конечно, во FreeInstance надо обнулить Ptr - чтобы снова разрешить создание.


 
kaif ©   (2004-04-07 00:03) [185]

Для меня $1000/мес весьма высокая зарплата. Я столько зарабатываю, лишь когда мне попадается хороший заказчик. В данный момент у меня такого нет. Но и программистом, собственно, я себя и не считаю. Я скорее инженер/философ - создатель систем. Мне проще написать систему типа Allegro (см. рекламный баннер), чем работать на хозяина  с гарантированной зарплатой, пайком и и т.п. Возможно, это комплекс неполноценности. А может быть, просто я хорошо отдаю себе отчет в том, что отличает настоящее программирование от прикладного... Если мне удастся заработать определенные деньги на продаже новых полезных и мощных систем, то я, возможно, смогу пригласить хороших программистов, которые затем превратят эти системы в настоящее произведение искусства...
 И тогда я буду думать не о том, насколько хорошо эти ребята знают VCL или Object Pascal. Я буду думать о том, насколько они хорошо знают английский язык (чтобы придумывать смачные и короткие понятия, названия свойств, событий и методов), насколько у них железная минималистическая логика (чтобы не плодили классы, которые я и сам в состоянии наплодить) и чтобы соображаловка работала самостоятельно и эстетика и эргономика были - в крови. Вот как бы я рассуждал. Чтобы с радостю брали на себя ответственность и не боялись удивить меня новыми и смелыми решениями. Пусть перечеркнут все, что я сделал, но при этом пусть сохранят преемственность версий и уважают конечного юзера. Он (этот юзер) не виноват, что у нас много проблем. Это наши проблемы...
 Я убежден, что философия рождает новые идеи. Идущие вразрез с тем, что общепринято, но не работает, хотя все и пытаются делать вид, что работает... И те, кто способны выдвигать такие идеи - для меня - главный движитель работы. Это те, кому я всецело могу доверять. Даже если 90% времени они просто лежат в депрессии на диване и ничего не делают, им я доверяю больше, чем тем, кто все знает и ничего не создает...


 
Style ©   (2004-04-07 00:22) [186]

>>Для меня $1000/мес весьма высокая зарплата. Я столько
>>зарабатываю, лишь когда мне попадается хороший заказчик.

Значит у вас работа не постоянна :(
Да конечно зарплата не маленькая,хотя это такая зарплата, на которую можно снимать квартиру, и жить в Москве вообще. А с другой стороны для Москвы как бы это не самая высокая заработная плата :)
Хотя предложений на 1000$ не мало, именно на постоянную работу.


 
Cobalt ©   (2004-04-07 00:57) [187]

Насчёт OnCreate - немного порассуждаем:
Итак, мы знаем, что эти события есть только у форм и модулей данных (В стандартном наборе). При их возникновении все дочерние контролы уже созданы и их свойства установлены (Design-time).
Предназначены они для дополнительной настройки свойств  контролов/(внутренних структур данных), которые в Дизайн-режиме не установить, поскольку они зависят от каких-то посторонних факторов.

Обработчик задаётся в Design-time. И вызывается он непосредственно опосля (конкретно сам не проверял, но предполагаю) создания формы (а также загрузки её из ресурсов, где прописан также и обработчик).
При ручном создании формы обработчик OnCreate также вызывается без непосредственного указания программиста, и отменить его нельзя (опять же имхо).
Для прочих же контролов загрузка из ресурсов не предполагается.
При создании простого контрола негде указать ему обработчик (хотя это в принципе, можно передать ему в конструктор адрес процедуры)

Итак, это было такое вот размышление, а теперь эссенция:
Метод-обработчик OnCreate должен быть методом того же класса (или владельца), которому он присваивается в качестве обработчика события - сие есть гарантия существования экземпляра самого объекта-владельца метода (при работе с полями класса).


 
kaif ©   (2004-04-07 01:12) [188]

А я вот вообще не знаю, почему у каких-то компонентов нет события OnCreate. Например, для Frame-ов это событие совсем бы не помешало. Из-за отсутствия OnCreate у фреймов мне приходилось всякий раз переопределять их виртуальный конструктор Create. Правда мне один чел более красивое решение показал, но я его не помню, так как забыл. :(
Спрашивать, почему у Frame-ов нет OnCreate то же самое, что спрашивать, почему Бог триедин. Ну триедин - и все тут.


 
Sergey Masloff   (2004-04-07 07:03) [189]

Piter ©   (06.04.04 23:14) [182]
// НАЧАЛИ ЦИТАТУ
type
TMyClass = class
  constructor Create;
  destructor Destroy; override;
end;
....
Ptr: TMyClass;

...

constructor TMyClass.Create;
begin
if Ptr=nil then
Ptr:=Self
else
abort;
end;

destructor TMyClass.Destroy;
begin
if Ptr=Self then
Ptr:=nil;
end;

Вроде нормально. Такой код не позволит создать более одного экземпляра класса TMyClass, причем глобальная переменная Ptr будет указывать на текущий экземпляр класса или равна nil, если такого экземпляра не существует...

// Законцили цитату

И

...
for i := 0 to infinity do
begin
 with TMyClass.Create() do something;
 Ptr := nil;
end;


 
stone ©   (2004-04-07 09:53) [190]


> А то допустим, работает человек в основном с БД (как я например,
> Delphi+M$SQLServer), а начинаются тесты на крутой WinAPI

Я такое встречал. Пару лет назад искал работу, пошел на одно собеседование, зарплата приличная, из требований  - разработка БД и администрирование MSSQL, опыт работы с Delphi является плюсом. Пришел, дали тест. Ответил на 80%. Удивило то, что в тесте не было не только ни одного вопроса по MSSQL, но даже хотя бы косвенно связанного с БД. От дальнейшего собеседования отказался.


 
Fantasist.   (2004-04-07 10:24) [191]

/ точнее всего условию задачи отвечает замещение NewInsance и FreeInstance с глобальной переменной в implementation./

 Я, конечно, понимаю, что перекрывать NewInsance и FreeInstance это круто, но почему-то для создания singleton"a я применял такой алгоритм:


 TSingleton = class
 private
    constructor Create();
 public
    function GetInstance:TSingleton;
 end;

implementation

var
 singleton:TSingleton;

function GetInstance():TSingleton;
begin
 if (singleton = nil) then
    singleton:=TSingleton.Create;

 return singleton;  
end;


 Эх давно я на делфе не пописывал. Неужто там такое решение не приемлемо?


 
Юрий Зотов ©   (2004-04-07 10:55) [192]

> А то допустим, работает человек в основном с БД (как я
> например, Delphi+M$SQLServer), а начинаются тесты на крутой
> WinAPI

Уважаемые господа, работающие с БД! А также работающие с DirectX! А также работающие еще с чем угодно!

Вы, случаем, не забыли о том, что здесь приведена часть теста, используемого КОНКРЕТНОЙ командой в своих КОНКРЕТНЫХ целях? Вот НАМ от ЭТОГО теста нужно именно ЭТО, а что и от чего нужно ВАМ - дело Ваше.

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

Но мне кажется, что если у Вас в команде нет хотя бы одного человека, способного пройти именно ЭТОТ тест (причем ТОЧНО и ПОЛНОСТЬЮ) - то это значит, что такая команда вообще никакую действительно приличную Delphi-программу написать просто не может. В принципе.

Вот таково мое личное мнение. IMHO, то есть. Но можете поверить, что оно далеко не безосновательно.


 
Юрий Зотов ©   (2004-04-07 11:03) [193]

> Fantasist.   (07.04.04 10:24) [191]

> перекрывать NewInsance и FreeInstance это круто
Обычное перекрытие виртуального метода. Что же тут крутого?

> но почему-то для создания singleton"a я применял такой
> алгоритм:
Почему Вы применяли именно его, я не знаю, но советую все же прочесть [182] и [184]. Чтобы не повторять того, что уже говорилось.


 
serge35   (2004-04-07 11:13) [194]

Если на собеседовании предлагают ответить на несколько десятков вопросов по теории, значит работодателю нужен специалист с дипломом, желательно МГУ,МИФИ и т.д. для того, чтобы с гордостью заявлять всем, что у нас работают лучшие программисты.
Пусть даже на выходе чуть больше 0. Зато какой коллектив!!!


 
stone ©   (2004-04-07 11:16) [195]


> Юрий Зотов ©   (07.04.04 10:55) [192]


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


> Но мне кажется, что если у Вас в команде нет хотя бы одного
> человека, способного пройти именно ЭТОТ тест (причем ТОЧНО
> и ПОЛНОСТЬЮ) - то это значит, что такая команда вообще никакую
> действительно приличную Delphi-программу написать просто
> не может. В принципе.
>
> Вот таково мое личное мнение. IMHO, то есть. Но можете поверить,
> что оно далеко не безосновательно.


Ни я, ни ни кто из нашей команды не смог ответить на вопрос:
1.1. Чему будет равно W после выполнения следующего кода 32-битным процессором семейства x86? Ответ объяснить.
type
PWord = ^word;
var
I: integer;
W: word;
begin
I := High(I) shr 8;
W := PWord(Integer(@I) + 2)^;
end;

значит, никто не прошел ЭТОТ тест (причем ТОЧНО и ПОЛНОСТЬЮ), значит, что такая команда вообще никакую действительно приличную Delphi-программу написать просто не может.

Вот только интересно почему?

ЗЫ. Мы создаем программу, которая работает с СУБД MSSQL.
ЗЗЫ. Чем отличить действительно приличную Delphi-программу от неприличной Delphi-программы?


 
Юрий Зотов ©   (2004-04-07 11:19) [196]

> kaif ©   (07.04.04 00:03) [185]

Видимо, Вам просто не приходилось работать в команде и нанимать конкретных людей под конкретную работу. Видите ли, в команде нужны не только лежащие на диване творцы идей, но и те, кто до  творения философии пока еще не дорос, но зато умеет эту кем-то рожденную философию понять сам и объяснить ее компьютеру. На понятном КОМПЬЮТЕРУ языке.

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


 
Romkin ©   (2004-04-07 11:29) [197]

Юрий Зотов ©  (07.04.04 10:55) [192] Вот уж ИМХО!! Мдя...
Я не особо помню, отвечал на этот тест давно, в прошлый раз. Но ответил не полностью :(
Пойду посыпать голову пеплом - никакую приличную программу написать не можем :(((


 
Юрий Зотов ©   (2004-04-07 11:44) [198]

> stone ©   (07.04.04 11:16) [195]

> Вот только интересно почему?

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

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

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


 
stone ©   (2004-04-07 11:56) [199]


> Юрий Зотов ©   (07.04.04 11:44) [198]

Разводить флейм по поводу того, что может или не может произойти в обозримом (или далеком будущем) по тем или иным причинам, сродни "делению шкуры неубитого медведя". Я не спорю, что чем больше знаний, тем лучше. Просто не слишком ли категоричное Ваше ИМХО...
Собственно, это и было сутью вопроса.


 
pasha_golub ©   (2004-04-07 11:58) [200]

Юрий Зотов ©   (07.04.04 11:44) [198]
Со всем уважением к вам, но мне кажется, что 1.1 это интересный теоретический вопрос (даже очень, эдакая головоломка), но не более.



Страницы: 1 2 3 4 5 6 7 8 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.87 MB
Время: 0.07 c
14-1081230936
Sergey13
2004-04-06 09:55
2004.05.02
ГМ продукты. Есть или не есть (в смысле кушать)?


1-1082041888
Avreliy
2004-04-15 19:11
2004.05.02
Массив объектов класса TEdit


1-1081882612
Влад Сташневский
2004-04-13 22:56
2004.05.02
Как присвоить один StringList другому


3-1080903710
Zn
2004-04-02 15:01
2004.05.02
Глюк в IBSQL


3-1081383362
big_bugzy
2004-04-08 04:16
2004.05.02
Как в трех уровневом приложении получить идентификатор?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский