|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Молотком по пальцам таким собеседователям. Супер_ПавПо поводу второго вопроса. lock забраковали, мол блокирует потоки. Единственное решение задачи - это класс ReaderWriterLockSlim А если один резво пишет, другие никогда не прочитают. Вообще каждый случай должен разбираться отдельно, но лучший вариант из коробки Cat2Если несколько потоков, то надо использовать ConcurrentDictionary https://msdn.microsoft.com/ru-ru/library/dd287191(v=vs.110).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 15:59 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Супер_Пав, 1. Метод GetValue(), который модифицирует коллекцию -- вот, что должно не нравиться в этом коде. GetOrAddValue() -- куда ни шло. Ну и TryGetValue() внутри, да. 2. Порочный вопрос. Нужно использовать ConcurrentDictionary, а не переизобретать колесо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 16:02 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Супер_ПавХорош. Вы суммарное время работы со 100к элементов указали, разница в 1.5 секунды не впечатляет. А если сперва заполнить словари (о чем говорилось на собеседовании, было условие, что 99% записей существуют в словаре), то поиск не отличается. Внимательнее смотри. Основной цикл Код: c# 1. 2. 3. 4. 5.
словарь изначально пустой, в процессе работы наполняется 100к элементами, но итераций цикла 50 050к, т.е. в 99.8% случаев записи были найдены. Разницу надо не в секундах смотреть, а в процентах. Но не забывать погрешность таймера учитывать. Там 1 мс погрешность, поэтому твои замеры с результатом 0-2 мс это погрешность. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 16:07 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
НахлобучСупер_Пав, 1. Метод GetValue(), который модифицирует коллекцию -- вот, что должно не нравиться в этом коде. GetOrAddValue() -- куда ни шло. Ну и TryGetValue() внутри, да. 2. Порочный вопрос. Нужно использовать ConcurrentDictionary, а не переизобретать колесо. 1. Название метода не важно. 2. Потоки появились во втором вопросе, в первом случает вопрос был больше по поиску. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 16:07 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Супер_Пав1. Название метода не важно. Не о названии речь ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 16:09 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
автор1) Что Вам не нравится в приведенном коде: название метода ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 18:46 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
ЕвгенийВМолотком по пальцам таким собеседователям. Супер_ПавПо поводу второго вопроса. lock забраковали, мол блокирует потоки. Единственное решение задачи - это класс ReaderWriterLockSlim А если один резво пишет, другие никогда не прочитают. Вообще каждый случай должен разбираться отдельно, но лучший вариант из коробки Cat2Если несколько потоков, то надо использовать ConcurrentDictionary https://msdn.microsoft.com/ru-ru/library/dd287191(v=vs.110).aspx +1 ТС не расстраивайтесь, клоунада полнейшая. Очередные математеги, хорошо что про расчет цикломатической сложности неспрашивали. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 21:29 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Супер_ПавПо поводу второго вопроса. lock забраковали, мол блокирует потоки. Единственное решение задачи - это класс ReaderWriterLockSlim Если это единственное решение, то Вы походу нам условия задачи озвучили не полностью. Опустили важный момент :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 23:16 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
skyANAСупер_ПавПо поводу второго вопроса. lock забраковали, мол блокирует потоки. Единственное решение задачи - это класс ReaderWriterLockSlim Если это единственное решение, то Вы походу нам условия задачи озвучили не полностью. Опустили важный момент :) я вообще не понял, вот этой фразы "блокируются потоки". Какие потоки и где блокируется. Типа при RWLS и ConcurentDictionary они не блокируются и все операции атомарны :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 23:42 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Roman MejtesskyANAпропущено... Если это единственное решение, то Вы походу нам условия задачи озвучили не полностью. Опустили важный момент :) я вообще не понял, вот этой фразы "блокируются потоки". Какие потоки и где блокируется. Типа при RWLS и ConcurentDictionary они не блокируются и все операции атомарны :) В документации жеж все расписано... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 23:50 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Если коротко, то ReaderWriterLockSlim рекомендуется когда до фига чейтателей и один чукча :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 23:57 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Супер_ПавВакансию нашел в разделе Вакансии сего сайта А дайте тынц.. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 00:04 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Здесь сравниваются обычный лок, ReadWriteLockSlim, ConcurrentDictionary в двух граничных ситуациях Mostly Misses/Mostly Hits. По результатам получается, что для "Mostly Misses" лучше обычный лок, а для "Mostly Hits" - ConcurrentDictionary. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 00:25 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Супер_ПавПо поводу второго вопроса. lock забраковали, мол блокирует потоки. Единственное решение задачи - это класс ReaderWriterLockSlimReaderWriterLockSlim потоки не блокирует? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 07:01 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Алексей КСупер_ПавПо поводу второго вопроса. lock забраковали, мол блокирует потоки. Единственное решение задачи - это класс ReaderWriterLockSlimReaderWriterLockSlim потоки не блокирует?если нет писателей, то не должен, вернее вероятность этого очень близка к нулю ЕвгенийВ, на одном проце разницы почти нет, ну а вообще на другом вдруг будет - потому идиологически, конечно, 2-й вариант правильнее я memorize в питоне вообще через обработку исключений делал и это было быстрее ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 07:57 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Алексей Кпропущено... ReaderWriterLockSlim потоки не блокирует? если нет писателей, то не должен, вернее вероятность этого очень близка к нулюЯ в курсе, только в утверждении не было никаких если. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 09:13 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Алексей Кkealon(Ruslan)пропущено... если нет писателей, то не должен, вернее вероятность этого очень близка к нулюЯ в курсе, только в утверждении не было никаких если. А разве где-то выше утверждалось, что ReaderWriterLockSlim не блокирует потоки? :) Не тратьте время на домыслы... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 09:51 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
skyANAСупер_ПавВакансию нашел в разделе Вакансии сего сайта А дайте тынц.. тынц З.Ы. по поводу доп условия....ну если только, что 99% ключей, передаваемых в метод, существуют. Больше никаких. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 10:24 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Все верно что не взяли. Судя по обсуждению, знания у соискателя слабые. Ну и что, что тестирование содержит провокационный вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 10:42 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
Супер_Павпо мне, так дело вкуса. Мне больше первый вариант нравится: проверил, выполнил. Во втором случает лишняя переменная появляется. так тебе эта переменная все равно нужна Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
или, кому религия запрещает больше одного return'а Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
а вообще, хорошая тема благодаря твоему собеседованию много для себя узнал у меня завтра очередное )) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 10:59 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
yabsСупер_Павпо мне, так дело вкуса. Мне больше первый вариант нравится: проверил, выполнил. Во втором случает лишняя переменная появляется. так тебе эта переменная все равно нужна Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
или, кому религия запрещает больше одного return'а Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
а вообще, хорошая тема благодаря твоему собеседованию много для себя узнал у меня завтра очередное )) Собеседования вообще полезные мероприятия, иногда, что-то новое узнаешь =) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 11:05 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
А что вам не нравиться в этом коде? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 11:12 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
ЕвгенийВА что вам не нравиться в этом коде? Код: c# 1.
Если вопрос мне, то ничего против не имею. А что вам не нравится в? Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 11:17 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
ЕвгенийВА что вам не нравиться в этом коде? Код: c# 1.
Для того булевы придумали, чтобы на равенство не проверять. Кстати, я бы "зарезал" только за утверждение ТС1. Название метода не важно. И еще потребовал документировать заголовок в стиле Доксигена итп На практике это получается потом гораздо важнее говнокода внутри. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 11:45 |
|
Впечатления от собеседования (связано с .Net)
|
|||
---|---|---|---|
#18+
SiemarglЕвгенийВА что вам не нравиться в этом коде? Код: c# 1.
Для того булевы придумали, чтобы на равенство не проверять. Кстати, я бы "зарезал" только за утверждение ТС1. Название метода не важно. И еще потребовал документировать заголовок в стиле Доксигена итп На практике это получается потом гораздо важнее говнокода внутри. пытаетесь казаться умным? Название не важно было в приведенном примере. В тесте, который давали, имя метода было другое, какое, я не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 12:30 |
|
|
start [/forum/topic.php?fid=20&msg=39466971&tid=1399861]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 150ms |
0 / 0 |