Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Работа Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12   вперед  Ctrl      все
 Re: Подскажите хорошие компании для дотнетчика?  [new]
Ржавый гвоздь
Member

Откуда:
Сообщений: 132
fkthat
А производную тангенса на память слабо?

Не, это уже слишком сложно Не быть мне синьором.
21 фев 21, 08:22    [22284342]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
Ares_ekb
Какой глаз нужно рисовать сначала: левый или правый

ЛОЛ, я это запомню. У меня жена художник по образованию - буду её этим вопросом троллить

Ares_ekb
А на самом деле глубинное знание особенностей реализации GetHashCode() позволяет понять основы всего мироздания, и просто я до этого ещё не дорос.

Уперся вам всем этот GetHashCode. Для структуры два варианта - либо он вообще не используется, либо он используется и тогда его все равно надо перегружать (чтобы избежать боксинга при вызовах). И в том и в другом случае то, как он перегружен в самом ValueType абсолютно пофиг. Знать это нужно разве что для прикола или чтобы щеки дуть перед кандидатами на интервью. И совсем другое дело это знать, как его перегрузить правильно, что, кстати, не имеет даже отношения к структурам, т.к. правила и для классов и для структур одинаковые.
21 фев 21, 08:26    [22284343]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
17-77
Member

Откуда:
Сообщений: 1493
fkthat
17-77
что у вас за задачи такие, что надо каждый день хеш код переопределять для всего до чего руки дотянутся?

Наводящий вопрос. Что не так с этим кодом:

struct Foo
{
    public int Id { get; init; }
    public string Name { get; init; }
}

HashSet<Foo> hashSet = new();
hashSet.Add(new Foo { Id = 42, Name = "foo" });

сходу не смог ответить, не использовал ни структуры, ни hashset

поэкспериментировал, погуглил и пришел к следующим выводам:
1. две структуры с одинаковым Id, но разным Name воспринимается как уникальная, т.е. ключ составной по всем полям и это скрыто под капотом
2. в доках, на стек оверфлоу, в блогах про два алгоритма расчета - быстрый и медленный. отсюда идет переопределение GetHashCode. вот статья с бенчмарками https://devblogs.microsoft.com/premier-developer/performance-implications-of-default-struct-equality-in-c
3. но вот именно тут возникает следующий момент - проблема то ни в hashset, ни в GetHashCode, а в голове программиста, который решает конкретную бизнес задачу. и проблема эта - неверно выбранный ключ

я не использовал HashSet, я использую Dictionary - там явно указывается ключ, и я в 99% случаях использовал int и string, и еще в 1% guid. полагаясь на стандартные реализации GetHashCode

и мало того - проблема неправильного ключа в Dictionary лежит на поверхности - он тупо выдаст эксепшн

что я делаю в этих случаях? делаю еще одно поле/свойство string Key и пишу Key = $"{field1}|{field2}". как вариант я могу конечно переопределить GetHashCode - но
1. бывает, что конечный Key мне нужен и для других вещей (в лог там записать или еще чего)
2. и тут я погружаюсь в другую проблему - а как правильно переопределить GetHashCode ? все зависит от, вплоть до использования криптографической хэш функции, которая вполне тоже может быть медленной настолько, что Key = $"{field1}|{field2}" будет быстрее, но по-прежнему довольно надежно. все это требует исследований для каждого конкретного случая, на что обычно нет времени
3. я как-то находил сравнение производительности list и dictionary, до условных 10-50-100 элементов разницы нет (и это как раз положено в основу гибридных коллекций в C#). и теперь вопрос - если разница будет заметна на 1000-10000 элементов, то сначала эту 1000-10000 надо откуда-то достать и загрузить в память, хранилище там, в сети, ага, вспоминаем табличку великого гугло-программиста про задержки доступа

и иногда мне надо такое: Dictionary<int, List<TModel>>, но это успешно заменяется LINQ GroupBy

в итоге что получается - 80% проблем производительности решается правильным выбором ключа
а остальные 20% - надо рассматривать каждый случай отдельно, там либо можно еще раза в два все ускорить (это со 130 до 50 наносекунд), либо попасть на задержку при обращении к жесткому диску/сети

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

Сообщение было отредактировано: 21 фев 21, 12:42
21 фев 21, 12:44    [22284372]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
hVostt
Member

Откуда:
Сообщений: 18991
17-77
я не использовал HashSet, я использую Dictionary - там явно указывается ключ


А у ключа откуда берётся хеш, из космоса что-ли?

17-77
и тут мы снова возвращаемся к вопросу - какие это задачи, которые требуют явного переопределения GetHashCode ? причем довольно часто, чтобы помнить обо всех подводных камнях и сходу по ним отвечать на собесах


Dictionary из ключа берёт хеш. Откуда он его берёт? :)
21 фев 21, 13:16    [22284377]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
hVostt
Member

Откуда:
Сообщений: 18991
fkthat
Знать это нужно разве что для прикола или чтобы щеки дуть перед кандидатами на интервью.


Детский сад какой-то. Какие ещё щёки дуть? Нахер кому упало этим заниматься? Или по себе судишь? ))
21 фев 21, 13:18    [22284378]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
hVostt
Member

Откуда:
Сообщений: 18991
fkthat
следует несколько раз подумать прежде чем разрешать наследовать какой-либо класс


Какая-то фобия в жёсткой форме насчёт наследования :)
Но кроме того, что его "хейтят", "абьюзят" и ещё что-то в этом роде, ты так и не разу не сказал, чем же тебе так наследование не угодило.
21 фев 21, 13:21    [22284379]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
hVostt
Member

Откуда:
Сообщений: 18991
17-77
что у вас за задачи такие, что надо каждый день хеш код переопределять для всего до чего руки дотянутся?


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

Вообще не понимаю этой истерики. Чуть лишнего спросили -- в слёзы, собеседующий злой, издевается, наверняка самоутверждается за счёт бедных джунов... Ой-ой-ой...
21 фев 21, 13:25    [22284382]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 64866
Блог
fkthat
Если нужно забивать гвозди и крутить шурупы, то готовим отдельно молоток, и отдельно отвертку

О, да. Очень просто и наглядно - если воспринять это, не думая. Если же думать, то возникает вопрос: а заворачивать шурупы и отворачивать шурупы - это одна responsibility или разные? Может быть, нужна отдельно завёртка, отдельно отвёртка? И ведь в реале есть случаи, когда они действительно именно так и нужны. А молоток с гвоздодёром - нарушение этого принципа или хороший дизайн или и то, и другое одновременно? Лично я не возьмусь объяснить джуну - где кончается "одна" responsibility и начинаются "разные" так, чтобы он без меня уверенно и чётко принимал правильные решения. Это как в кулинарных рецептах - "варить до готовности" или там "посолить по вкусу", и хрен объяснишь, "это сколько в граммах?"

fkthat
Ты вот сейчас сможешь сходу по памяти дать математическое определение числа "e"?

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

Во-вторых, когда ты спрашиваешь про определение числа е, я сразу вспоминаю, как классе в девятом решал следующую задачу: "Допустим, у вас есть N чистых карточек, на каждой из которых Вы можете написать любую цифру. Какие цифры следует написать на карточках, чтобы с их помощью можно было представить любое число от 0 до M, где M - максимально?" Я начал считать, при каком основании системы счисления N разных цифр дадут наилучший результат, пришёл к уравнению xN/x => max и, решив его, сделал вывод, что наилучший результат дала бы система счисления с основанием е. Так что можешь считать, что я это определение сам вывел :)

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

Сообщение было отредактировано: 21 фев 21, 13:22
21 фев 21, 13:28    [22284383]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
hVostt
Member

Откуда:
Сообщений: 18991
17-77
и тут я погружаюсь в другую проблему - а как правильно переопределить GetHashCode


Ну вот если бы хоть раз в жизни с этим сталкивались, то например знали бы, что есть какой-то метод Combine, который уже легко нагугливается: https://docs.microsoft.com/en-US/dotnet/api/system.hashcode.combine?view=dotnet-plat-ext-5.0

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

Но я вижу, вы много чего знаете, исследовали, и как бы это уже и не ваша проблема.
В чём тогда смысл спора? )))

Сообщение было отредактировано: 21 фев 21, 13:35
21 фев 21, 13:40    [22284386]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
17-77
не использовал ни структуры, ни hashset

Грустно. Структуры я еще могу понять - в энтерпрайзе, где все данные в БД оптимизация с помощью структур мало где имеет смысл (я так, сходу, могу придумать только одно применение - для хранения кешируемых данных), но HashSet это часто используемая штука.

17-77
две структуры с одинаковым Id, но разным Name воспринимается как уникальная, т.е. ключ составной по всем полям и это скрыто под капотом

А вот в том-то и дело, что нет. Если проверять эквивалентность по Equals, то он действительно выдаст false. А хешкод может быть как одинаковый так и разный, в зависимости от порядка полей.

17-77
что я делаю в этих случаях? делаю еще одно поле/свойство string Key и пишу Key = $"{field1}|{field2}".

Не обессудь, но это просто мегаговнокод.

17-77
и тут я погружаюсь в другую проблему - а как правильно переопределить GetHashCode

Про это написано, описано, и расписано в стапятисот тысяч источников.

17-77

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

GetHashCode позволяет быстро проверить объекты на неэквивалентность (не гарантируя при этом обратное, т.е. их эквивалентность в случае отрицательного результата проверки). Т.е. если для двух объектов GetHashCode разный, то эти объекты гарантированно не эквивалентны. Но если он одинаковый, они могут быть как эквивалентны, так и нет, т.ч. требуется уже точное сравнение. Это, например, используется в классах Dictionary и HashSet чтобы раскладывать объекты по их "карманам"/"слотам". Отсюда еще вытекает одна такая тема, с которой, если не знать, то можно наступить на грабли - если экземпляр класса/структуры является ключом Dictionary или элементом в HashSet то мутировать её никаким способом нельзя, потому что если при этом изменится его hash code, то все просто станет работать неправильно.


ЗЫ. Пора, по-моему, этот оффтоп тут заканчивать - здесь все-таки не раздел по .NET.
21 фев 21, 13:54    [22284390]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 64866
Блог
Ares_ekb
нет, для меня проект "аналогичный вашим" это когда я десять лет занимаюсь моделированием, разработкой инструментов моделирования и прихожу на проект по разработке инструмента моделирования.

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

Ares_ekb
Может пейзажист рисует портреты ещё хуже и вообще не хочет этим заниматься.

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

Ares_ekb
Если расспрашивать плохого художника о его картинах, то возможно он будет уверен в том, что всё рисует отлично.

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

Ares_ekb
Ну, нужно просто посмотреть на эти картины

Вот с этим в программировании затруднения. "Картины" под NDA и вдобавок слишком масштабны для того, чтобы за время собеседования успеть бросить на них не самый поверхностный взгляд. Можно и часто нужно просить показать "пример кода", но не стоит слишком полагаться на увиденное. Помимо прочего, никто не гарантирует, что человек показывает именно свой код, а не код ведущего гуру, с которым он за время работы над проектом хорошо познакомился.

Ares_ekb
При этом если человек "не навелся", то может проблема и в вопросах, а не в кандидате. Это нормальное собеседование.

Да, в общем, не важно, в чём проблема. Важно то, что конкретные люди "не совпали", и как следствие, не смогут эффективно работать вместе.

Ares_ekb
2) Какой глаз нужно рисовать сначала: левый или правый

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

Ares_ekb
На мой взгляд если собеседующий задает вопросы по шаблону, то один из вариантов:

По какому шаблону? Вы выше тоже нарисовали шаблон, по которому следует задавать вопросы. Какие выводы Вы из этого делаете?

Ares_ekb
Такая форма собеседования в принципе не предполагает, что кандидат в тех задачах, на которые его берут, может разбираться лучше собеседующего

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

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

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

И - меня всегда удивляла уверенность некоторых людей, что именно их опыт нужен везде, и любой отказ - личное оскорбление. Мне вспоминается одна уборщица, которой программист при мне вежливо и деликатно сказал, что во время уборки она регулярно задевает шваброй розетку и вырубает компьютер. Уборщица в ответ устроила скандал в стиле, дословно, "Да я в ЦУПе работала, а тут какие-то засранцы будут мне указывать!" Вот очень похоже.
21 фев 21, 13:59    [22284394]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
softwarer
а заворачивать шурупы и отворачивать шурупы - это одна responsibility или разные? Может быть, нужна отдельно завёртка, отдельно отвёртка?

Можно сточить шлицы под углом так, что обычной отверткой можно будет либо только закрутить, либо только открутить Ни один принцип не может дать руководство на все 100% случаев жизни.

softwarer
Нам ведь не нужно "программистское определение цикла for", нам нужно его реальное применение, то есть свойства.

Почему же. "Программистский" аналог "определения числа e" это, молжет быть, например, синтаксис цикла "for" - если чел его не знает, то, о каком применении можно говорить.

softwarer
А в-третьих, насколько я помню, в математике у числа e просто нет какого-то особенного чеканного определения

Определения есть, просто их далеко не одно. Как минимум, из того, что, покопавшись в памяти могу вспомнить, можно, действительно, через производную/интеграл, можно через сумму ряда, можно через предел. Точно знаю, что есть и другие способы, но их я уже точно без учебников или гугла вспомнить не смогу.
21 фев 21, 14:22    [22284400]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
softwarer
где мне задавали довольно дурные вопросы "по шаблону"

Почему бы эти вопросы не дать в виде онлайнового теста, если так уж хочется. Это сэкономит время всем участникам и деньги собеседующим. Собеседование "с глазу на глаз" оно как раз чтобы "за жизнь" поговорить. К примеру, посмотреть как чел умеет рассуждать и решать практические проблемы. А отрывать от работы как минимум синьора, чтобы он только по бумажке готовые вопросы озвучил, а по другой бумажке ответы сверил это более чем нерационально.
21 фев 21, 15:02    [22284411]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
17-77
Member

Откуда:
Сообщений: 1493
hVostt
Dictionary из ключа берёт хеш. Откуда он его берёт? :)

у него и так есть стандартная реализация, в случае с int / string ничего переопределять не надо, а мы тут трем за переопределение
и нет тут никакого спора - я просто хочу понять, почему я этого не знаю, точнее почему мне этого не потребовалось, потому как, если бы потребовалось - узнал бы

fkthat
Грустно. Структуры я еще могу понять но HashSet это часто используемая штука.

так я dictionary использую

fkthat
если экземпляр класса/структуры является ключом Dictionary или элементом в HashSet

ну вот, я и об этих граблях не знаю, потому что никогда так не делал, ключом всегда был int/string/guid
равно как например lock(this) и прочие подобные штуки - это кстати меня всегда смущало на собесах. меня спрашивают почему не надо делать так, как я никогда не делал, а мне даже и ответить нечего

fkthat
Не обессудь, но это просто мегаговнокод

и как надо? переопределять GetHashCode и Equals?

Сообщение было отредактировано: 21 фев 21, 15:08
21 фев 21, 15:12    [22284415]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1587
softwarer
для аналитика, которым Вы являетесь, и куда более спорный - для разработчика
Это ярлык, лет 10 я работал преимущественно разработчиком. Последний год, ну, наверное на 50% занимаюсь разработкой. Т.е. аналитиком меня можно назвать с большой натяжкой, впрочем как и разработчиком :) 100% разработкой без погружения в предметную область я действительно никогда не занимался и не понимаю как это возможно. Хотя, блин, нет, понимаю. В школе и на первых курсах мне было интересно программирование само по себе. Я помню, что Modern C++ Design и Loki были просто каким-то откровением для меня. Потом фанател от всяких функциональных ЯП, теории категорий, CS в целом, нейронных сетей и чего угодно (это было на много раньше того как эти темы стали хайповыми) - мне были интересны инструменты сами по себе без привязки к конкретной задаче или предметной области. В какой-то момент я понял, что те же шаблоны в C++ или дженерики в C#, как и другие вещи в ЯП - это просто костыли. Что в любых ЯП куча, часто искусственных, ограничений и проблем, которые программисты героически преодолевают, например, придумывают всякие трюки, чтобы "обмануть" систему типов. Это интересно сначала, но если люди сохраняют к этому интерес на протяжении множества лет, то может они и не погружались туда достаточно глубоко? Мне реально все эти паттерны, всякие трюки, оптимизации кода по скорости или размеру (я и на ассемблере успел немного всякую хрень поделать) просто наскучили. Не, то, чтобы полностью, но всё равно хочется, чтобы у работы был и какой-то прикладной смысл.

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

softwarer
Вот с этим в программировании затруднения. "Картины" под NDA и вдобавок слишком масштабны для того, чтобы за время собеседования успеть бросить на них не самый поверхностный взгляд
softwarer
Хотя чего многие такие соискатели не понимают - что даже в подобном разговоре через слово себя выдают.
Ровно об этом я и говорю! Не обязательно разглядывать код человека. Достаточно поспрашивать его о том, что он делал, какие проблемы решал, чтобы он сам рассказал о самых важных с его точки зрения вещах. 1) Это и для него комфортно, т.к. он находится на знакомой для себя "территории". 2) Это и возможность узнать о его опыте. Может каких-то требований даже не было в вакансии, а у человека есть супер-полезный опыт, который может пригодиться или на этой позиции, или на другой, или может вообще на другом проекте. 3) И самое главное, как вы и пишите, это отличный способ понять уровень кандидата.

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

Я согласен с тем, что позиция "нужно разговаривать с человеком только о жизни и не задавать никаких технических вопросов" наверное слишком утрированная. Хотя, на мой взгляд, можно понять уровень кандидата и не проводя для него экзамен. Наверное не нужно бросаться в крайности.
21 фев 21, 16:29    [22284441]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
Ares_ekb
Не обязательно разглядывать код человека.

Лучше всего было бы договориться баш на баш - я им показываю кусок своего кода, а они мне кусок своего. А то регулярно как распишут как у них все круто, вопросы умнейшие позадают, а проект потом откроешь и там полный п.
21 фев 21, 16:46    [22284447]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
17-77
и как надо? переопределять GetHashCode и Equals?

Ну так они именно для того и придуманы. Переопределять то, что считать одинаковым по умолчанию на то, что считать одинаковым по семантике. А для совсем хорошо можно еще переопределить операторы == и != и добавить интерфейс IEquatable. Если ты посмотришь в сам .NET, то большинство имеющихся в нем из коробки структур именно так и делают.

Сообщение было отредактировано: 21 фев 21, 16:48
21 фев 21, 16:54    [22284449]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
17-77
так я dictionary использую

При большом желании можно вообще одними массивами обойтись. Только зачем, если есть более подходящие структуры данных.
21 фев 21, 17:01    [22284454]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
hVostt
чем же тебе так наследование не угодило.

Тем, что зло. Тем, что абьюз.

Если серьезно, то

1) Наследование, как субклассирование (отношение общее-частное) - добро и мастхев. Наследование, как замена композиции - зло и уг. А на деле намного чаще сталкиваешься именно не с первым случаем, а с последним.

2) Правильное наследование это, как я уже неоднократно писал штука намного более нетривиальная, чем просто написать "public class Foo: Bar". По этому поводу я полностью согласен с Рихтером, что наследовать можно только те классы, которые специально задизайнены для этого. Если нет, то делать sealed. Замена потом sealed на не-sealed в случае надобности не ломает совместимости, в отличие от обратной замены. Плюс можно получить некоторый выигрыш в производительности при вызове виртуальных методов - компилятор оптимизирует и виртуальные (т.е. override) методы в случае sealed вызываются как обычные без обращения к VMT.
21 фев 21, 18:03    [22284475]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
fkthat
Member

Откуда:
Сообщений: 4341
hVostt
Или по себе судишь? ))

Да я так-то наоборот уже давно с этой "общественной работы" всегда пытался при возможности соскочить.
21 фев 21, 18:06    [22284477]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
love_bach
Member

Откуда:
Сообщений: 751
fkthat
hVostt
чем же тебе так наследование не угодило.

Тем, что зло. Тем, что абьюз.

Если серьезно, то

1) Наследование, как субклассирование (отношение общее-частное) - добро и мастхев. Наследование, как замена композиции - зло и уг. А на деле намного чаще сталкиваешься именно не с первым случаем, а с последним.

2) Правильное наследование это, как я уже неоднократно писал штука намного более нетривиальная, чем просто написать "public class Foo: Bar". По этому поводу я полностью согласен с Рихтером, что наследовать можно только те классы, которые специально задизайнены для этого. Если нет, то делать sealed. Замена потом sealed на не-sealed в случае надобности не ломает совместимости, в отличие от обратной замены. Плюс можно получить некоторый выигрыш в производительности при вызове виртуальных методов - компилятор оптимизирует и виртуальные (т.е. override) методы в случае sealed вызываются как обычные без обращения к VMT.


А DTO наследовать? Что бы меньше копипастить, это к какому варианту?
21 фев 21, 18:54    [22284495]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
Slant-shadow
Member

Откуда:
Сообщений: 391
softwarer
Ares_ekb
нет, для меня проект "аналогичный вашим" это когда я десять лет занимаюсь моделированием, разработкой инструментов моделирования и прихожу на проект по разработке инструмента моделирования.

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

Ares_ekb
Может пейзажист рисует портреты ещё хуже и вообще не хочет этим заниматься.

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

Ares_ekb
Если расспрашивать плохого художника о его картинах, то возможно он будет уверен в том, что всё рисует отлично.

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

Ares_ekb
Ну, нужно просто посмотреть на эти картины

Вот с этим в программировании затруднения. "Картины" под NDA и вдобавок слишком масштабны для того, чтобы за время собеседования успеть бросить на них не самый поверхностный взгляд. Можно и часто нужно просить показать "пример кода", но не стоит слишком полагаться на увиденное. Помимо прочего, никто не гарантирует, что человек показывает именно свой код, а не код ведущего гуру, с которым он за время работы над проектом хорошо познакомился.

Ares_ekb
При этом если человек "не навелся", то может проблема и в вопросах, а не в кандидате. Это нормальное собеседование.

Да, в общем, не важно, в чём проблема. Важно то, что конкретные люди "не совпали", и как следствие, не смогут эффективно работать вместе.

Ares_ekb
2) Какой глаз нужно рисовать сначала: левый или правый

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

Ares_ekb
На мой взгляд если собеседующий задает вопросы по шаблону, то один из вариантов:

По какому шаблону? Вы выше тоже нарисовали шаблон, по которому следует задавать вопросы. Какие выводы Вы из этого делаете?

Ares_ekb
Такая форма собеседования в принципе не предполагает, что кандидат в тех задачах, на которые его берут, может разбираться лучше собеседующего

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

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

любой отказ - личное оскорбление.

Зачем тогда зовут? Если заранее известно, что скорее всего откажут
21 фев 21, 19:08    [22284501]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
Slant-shadow
Member

Откуда:
Сообщений: 391
Slant-shadow

Зачем тогда зовут? Если заранее известно, что скорее всего откажут

Плевать да, что человек время тратит на дорогу, деньги за проезд, нервы свои?
21 фев 21, 19:20    [22284509]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
Slant-shadow
Member

Откуда:
Сообщений: 391
Я знаете как иногда делаю: когда непонятная контора зовет на собес., мне что-то в ней не нравится или по телефону разговор не понравился, я договариваюсь на попозже там на 19.00, 19.30 типо раньше не могу, так как работаю. А сам туда просто не приезжаю, и к телефону от них не подхожу ни в этот ни на следующий день =)
21 фев 21, 19:27    [22284511]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите хорошие компании для дотнетчика?  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9599
Slant-shadow
Я знаете как иногда делаю: когда непонятная контора зовет на собес., мне что-то в ней не нравится или по телефону разговор не понравился, я договариваюсь на попозже там на 19.00, 19.30 типо раньше не могу, так как работаю. А сам туда просто не приезжаю, и к телефону от них не подхожу ни в этот ни на следующий день =)


Не могу понять смысла.
А почему просто не отказаться?
21 фев 21, 19:44    [22284522]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 [8] 9 10 11 12   вперед  Ctrl      все
Все форумы / Работа Ответить