<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dev4Food &#187; Вопросы</title>
	<atom:link href="http://dev4food.ru/tag/voprosy/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev4food.ru</link>
	<description>Всё о работе за актуальные деньги</description>
	<lastBuildDate>Mon, 19 Jul 2010 08:56:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Коварный вопрос по Event,Delegate</title>
		<link>http://dev4food.ru/2010/02/kovarnyj-vopros-po-eventdelegate/</link>
		<comments>http://dev4food.ru/2010/02/kovarnyj-vopros-po-eventdelegate/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 11:35:06 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Программинг]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[Вопросы]]></category>
		<category><![CDATA[С#]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=1125</guid>
		<description><![CDATA[На собеседованиях любят задавать всякие каверзные вопросы. Одним из любимых вопросов на понимание .net платформы является вопрос про события и делегаты. В лучшем случае спрашивают отличия, в худшем могут задать такой вопрос на засыпку.
Дан код:

1
2
3
4
5
6
7
8
9
10
public class A
&#123;
  public void OnDoWork&#40;&#41;
  &#123;
    if &#40; DoWork != null &#41;
    [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-1161 alignright" style="margin: 10px;" title="Event, Delegate" src="http://dev4food.ru/wp-content/uploads/2010/02/awadhesh_singh.jpg" alt="" width="150" height="112" />На собеседованиях любят задавать всякие каверзные вопросы. Одним из любимых вопросов на понимание .net платформы является вопрос про события и делегаты. В лучшем случае спрашивают отличия, в худшем могут задать такой вопрос на засыпку.</p>
<p>Дан код:</p>

<div class="wp_codebox"><table><tr id="p11252"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p1125code2"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> A
<span style="color: #008000;">&#123;</span>
  <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> OnDoWork<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span> DoWork <span style="color: #008000;">!=</span> <span style="color: #0600FF; font-weight: bold;">null</span> <span style="color: #008000;">&#41;</span>
      DoWork<span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span>, EventArgs<span style="color: #008000;">.</span><span style="color: #0000FF;">Empty</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">event</span> EventHandler DoWork<span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<ol>
<li>Что будет с программой, если класс A видоизменить так: убрать ключевое слово event?</li>
<li>Что будет с программой, если вообще во всем коде убрать ключевые слова event?</li>
</ol>
<p><span id="more-1125"></span>Неподготовленных вопросы вводят в жуткий когнитивный диссонанс, как только они их осознают. Здесь главное удержаться от негодующего вопля и вспомнить синтаксические отличия применимости событий от делегатов:</p>
<ol>
<li>Событие — это тот же самый делегат, который наделяется некоторыми свойствами через слово event.</li>
<li>И событие и делегат можно объявить полем класса, но в отличие от делегата, событие не может быть локальной переменной метода (особо не роляет, но помнить стоит)</li>
<li>Событие нельзя запустить вне класса, в котором оно было объявлено (это самое важное отличие!!!)</li>
<li>Интерфейс не может содержать поля.</li>
<li>Событие всегда объявляется как «поле», а не свойство (add-remove не в счет).</li>
</ol>
<p>Это, пожалуй, единственные отличия события от делегата (я не берусь рассматривать семантическую разницу). Ну, или я что-то забыл, но вы мне сейчас напомните:)</p>
<p>Итак, если у нас есть интерфейс, в котором объявлено событие, и мы убираем ключевое слово event, то у нас возникает ошибка компилятора — дескать, интерфейс не может содержать поля (а именно полем-делегатом стало бывшее событие). Но если событие объявлено как поле класса, то с точки зрения компилятора будет совершенно корректно убрать ключевое слово.</p>
<p>Поэтому ответы на вопросы будут такие:</p>
<ol>
<li>Ничего не изменится</li>
<li>Ничего не изменится, если только в программе нет объявленных в интерфейсах событий.</li>
</ol>
<p>Да, и еще вот что удивительно — при ответе на вопрос некоторые начинают рассуждать, что событие — это MulticastDelegate, а вот Delegate может содержать ссылку только на один метод. В общем, это совершенно жуткая ересь, но тем не менее несколько разных людей мне таким образом пытались дать ответ на эти два вопроса. Откуда пошел этот миф, неизвестно. Если есть желание посмотреть, в чем же отличие MulticastDelegate от Delegate — можно сбегать поглядеть <a href="http://blogs.msdn.com/brada/archive/2004/02/05/68415.aspx" target="_blank">статью </a>мегаавторитета Брэда Абрамса — и убедиться, что различий между этим классами, кроме названия, нет.</p>
<p>П.С. Да, я знаю, что OnDoWork() не thread safe:)</p>
<p><em>&lt;— { послепоста реклама </em></p>
<p>Токарные станки применяются в нашей жизни повсеместно – автомастерские, ремонтные цеха автотранспорта, мастерские при котельных. С их помощью опытные работники, токари,  достаточно изготовляют самый большой спектр необходимых на производстве деталей.</p>
<p>Токарные <a href="http://www.am-s.ru/">станки с чпу</a> позволяют производить изделия гораздо быстрее и тщательнее, чем вручную. К недостатком можно отнести необходимость составления программы для станка.</p>
<p><em>послепоста } —&gt;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2010/02/kovarnyj-vopros-po-eventdelegate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Еще несколько вопросов на собеседовании для C#/dotNet программиста</title>
		<link>http://dev4food.ru/2009/11/eshhe-neskolko-voprosov-na-sobesedovanii-dlya-cdotnet-programmista/</link>
		<comments>http://dev4food.ru/2009/11/eshhe-neskolko-voprosov-na-sobesedovanii-dlya-cdotnet-programmista/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 08:58:48 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Работа]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Вопросы]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=869</guid>
		<description><![CDATA[В чем вы видите основную разницу между Convert.ToString(someObject) и someObject.ToString()?
В чем разница между throw; и throw ex;?
Назовите основные на ваш взгляд конструкции используемые при синхронизации работы потоков?
Что такое уровни изоляции транзакции в базах данных, какие основные уровни существуют, в чем их отличия и особенности?
Какие основные атрибуты вы обычно используете при разработке custom control'а? Их назначение? [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>В чем вы видите основную разницу между Convert.ToString(someObject) и someObject.ToString()?</li>
<li>В чем разница между throw; и throw ex;?</li>
<li>Назовите основные на ваш взгляд конструкции используемые при синхронизации работы потоков?</li>
<li>Что такое уровни изоляции транзакции в базах данных, какие основные уровни существуют, в чем их отличия и особенности?</li>
<li>Какие основные атрибуты вы обычно используете при разработке custom control'а? Их назначение? (хотелось услышать что-то типа Browsable, DefaultValue, DesignerSerializationVisibility и т.д.)</li>
<li>Как бы вы поступили если нужно было бы сравнить 2 коллекции по 10000 эллементов в каждой (хотел услышать рассуждения про словари)?</li>
</ol>
<p>Приведенные выше вопросы относятся к детальным знаниям C# и .Net, а оценить общие знания можно по <a  href="http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm" target="_blank">Programmer Competency Matrix</a></p>
<p><em>&lt;— { послепоста</em></p>
<p>Выбирал себе картинку для rss фида, нашел для себя достаточно интересный вариант его можно видеть слева. Для блогов с белым фоном могут замечательно подойти <a href="http://web-konkurs.org/2009/11/28/чернильные-rss-иконки/">чернильные RSS иконки</a> , это достаточно ново и стильно.</p>
<p><em>послепоста } —&gt;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2009/11/eshhe-neskolko-voprosov-na-sobesedovanii-dlya-cdotnet-programmista/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Еще небольшая порция вопросов на собеседовании</title>
		<link>http://dev4food.ru/2009/11/eshhe-nebolshaya-porciya-voprosov-na-sobesedovanii/</link>
		<comments>http://dev4food.ru/2009/11/eshhe-nebolshaya-porciya-voprosov-na-sobesedovanii/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 20:29:53 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Работа]]></category>
		<category><![CDATA[Вопросы]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=867</guid>
		<description><![CDATA[Имеется массив чисел, получить список вида {число, количество вхождений числа в массив}, список должен быть отсортирован по количеству вхождений, внутри по возрастания числа. Использовать можно любой алгоритмический язык.
Написать алгоритм проверки корректности регулярного выражения, которое включает [,],(,) т.е, например ([][[]()]) - правильно, ([][]()]) - неправильно
Написать алгоритм, как в целом числе самый правый ноль превратить в единицу [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Имеется массив чисел, получить список вида {число, количество вхождений числа в массив}, список должен быть отсортирован по количеству вхождений, внутри по возрастания числа. Использовать можно любой алгоритмический язык.</li>
<li>Написать алгоритм проверки корректности регулярного выражения, которое включает [,],(,) т.е, например ([][[]()]) - правильно, ([][]()]) - неправильно</li>
<li>Написать алгоритм, как в целом числе самый правый ноль превратить в единицу не используя циклы и рекурсию.</li>
<li>Имеется таблица с 1 полем, заполненная числами по порядку: {1,2,4,7,8,11..}.</li>
<li>Написать SQL Запрос который делает выборку следующего вида (2 столбца): {{3,1},{9,2},...}, Т.е. в первом поле идет число с которого начинается пропуск, во втором количество пропущенных чисел;</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2009/11/eshhe-nebolshaya-porciya-voprosov-na-sobesedovanii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Вопросы на собеседовании по программированию на языке Java</title>
		<link>http://dev4food.ru/2009/11/voprosy-na-sobesedovanii-po-programmirovaniyu-na-yazyke-java/</link>
		<comments>http://dev4food.ru/2009/11/voprosy-na-sobesedovanii-po-programmirovaniyu-na-yazyke-java/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 09:50:38 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Работа]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Вопросы]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=856</guid>
		<description><![CDATA[
 Описать реализацию выборки массива методом Рунге-Кутта.
Какие типы интеграции с гетерогенными приложениями существуют.
Написать реализацию многопоточного приложения с синхронизацией потоков "мягким" способом (без блокировок).
Какие методы реализации WebDAV можно применять.
Какие методы превентивного управления сборщиком мусора существуют.

&#60;— { послепоста
Если вы любите вкусно поесть, а так же не проч выпить хороший напитков, и после спеть свои любимы песни - [...]]]></description>
			<content:encoded><![CDATA[<p><!-- BODY { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } P { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } DIV { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } TD { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } --></p>
<ol>
<li> Описать реализацию выборки массива методом Рунге-Кутта.</li>
<li>Какие типы интеграции с гетерогенными приложениями существуют.</li>
<li>Написать реализацию многопоточного приложения с синхронизацией потоков "мягким" способом (без блокировок).</li>
<li>Какие методы реализации WebDAV можно применять.</li>
<li>Какие методы превентивного управления сборщиком мусора существуют.</li>
</ol>
<p><em>&lt;— { послепоста</em><br />
Если вы любите вкусно поесть, а так же не проч выпить хороший напитков, и после спеть свои любимы песни - предлагаю вам прогуляться в <a href='http://www.point-rouge.ru'>караоке ресторан</a>.</p>
<p><em>послепоста } —&gt;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2009/11/voprosy-na-sobesedovanii-po-programmirovaniyu-na-yazyke-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вопросы на собеседовании по MS SQL</title>
		<link>http://dev4food.ru/2009/11/voprosy-na-sobesedovanii-po-ms-sql/</link>
		<comments>http://dev4food.ru/2009/11/voprosy-na-sobesedovanii-po-ms-sql/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 10:25:47 +0000</pubDate>
		<dc:creator>2-й фрилансер</dc:creator>
				<category><![CDATA[Работа]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[Вопросы]]></category>
		<category><![CDATA[собеседование]]></category>

		<guid isPermaLink="false">http://dev4food.ru/?p=853</guid>
		<description><![CDATA[1. Что такое IAM, GAM.
2. Привести пример запроса с уведомлением, обеспечивающего вставку непересекающихся данных без изменений в области AWE.
3. Зачем нужны функции.
4. Написать запрос, который в результате будет возвращать номер строк. Т.е. результат запроса должен выглядеть так:
1 SomeValue1 SomeValue2
2 SomeValue3 SomeValue4
3 SomeValue5 SomeValue6
4 SomeValue7 SomeValue8
Нельзя использовать: временные таблицы, рекурсию, ключевое слово rownum и т.д.
Нужно написать [...]]]></description>
			<content:encoded><![CDATA[<p><!-- BODY { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } P { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } DIV { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } TD { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } -->1. Что такое IAM, GAM.<br />
2. Привести пример запроса с уведомлением, обеспечивающего вставку непересекающихся данных без изменений в области AWE.<br />
3. Зачем нужны функции.<br />
4. Написать запрос, который в результате будет возвращать номер строк. Т.е. результат запроса должен выглядеть так:</p>
<blockquote><p>1 SomeValue1 SomeValue2<br />
2 SomeValue3 SomeValue4<br />
3 SomeValue5 SomeValue6<br />
4 SomeValue7 SomeValue8</p></blockquote>
<p>Нельзя использовать: временные таблицы, рекурсию, ключевое слово rownum и т.д.<br />
Нужно написать обычный select средствами "голого" SQL.</p>
<p>5. Привести пример делегативной политики на примере governer utility<br />
6. Написать структуру физического хранения строки в базе данных (описать, где находятся stable data и variable data).</p>
]]></content:encoded>
			<wfw:commentRss>http://dev4food.ru/2009/11/voprosy-na-sobesedovanii-po-ms-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
