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

Вниз

Тестовые задания по Delphi   Найти похожие ветки 

 
K-1000 ©   (2016-06-11 02:41) [0]

Хочу узнать свой скилл.


 
Юрий Зотов ©   (2016-06-11 08:26) [1]

Три вопроса по теме "знание и понимание VCL":

1. У каких компонентов есть событие OnCreate?

2. Почему этого события нет у других компонентов?

3. Если Вы пишете свой компонент, в предках которого события OnCreate нет, то как можно реализовать такое событие (или его аналог)?

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


 
K-1000 ©   (2016-06-11 09:34) [2]


> Юрий Зотов ©   (11.06.16 08:26) [1]
> Три вопроса по теме "знание и понимание VCL":
>
> 1. У каких компонентов есть событие OnCreate?

Которые обрабатывают событие WM_CREATE.

> 2. Почему этого события нет у других компонентов?

Там где это не нужно.

> 3. Если Вы пишете свой компонент, в предках которого события
> OnCreate нет, то как можно реализовать такое событие (или
> его аналог)?

Перекрыть AfterConstruction()?


 
Pavia ©   (2016-06-11 09:35) [3]

Дядя Юра.
А в чем смысл сих вопросов? Ответы простые, но не всем"же нужны знания создания компонентов.

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


 
Leonid Troyanovsky ©   (2016-06-11 09:52) [4]


> K-1000 ©   (11.06.16 02:41)

http://delphimaster.net/view/15-1227448089

--
Regards, LVT.


 
Юрий Зотов ©   (2016-06-11 09:58) [5]

> K-1000 ©   (11.06.16 09:34) [2]

Увы, все три ответа - неверные.


 
Игорь Шевченко ©   (2016-06-11 10:02) [6]


> Хочу узнать свой скилл.


Выложи пример своего кода на обозрение - узнаешь.


 
Юрий Зотов ©   (2016-06-11 10:07) [7]

> Pavia ©   (11.06.16 09:35) [3]

> А в чем смысл сих вопросов?

В выяснении того, насколько человек знает (а главное, понимает!) VCL.

> Ответы простые
А Вы сначала попробуйте на них ответить. Вдруг окажется, что не такие уж они и простые?

> но не всем"же нужны знания создания компонентов.
Не всем. Поэтому мы и выясняем скилзы отвечающего - может ли он писать свои компоненты, или пока еще только готовые может использовать?

> Вот вы лучше скажите ... Вопрос вынес в отдельную тему.
Пошел читать.


 
K-1000 ©   (2016-06-11 14:30) [8]

Вообще, хотелось бы получить именно задания по программированию.
Типа: "нужно написать класс для работы с [на ваше усмотрение]".


 
K-1000 ©   (2016-06-11 14:31) [9]


> Игорь Шевченко ©   (11.06.16 10:02) [6]
>
> > Хочу узнать свой скилл.
>
>
> Выложи пример своего кода на обозрение - узнаешь.


Хорошая идея. )


 
DayGaykin ©   (2016-06-11 14:34) [10]


> Выложи пример своего кода на обозрение - узнаешь.

Результат будет один и тот-же вне зависимости от кода.


 
Юрий Зотов ©   (2016-06-11 15:03) [11]

> K-1000 ©   (11.06.16 14:30) [8]

> Типа: "нужно написать класс для работы с [на ваше усмотрение]".


1. Это - чисто на программирование:

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

2. А это чтобы - с VCL и WinAPI помучаться:

Написать класс формы, у которой контролы могут быть расположены в неклиентской области (в том числе, в design-time).


 
DayGaykin ©   (2016-06-11 22:47) [12]


> Юрий Зотов ©   (11.06.16 15:03) [11]

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

Довести проект до релиза, внедрить его, получить положительные отзывы - вот что выдает уровень. Это важно умение.
А как у вас переменные называются, как код отформатирован, сколько памяти ест ваш алгоритм (если он решает задачу), используете ли вы goto и тому подобные факты по большому счету никого не интересуют, кроме заурядных программистов.


 
Eraser ©   (2016-06-12 01:31) [13]

Да, в [6] чуть ли не единственный работающий способ узнать скилл программиста.
причем, чем больше кода, тем лучше. еще лучше какой-нибудь готовый проект.
именно по-этому, один из лучших способов в любой момент найти, без особых усилий, приличную работу по нашей специальности - вести свой open source проект (будь то приложение, библиотека, фреймворк и т.д.), который действительно полезен хотя бы десятку человек.


> [11]


> системе счисления


> Разрядная сетка

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

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

поэтому я за [6].


 
Германн ©   (2016-06-12 01:37) [14]


> DayGaykin ©   (11.06.16 22:47) [12]
>
>
> > Юрий Зотов ©   (11.06.16 15:03) [11]
>
> Это все частные задачи, а не показатель уровня.
>
> Довести проект до релиза, внедрить его, получить положительные
> отзывы - вот что выдает уровень.

Чей уровень?
Прикладного программиста в некоей фирме решающей некие частные задачи? Возможно в этом случае ты прав. Но что хотел узнать о своём уровне автор вопроса?


 
Германн ©   (2016-06-12 01:46) [15]


> DayGaykin ©   (11.06.16 22:47) [12]

Ну и вдобавок.

> Довести проект до релиза, внедрить его, получить положительные
> отзывы - вот что выдает уровень.

Это относится к индивидуальным предпринимателям-программистам. В нормальной ситуации за это всё должны отвечать многие.


 
Германн ©   (2016-06-12 01:48) [16]

Удалено модератором
Примечание: Создание пустых сообщений


 
DayGaykin ©   (2016-06-12 02:41) [17]


> Германн ©   (12.06.16 01:46) [15]
>
> > DayGaykin ©   (11.06.16 22:47) [12]
>
> Ну и вдобавок.
>
> > Довести проект до релиза, внедрить его, получить положительные
>
> > отзывы - вот что выдает уровень.
>
> Это относится к индивидуальным предпринимателям-программистам.
>  В нормальной ситуации за это всё должны отвечать многие.

Это относится ко всем. Один ты или в команде не имеет значения. Если нет результатов - нет и мастерства, будьте вы там хоть все суперменами.

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

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


 
Юрий Зотов ©   (2016-06-12 08:22) [18]

Неожиданный ракурс приняло обсуждение...

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

Ему же предлагают оценить свой уровень как аналитика, архитектора, менеджера, сейлера... в общем, кого угодно, но только не программиста.

А давайте еще дадим ему гастрономические рецепты? Тогда он сможет оценить свой уровень, как повара. Нам ведь наплевать, что хотел он совсем другого, не так ли?.

Болтовня высокого уровня...


 
Юрий Зотов ©   (2016-06-12 08:30) [19]

> Германн ©   (12.06.16 01:48) [16]

Правильные ответы я, конечно, привести могу. Но хотелось бы, чтобы их привели те, кто посчитал вопросы очень простыми.

Это же нетрудно и недолго... раз все так просто...


 
Юрий Зотов ©   (2016-06-12 08:39) [20]

Что же касается экспертной оценки кода - вещь хорошая, если выработаны единые для всех экспертов критерии такой оценки. Иначе получим басню:
http://deti-online.com/basni/basni-mihalkova/slon-zhivopisec


 
Игорь Шевченко ©   (2016-06-12 10:25) [21]

DayGaykin ©   (11.06.16 22:47) [12]

Lamers must die!


 
Kerk ©   (2016-06-12 11:47) [22]

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

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

Ну и лучше всего конечно посмотреть на код. Какой-нибудь опенсорс в идеале.


 
Юрий Зотов ©   (2016-06-12 12:11) [23]

> Kerk ©   (12.06.16 11:47) [22]

Хорошо - ответь, подглядывая. Куда угодно.
:o)


 
Kerk ©   (2016-06-12 13:20) [24]

Если честно, лень. Но я посмотрю когда буду рядом с компьютером.

P.S. Как продолжение задачи про конвертацию, я бы попросил добавить операции над римскими числами. Чтобы посмотреть как оно впишется в код написанный по первоначальной формулировке.


 
Юрий Зотов ©   (2016-06-12 13:56) [25]

> Kerk ©   (12.06.16 13:20) [24]

> добавить операции над римскими числами. Чтобы посмотреть как оно
> впишется в код написанный по первоначальной формулировке.


Впишется. В библиотеку добавляются 4 функции:
- ввод/вывод римских чисел;
- перевод из римской системы в любую позиционную и обратно.

Таким образом, задача сводится к уже решенной. А самое главное, что это расширение функционала никак не влияет на уже отлаженный код. Поэтому впишется.

PS
Кстати, эту задачу я не из головы придумал - это был реальный курсовой проект одного студента-первокурсника из МИРЭА. Только задача у него была более объемной, чем я здесь обозначил.


 
Kerk ©   (2016-06-12 14:30) [26]

Так я ж не говорю, что не впишется. Я говорю, что конкретное решение конкретного человека многое о нем расскажет.


 
Германн ©   (2016-06-13 00:28) [27]


> Юрий Зотов ©   (12.06.16 08:30) [19]
>
> > Германн ©   (12.06.16 01:48) [16]
>
> Правильные ответы я, конечно, привести могу. Но хотелось
> бы, чтобы их привели те, кто посчитал вопросы очень простыми.
>
>

Я написал тот пост не к тому, чтобы ты дал ответ. Просто сей вопрос ты уже тут задавал когда-то. И тогда и сейчас на него сходу не смог ответить никто из желающих проверить свой "скилл".
P.S. Я тоже не смог :(  
Но мне так глубоко в VCL не было нужды залезать.


 
Германн ©   (2016-06-13 00:52) [28]


> Leonid Troyanovsky ©   (11.06.16 09:52) [4]

Только на delphimaster.net и сохранилось упоминание о королевской квинтане.
А некоторые не понимают для чего сей хостинг нужно оплачивать.


 
K-1000 ©   (2016-06-13 04:56) [29]


> Юрий Зотов ©   (11.06.16 15:03) [11]


Хорошие задания.

А можно ещё на для большего выбора? Я немного любитель с графикой поработать...


 
Игорь Шевченко ©   (2016-06-13 10:26) [30]


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


Я не понимаю.


 
Юрий Зотов ©   (2016-06-13 11:42) [31]

> K-1000 ©   (13.06.16 04:56) [29]

> с графикой поработать...


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


 
Юрий Зотов ©   (2016-06-13 12:03) [32]

> Германн ©   (13.06.16 00:28) [27]
> на него сходу не смог ответить никто из желающих


Vuk смог (в чем можно было и не сомневаться). Еще кто-то смог (уж и не помню, кто именно).

Эти, на первый взгляд действительно простые вопросы на самом деле требуют именно понимания VCL, одними знаниями тут не обойтись.

Даже самый простой вопрос (первый) уже предполагает 2 варианта ответа - частный и общий. Частный ответ - это просто перечисление компонентов, имеющих событие OnCreate. А общий ответ начинается словами "Событие OnCreate имеют компоненты, которые..." - и далее идет расшифровка этого "которые".

Надо ли пояснять, что частный вариант предполагает знание, а общий - понимание VCL ?


 
Юрий Зотов ©   (2016-06-13 12:21) [33]

> Германн ©   (13.06.16 00:28) [27]

> мне так глубоко в VCL не было нужды залезать.


Само собой, это нужно не всем. Цель этого теста другая. Мы предлагали эти вопросы (в числе других, конечно) соискателям на трудоустройство. По ответам было видно насколько человек силен (или слаб) в той или иной области. И если в данный момент нам было нужно закрыть кадровую прореху в какой-то области, а человек показал, что именно эту область он знает хорошо, то общий результат теста был положительным - даже если соискатель не смог хорошо ответить на вопросы из других областей.


 
DayGaykin ©   (2016-06-13 12:39) [34]


> Игорь Шевченко ©   (12.06.16 10:25) [21]
> DayGaykin ©   (11.06.16 22:47) [12]
>
> Lamers must die!

Игорь, если ламеры не вымерли, значит для чего-то они нужны :)


 
megavoid ©   (2016-06-13 12:54) [35]

занимательно :)

procedure TForm1.winpaint(var Msg: TWmPaint);
var
 DC: HDC;
begin
 inherited;
 DC := GetDCEx(Handle, 0, DCX_PARENTCLIP);
 LineTo(DC, 300, 200);
 ReleaseDC(Handle, DC);
end;


 
megavoid ©   (2016-06-13 12:58) [36]

а не, контрол же перехватит ) не так всё сходу и просто ))


 
Юрий Зотов ©   (2016-06-13 13:02) [37]

> DayGaykin ©   (13.06.16 12:39) [34]

> если ламеры не вымерли, значит для чего-то они нужны


Два варианта:

1. Они не вымерли потому, что быстро плодятся.
2. Они нужны для того, чтобы быть звеном в пищевой цепочке.

:o)


 
Юрий Зотов ©   (2016-06-13 13:15) [38]

> megavoid ©   (13.06.16 12:58) [36]

> а не, контрол же перехватит ) не так всё сходу и просто


Ну не буду же я задавать задачку, которая решается одной простейшей строчкой в OnPaint формы?
:o)

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

Пример решения этой задачки есть на сайте Розыча - но уж точно не в одну строчку.


 
Юрий Зотов ©   (2016-06-13 13:30) [39]

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


 
Kerk ©   (2016-06-13 14:09) [40]


> Kerk ©   (12.06.16 13:20) [24]
> Если честно, лень. Но я посмотрю когда буду рядом с компьютером.

Ну ок, играть так играть.

Предположу, что все дело в порядке загрузки DFM. Глядя на датамодуль и форму, видно, что они в конструкторе вызывают InitInheritedComponent перед вызовом OnCreate, чтобы прочитать свои внутренности. Это и делает разницу. В момент работы конструктора остальных компонентов значения свойств еще не прочитаны и события вызывать нельзя. Судя по коду, все как-то так.


 
Юрий Зотов ©   (2016-06-13 14:27) [41]

> Kerk ©   (13.06.16 14:09) [40]

Все верно (в чем я и не сомневался). Но остался третий вопрос - а как все же сделать событие OnCreate (или его аналог) например, в потомке TButton (если такое вообще возможно) ?


 
DayGaykin ©   (2016-06-13 14:53) [42]


> Юрий Зотов ©   (13.06.16 14:27) [41]

Судя по коду перекрыть TComponent.Loaded


 
DayGaykin ©   (2016-06-13 14:53) [43]


> Юрий Зотов ©   (13.06.16 14:27) [41]

Судя по коду перекрыть TComponent.Loaded


 
DayGaykin ©   (2016-06-13 14:54) [44]

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


 
K-1000 ©   (2016-06-13 15:56) [45]


> Юрий Зотов ©   (13.06.16 11:42) [31]


А подглядывать куда-нибудь можно? :)
Ведь когда прогер "решает задачу" он гуглит или нужно без этого?


 
Юрий Зотов ©   (2016-06-13 16:00) [46]

> DayGaykin ©   (13.06.16 14:53) [43]

Loaded, конечно.

Итак, сообщество убедительно продемонстрировало умение понимать чужой код. Что немаловажно, спору нет.

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


 
Юрий Зотов ©   (2016-06-13 16:03) [47]

> K-1000 ©   (13.06.16 15:56) [45]

Гуглить можно, конечно.


 
DayGaykin ©   (2016-06-13 16:06) [48]


> Юрий Зотов ©   (13.06.16 16:00) [46]

Отсутствие ни о чем не говорит, а присутствие будет плюсом к уровню.


 
Юрий Зотов ©   (2016-06-13 16:15) [49]

> DayGaykin ©   (13.06.16 14:53) [43]

Еще по поводу "программу можно скачать, установить и она будет работать". Это прокатит для программ типа "Hello, world!" Не в смысле сложности, а в смысле того, что программе, какая бы сложная она ни была, ничего не требуется, кроме нее самой и каких ее локальных ресурсов.

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

И как быть?


 
Юрий Зотов ©   (2016-06-13 16:21) [50]

> DayGaykin ©   (13.06.16 16:06) [48]

> присутствие будет плюсом к уровню.


Присутствие программы в сети убедительно говорит о том, что ее автор (а может, даже и не сам автор) умеет выкладывать файлы в сеть. Больше это присутствие не говорит ни о чем.

Но оно, конечно, плюс к его уровню. Серьезнейший.

LOL


 
DayGaykin ©   (2016-06-13 16:48) [51]


> - купить, установить и настроить сервер БД;
> - развернуть саму БД;
> - купить, установить и настроить сервер приложений;
> - развернуть мою программу;
> - разрешить взаимодействие всех этих компонентов по сети.
>

Это говорит об умении болоболить, а не о сложности программы.
sudo apt install postgresql openjdk tomcat
И еще 3-4 команды.

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


 
Юрий Зотов ©   (2016-06-13 17:03) [52]

> DayGaykin ©   (13.06.16 16:48) [51]

1. Выражения выбираем, да? Кстати "балаболить" пишется через "а" в обоих случаях.

2. Дело не в сложности, а в том, что инсталлировать ради собеседования кучу софта никто не будет.


 
DayGaykin ©   (2016-06-13 17:15) [53]


> Дело не в сложности, а в том, что инсталлировать ради собеседования
> кучу софта никто не будет.

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


 
Юрий Зотов ©   (2016-06-13 17:34) [54]

> DayGaykin ©   (13.06.16 17:15) [53]

> Я привел и другие способы продемонстрировать результат.

Увы, я их не увидел. Где смотреть?

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

Что плюс - согласен. Что всегда и что большой - не согласен.

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

PS
Однако, мы ушли в оффтоп. Может, завяжем этот никчемный спор ни о чем?


 
Kerk ©   (2016-06-13 19:39) [55]

По поводу программ в интернете и исходников поделюсь поучительно историей. Однажды наняли мы в команду программиста. У него и исходники в интернете, и программы работают, и вообще по общению видно, что он толковый программист. Но вот начал он работать и то в него будильник сломался, то с детьми надо сидеть, то вообще больничный. Так он за несколько месяцев не сделал почти ничего. В итоге пришлось расстаться. Абсолютно не понимая, что с ним такое. Потому что все что он делает вне работы объективно весьма солидно. Из любопытства обратились к его предыдущему работодателю и оказалось, что его уволили с прошлой работы по тем же самым причинам. Ровно та же история.

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


 
Тимохов Дима ©   (2016-06-14 01:15) [56]

Я понял одно - главное никому не показывать исходников ))))
Сразу бинарники надо давать - мастера же! Разберутся!!! ))


 
Германн ©   (2016-06-14 02:45) [57]


> Игорь Шевченко ©   (13.06.16 10:26) [30]
>
>
> > А некоторые не понимают для чего сей хостинг нужно оплачивать.
>
>
>
> Я не понимаю.
>

Ну я как раз об этом и говорил.


 
Германн ©   (2016-06-14 02:47) [58]

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


 
Германн ©   (2016-06-14 02:59) [59]

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


 
Германн ©   (2016-06-14 03:27) [60]

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


 
K-1000 ©   (2016-06-14 06:09) [61]


> Юрий Зотов ©   (13.06.16 13:15) [38]
>
> Пример решения этой задачки есть на сайте Розыча - но уж
> точно не в одну строчку.


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


 
KSergey ©   (2016-06-14 09:46) [62]

> K-1000 ©   (11.06.16 14:30) [8]
> Вообще, хотелось бы получить именно задания по программированию.
> Типа: "нужно написать класс для работы с [на ваше усмотрение]".

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

А ответов на вопросы ЮЗ я не знаю.


 
Игорь Шевченко ©   (2016-06-14 10:33) [63]

K-1000 ©   (14.06.16 06:09) [61]

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

Германн ©   (14.06.16 03:27) [60]

http://www.delphimaster.ru/forums.shtml#rule


 
K-1000 ©   (2016-06-14 11:43) [64]


> Игорь Шевченко ©   (14.06.16 10:33) [63]
> K-1000 ©   (14.06.16 06:09) [61]
>
> Судя по твоим репликам у тебя скилл нулевой. Рано тебе такие
> задачи решать.


По каким конкретно репликам?


 
Empleado ©   (2016-06-14 11:54) [65]


> Kerk ©   (13.06.16 19:39) [55]
> Какова мораль? Да черт его знает. Наверно стоит уделять
> больше внимания отзывам с прошлого места работы.

Было бы занятно, если бы по тому же принципу жен выбирали :)


 
Rouse_ ©   (2016-06-14 15:36) [66]


> K-1000 ©   (14.06.16 06:09) [61]
> Раз по заданию пишут целые статьи опытные прогеры, то почему
> это задание должно быть на скилл?

Мне просто было интересно рассказать о "нюансах".
Заметь - о нюансах, а не о самом решении :)


 
Rouse_ ©   (2016-06-14 15:40) [67]


> KSergey ©   (14.06.16 09:46) [62]
> Ценность специалиста - в умении разбираться в чужих поделках
> и уметь их по делу использовать в нужный момент, не изобретая
> свои велосипеды.

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


 
KSergey ©   (2016-06-14 16:44) [68]

> Юрий Зотов ©   (13.06.16 13:15) [38]
> Пример решения этой задачки есть на сайте Розыча

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


 
KSergey ©   (2016-06-14 16:45) [69]

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


 
Rouse_ ©   (2016-06-14 16:49) [70]


> KSergey ©   (14.06.16 16:44) [68]
> А можно ссылку? не смел найти.

http://alexander-bagel.blogspot.ru/2013/03/draw-over-twincontrol.html


> KSergey ©   (14.06.16 16:45) [69]
> По поводу вопросов: самое занятное в них то, что задающий
> спрашивает то и только то, что знает сам.
> Это очень показательно при обходе компаний по вакансиям.
>  Занимательное дело, доложу я вам!

Было-бы очень странно если наоборот :)


 
Юрий Зотов ©   (2016-06-14 19:44) [71]

> KSergey ©   (14.06.16 16:45) [69]

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


Даже не знаю - плакать или смеяться...

Впрочем, если это Вас не устраивает, то могу спросить Вас о том, чего не знаю сам.

Готовы?


 
Kerk ©   (2016-06-14 21:21) [72]

KSergey криво сформулировал, но по сути я с ним согласен. Очень часто есть тенденция спрашивать о том, с чем недавно сталкивался или о чем недавно прочитал. В итоге собеседование превращается в викторину: читает ли кандидат те же блоги, что и ты.

Не перестаю считать, что вопрос про OnCreate из этой серии. Кто-то сталкивался, кто-то нет. Как это характеризует? Да никак. Кто читал эту ветку, ответит правильно :)


 
iop ©   (2016-06-14 21:29) [73]

сформулировано не криво.

сформулировано с т.з. третьего лица, наблюдающего собеседование со стороны.

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


 
Юрий Зотов ©   (2016-06-14 21:34) [74]

> Kerk ©   (14.06.16 21:21) [72]

> Не перестаю считать, что вопрос про OnCreate из этой серии.

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


 
iop ©   (2016-06-14 21:45) [75]

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


 
KSergey ©   (2016-06-14 21:52) [76]

> Kerk ©   (14.06.16 21:21) [72]
> KSergey криво сформулировал, но по сути я с ним согласен.
>  Очень часто есть тенденция спрашивать о том, с чем недавно
> сталкивался или о чем недавно прочитал. В итоге собеседование
> превращается в викторину: читает ли кандидат те же блоги, что и ты.

Я в самом деле выразился не очень понятно, т.е. понять комичность ситуации может лишь тот, кто её видел. Спасибо за развёрнутое толкование.

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

При этом я ни в коем случае не умаляю ни знаний ЮЗ, ни качество самого вопроса, разумеется.


 
KSergey ©   (2016-06-14 21:58) [77]

> Rouse_ ©   (14.06.16 16:49) [70]

Спасибо за ссылку


 
iop ©   (2016-06-14 22:02) [78]

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

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

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


 
Kerk ©   (2016-06-14 22:44) [79]


> Юрий Зотов ©   (14.06.16 21:34) [74]


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

Не любой :)

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

Из хороших на мой взгляд вопросов, с которыми сталкивался: "Нарисуйте архитектуру игры Супермарио". Какая там на самом деле архитектура? Да кто знает. Но неужто не интересно посмотреть кто чего нарисует? :)


 
Rouse_ ©   (2016-06-14 23:19) [80]

Иногда бывает другая ситуация, к примеру: я знаю ответ на вопрос Зотыча, но знаю и альтернативный - расширенный вариант. Что считать верным? ;)


 
DayGaykin ©   (2016-06-15 00:11) [81]


> Rouse_ ©   (14.06.16 23:19) [80]
>

А иногда бывает так:
"В чем основное отличие Java и JavaScript?"

Ну и как на это отвечать?


 
Rouse_ ©   (2016-06-15 00:20) [82]

Обьекты


 
Германн ©   (2016-06-15 01:02) [83]


> Kerk ©   (14.06.16 22:44) [79]
>
>
> > Юрий Зотов ©   (14.06.16 21:34) [74]
>
>
> > Совершенно согласен и скажу даже сильнее: любой технический
> > вопрос на собеседовании - из этой серии. Поскольку ответ
> > спрашивающий всегда знает заведомо.
>
> Не любой :)
>
> Я потому и ополчился на вопрос про OnCreate, а не на вопрос
> про конвертацию. Потому что первый вопрос - это вопрос телевикторины
> на знание фактов

Не совсем так. Это вопрос на знание основ Дельфи для разработчика классов. Вопрос про конвертацию вообще имеет очень слабое отношение именно к Дельфи. Там только вопрос алгоритмов и грамотного их применения.
P.S. Вот тут хочется ещё раз спросить с какой целью ТС задал свой вопрос "Хочу узнать свой скилл"?
Для оценки "кодера" вопрос про OnCreate явно не подходит.


 
DayGaykin ©   (2016-06-15 01:23) [84]


> Rouse_ ©   (15.06.16 00:20) [82]
> Обьекты

Вопрос оказался провокацией.


 
KSergey ©   (2016-06-15 07:45) [85]

> Германн ©   (15.06.16 01:02) [83]
> Не совсем так. Это вопрос на знание основ Дельфи для разработчика
> классов. Вопрос про конвертацию вообще имеет очень слабое
> отношение именно к Дельфи. Там только вопрос алгоритмов
> и грамотного их применения.
> P.S. Вот тут хочется ещё раз спросить с какой целью ТС задал
> свой вопрос "Хочу узнать свой скилл"?
> Для оценки "кодера" вопрос про OnCreate явно не подходит.
>

на мой взгляд как у конкретного вопроса в конкретном месте было неудачное ограничение: "никуда не подглядывая". В таком варианте - именно телевикторина.
А вот если убрать это ограничение - это уже отличный вопрос по всем параметрам. Один фик ответ на ту часть, где уточняется "почему" и "чем заменить" напрямую нигде не содержится и тут-то и можно выбирать по ответам.
Я бы не догадался даже с подглядыванием. В отличии.

> Германн ©   (15.06.16 01:02) [83]
> P.S. Вот тут хочется ещё раз спросить с какой целью ТС задал свой вопрос "Хочу узнать свой скилл"?
> Для оценки "кодера" вопрос про OnCreate явно не подходит.

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


 
Юрий Зотов ©   (2016-06-15 09:58) [86]

> Kerk ©   (14.06.16 22:44) [79]

> первый вопрос - это вопрос телевикторины на знание фактов,


Не согласен.

Первый вопрос (про OnCreate) состоит из трех взаимосвязанных частей. Можно сказать, что первая часть - действительно на знание фактов. Для ответа достаточно назвать TForm и TDataModule. И если человек отвечает именно так, то он показывает свои знания, но не более того. Но если он отвечает так:

"Событие OnCreate имеют компоненты, которые:"
- являются контейнерами других компонентов;
- при создании грузят себя и свое содержимое из DFM или иного ресурса;
- после полной загрузки генерируют событие OnCreate.

На сегодня это TForm и TDataModule. Но завтра могут появиться и другие.


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

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

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


 
Игорь Шевченко ©   (2016-06-15 10:34) [87]

Я тоже знаю вопрос, на который без 100 грамм не ответить.

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

Занимательно, что про Firemonkey никто не спрашивает. К чему бы это ?


 
Юрий Зотов ©   (2016-06-15 11:16) [88]

> KSergey ©  
> All

Вопрос, ответа на который я не знаю.

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

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

2. У базовой формы есть добавленные нами новые published-свойства. Чтобы эти свойства были доступны в design-time, базовая форма  зарегистрирована в IDE через RegisterCustomModule.

3. Базовая форма лежит в run-time пакете. Еще есть design-time пакет, который в required ссылается на run-time пакет и инсталлирован в IDE. Design-time пакет содержит процедуру register и все остальное, что нужно только в design-time. Это эксперт, помещающий базовую форму в репозиторий, а также (если надо) редакторы свойств и компонентов.

4. Что ожидаем. Жмем New-Other, в репозитории выбираем базовую форму и получаем ее наследника (рабочую форму) со всеми компонентами и добавленными нами свойствами - причем эти свойства доступны для правки в design-time.

5. Что имеем на самом деле. Жмем New-Other, в репозитории выбираем базовую форму и получаем ее наследника (рабочую форму) БЕЗ ВСЯКИХ КОМПОНЕНТОВ, АБСОЛЮТНО ПУСТУЮ. Но добавленные нами свойства есть и они действительно доступны для правки в design-time.

6. Убираем RegisterCusomModule. Жмем New-Other, в репозитории выбираем базовую форму и, само собой, получаем ее наследника (рабочую форму) со всеми компонентами. Но добавленных нами свойств в инспекторе объектов мы, естественно, не видим.

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

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

Ответ: я не знаю ответа.


 
Юрий Зотов ©   (2016-06-15 11:52) [89]

> Игорь Шевченко ©   (15.06.16 10:34) [87]

> Да, понимание VCL, но нахрен оно нужно - это понимание до
> таких глубин, чтобы сходу ответить на нетривиальные вопросы

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


 
картман ©   (2016-06-15 21:48) [90]


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

глубоко, да, очень глубоко


 
iop ©   (2016-06-15 22:05) [91]

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

создать проджект груп в которую входит проджект с дизайном предка и текущий проджект использующий предка.

перед созданием наследника убедится что открыта форма с предком


 
NoUser ©   (2016-06-15 22:12) [92]

>[87]
Firemonkey ???
http://images.popmatters.com/reviews_art/m/monkey_island_column_swordfighting.jpg ))


 
Германн ©   (2016-06-16 01:24) [93]


> KSergey ©   (15.06.16 07:45) [85]
>
> > Германн ©   (15.06.16 01:02) [83]
> > Не совсем так. Это вопрос на знание основ Дельфи для разработчика
> > классов. Вопрос про конвертацию вообще имеет очень слабое
> > отношение именно к Дельфи. Там только вопрос алгоритмов
> > и грамотного их применения.
> > P.S. Вот тут хочется ещё раз спросить с какой целью ТС
> задал
> > свой вопрос "Хочу узнать свой скилл"?
> > Для оценки "кодера" вопрос про OnCreate явно не подходит.
>
> >
>
> на мой взгляд как у конкретного вопроса в конкретном месте
> было неудачное ограничение: "никуда не подглядывая". В таком
> варианте - именно телевикторина.

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


 
Германн ©   (2016-06-16 01:59) [94]


>  Игорь Шевченко ©   (15.06.16 10:34) [87]
>
> Занимательно, что про Firemonkey никто не спрашивает. К
> чему бы это ?

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


 
Юрий Зотов ©   (2016-06-16 09:23) [95]

> iop ©   (15.06.16 22:05) [91]

Надо же, как все просто, оказывается. Но вот Erik Berry (это разработчик GExperts) почему-то так не считает. Вот что он говорит по этому поводу:

"Note that the IDE will not allow you to add both published properties and components to a custom module at the same time".

Значит, либо он неправ, либо Вы не в теме.


 
Юрий Зотов ©   (2016-06-16 09:40) [96]

Есть, правда, обходной путь, но он именно обходной.


 
KSergey ©   (2016-06-16 14:06) [97]

> Германн ©   (16.06.16 01:59) [94]
> Что тут занимательного? Кто тут хоть что-то знает о Firemonkey?
>  Не говоря уже о специалистах в этой области, которые сюда заходить не желают.

Вот это, кстати, в самом деле удивительно мне лично.
С одной стороны, Борланд в своей реинкарнации выпускает всё новые версии, куда включает как изменения в языке, так и переписанные библиотеки.
При этом изменения языка явно используются и изучаются (это видно по ответам на форуме), то изменения в стандартных библиотеках (опять же судя лишь по форуму) игнорируются чуть более, чем полностью (на мой личный взгляд). Фактически все познания - на уровне Дельфи 5/7 плюс те грабли, на которые наступали при использовании этих познаний в более новых версиях. Как так?
Или я ошибаюсь?


 
Игорь Шевченко ©   (2016-06-16 18:04) [98]

KSergey ©   (16.06.16 14:06) [97]


> Или я ошибаюсь?


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


 
Rouse_ ©   (2016-06-16 18:17) [99]


> Игорь Шевченко ©   (16.06.16 18:04) [98]
> Любую программу можно написать на Фортране.

Не любую :)


 
ttUser ©   (2016-06-16 21:38) [100]

>Обьекты

ооп как раз в javascript покруче любого дельфового. Только основано на прототипировании, а не на классическом наследовании классов. Возможностей больше, но понимать сложнее )


 
Kerk ©   (2016-06-16 21:50) [101]

А ты и TUser, который тут был - это разные люди?


 
ttUser ©   (2016-06-16 23:19) [102]

разные


 
Германн ©   (2016-06-17 01:35) [103]


> KSergey ©   (16.06.16 14:06) [97]
>
> > Германн ©   (16.06.16 01:59) [94]
> > Что тут занимательного? Кто тут хоть что-то знает о Firemonkey?
>
> >  Не говоря уже о специалистах в этой области, которые
> сюда заходить не желают.
>
> Вот это, кстати, в самом деле удивительно мне лично.
> С одной стороны, Борланд в своей реинкарнации выпускает
> всё новые версии, куда включает как изменения в языке, так
> и переписанные библиотеки.
> При этом изменения языка явно используются и изучаются (это
> видно по ответам на форуме), то изменения в стандартных
> библиотеках (опять же судя лишь по форуму) игнорируются
> чуть более, чем полностью (на мой личный взгляд). Фактически
> все познания - на уровне Дельфи 5/7 плюс те грабли, на которые
> наступали при использовании этих познаний в более новых
> версиях. Как так?
> Или я ошибаюсь?

Да просто мало кто пишет программы на FMX.


 
Юрий Зотов ©   (2016-06-17 12:43) [104]

> Kerk ©   (16.06.16 21:50) [101]
> А ты и TUser, который тут был - это разные люди?

> ttUser ©   (16.06.16 23:19) [102]
>разные


Ну очевидно же:

TUser - это class(...)
ttUser - это class of TUser

:o)



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

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

Наверх





Память: 0.78 MB
Время: 0.003 c
15-1465602099
K-1000
2016-06-11 02:41
2017.10.15
Тестовые задания по Delphi


4-1284236390
korbin dalas
2010-09-12 00:19
2017.10.15
Как определить с какими параметрами запущено ЧУЖОЕ приложение?


15-1465855893
Тимохов Дима
2016-06-14 01:11
2017.10.15
TXMLDocument


2-1448036373
gedevan
2015-11-20 19:19
2017.10.15
TScrollBar дергается при наведении или убирании мышки с него


15-1466199000
Юрий
2016-06-18 00:30
2017.10.15
С днем рождения ! 18 июня 2016 суббота





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