|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Зашел случайно на сайт одного разработчика, случайно в разделе "статьи" заинтересовала тема - Что должен знать правильный .NET-разработчик Ответ дан в виде вопросов на знание C# и прочего ... Оцениваются 2 категории обычный разраб и ведущий .NET-разработчик среднего уровня 1) Объясните разницу между интерфейсно ориентированным (Interface-oriented), объектно ориентированным и аспектно ориентированным (Aspect-oriented) программированием 2) Объясните что такое «интерфейс» и чем он отличается от класса 3) Что такое Reflection? 4) В чем различие между XML Web Services с использованием ASMX и .NET Remoting с использованием SOAP? 5) Являются ли системы типов, представленные в XmlSchema и в CLS — изоморфными? 6) Концептуально, в чем различие между ранним и поздним связыванием (early-binding и late-binding)? 7) Использование Assembly.Load — это статическая или динамическая ссылка? 8) Когда уместно использование Assembly.LoadFrom, а когда Assembly.LoadFile? 9) Что такое «Asssembly Qualified Name»? Это имя файла? В чем различие между ними? 10) Правильно ли так писать? Assembly.Load("foo.dll"); 11) Чем отличается «strongly-named» сборка от «НЕ strongly-named» сборки? 12) Может ли DateTime равняться null? 13) Что такое JIT? Что такое NGEN? Каковы преимущества и ограничения каждого из них? 14) Как основанный на поколениях сборщик мусора в .NET CLR управляет жизненным циклом объекта? Что такое «non-deterministic finalization»? 15) В чем различие между Finalize() и Dispose()? 16) Чем полезен using()? Что такое IDisposable? Как он поддерживает deterministic finalization? 17) Что делает эта полезная команда? tasklist /m "mscor*" 18) В чем разница между «in-proc» и «out-of-proc»? 19) Какая технология позволяет выполнять out-of-proc взаимодействие в .NET? 20) Когда вы запускаете компонент из под ASP.NET, в каком процессе он работает под Windows XP? Windows 2000? Windows 2003? Ведущий разработчик 1) Что не так вот в следующей строке? DateTime.Parse(myString); 2) Что такое PDB? Где они должны находится, чтобы можно было выполнять отладку? 3) Что такое «цикломатическая сложность» (cyclomatic complexity) и почему она важна? 4) Напишите стандартный lock() плюс «двойную проверку» для создания критической секции вокруг доступа к переменной. 5) Что такое «FullTrust»? Имеют ли FullTrust сборки, помещенные в GAC? 6) Какие преимущества получает ваш код, если вы декорируете его атрибутами, относящимися к особым Security permissions? 7) Что делает эта команда? gacutil /l | find /i "Corillian" 8) Что делает эта команда? sn -t foo.dll 9) Какие порты брандмауэра должны быть открыты для DCOM? Каково назначение порта 135? 10) Сопоставьте OOP и SOA. Каковы принципы каждого из них? 11) Как работает XmlSerializer? Каких ACL permissions требует использующий его процесс? 12) Почему catch(Exception) почти всегда — плохая мысль? 13) В чем разница между Debug.Write и Trace.Write? Когда должен быть использован каждый из них? 14) В чем различие между компиляцией в Debug и в Release? Есть ли значительная разница в скорости? Почему или почему нет? 15) Как работает JIT — по сборке целиком или по методу? Как это влияет на working set? 16) Сравните использование абстрактного базового класса и использование интерфейса? 17) В чем различие между a.Equals(b) и a == b? 18) В контексте сравнения, что такое идентичность объектов по сравнению с эквивалентностью объектов? 19) Как можно выполнить глубокое копирование (deep copy) в .NET? 20) Изложите ваше понимание IClonable. 21) Что такое «упаковка» (boxing)? 22) string — это тип значений (value type) или ссылочный тип? 23) В чем значимость паттерна "PropertySpecified", используемого в XmlSerializer? Какую проблему он пытается разрешить? 24) Почему в .NET выходные параметры (out parameters) не стоит применять? Действительно ли это так? 25) Может ли атрибут быть установлен на один из параметров метода? Чем это полезно? --------------------------------------------------------------------------------------------- Сам ведущий. Как - то крутоваты вопросы показались, даже для обычного программера. Причем вопросы в каждой группе - срвсем разной категории сложности. Например в I группе имхо вопросы 2, 12, 15, 16 по сложности на голову ниже остальных А во второй группе 16, 17, 20, 21, 22 , вообще для бегиннеров. В общем имхо вопросы скомпанованы странно, что хотел сказать автор - не понятно. Некоторые поставлены не совсем корректно. Очень много вопросов показалось сложными, закрадывается мнение, что не дотягиваю ... Обсудите плиз... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 19:00 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 19:41 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
beg-in-er, Да, я обратил уже внимание, там на сайте ссыль есть на источник. Автор оригинала - профессор (40-45 лет), работает в Microsoft. Да только что это означает? "Мерки" США? Наши хуже/лучше? Или что - то еще? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 19:45 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
.Speаker., Странный набор вопросов, конечно. Всё они носит исключетельно технологический характер, полезный в весьма редких ситуациях. При этом как-то умудряются пропустить мимо многопоточность... Похоже на троллинг от Хансельмана. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 22:31 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Правильный .NET разработчик должен уметь писать программы без факапов согласно техническому заданию. Остальное вторично. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 23:24 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
МСУ, а что значит без факапов? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 11:06 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 12:50 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
1) Что не так вот в следующей строке? DateTime.Parse(myString); Культура чтоли не указана? Или чё? 2) Что такое PDB? Где они должны находится, чтобы можно было выполнять отладку? Какая-то база для отладчика. Вроде должна лежать там же где и сборка. 3) Что такое «цикломатическая сложность» (cyclomatic complexity) и почему она важна? Какая-то методика оценки сложности программы. Подробности в гугле. 4) Напишите стандартный lock() плюс «двойную проверку» для создания критической секции вокруг доступа к переменной. Чё за двойная проверка? 5) Что такое «FullTrust»? Имеют ли FullTrust сборки, помещенные в GAC? Полное доверие. Наверное. 6) Какие преимущества получает ваш код, если вы декорируете его атрибутами, относящимися к особым Security permissions? Хз. 7) Что делает эта команда? gacutil /l | find /i "Corillian" Чё-то ищет в гаке. Видимо, сборку с указанным именем. 8) Что делает эта команда? sn -t foo.dll Подписывает сборку цифровой подписью? 9) Какие порты брандмауэра должны быть открыты для DCOM? Каково назначение порта 135? В гугле. 10) Сопоставьте OOP и SOA. Каковы принципы каждого из них? В википедии 11) Как работает XmlSerializer? Каких ACL permissions требует использующий его процесс? Через Emit. Хз. 12) Почему catch(Exception) почти всегда — плохая мысль? В вопросе содержится неверное утверждение. Если catch(Exception) плохо - тогда и finally пользоваться нельзя. 13) В чем разница между Debug.Write и Trace.Write? Когда должен быть использован каждый из них? В гугле. Когда удобнее. 14) В чем различие между компиляцией в Debug и в Release? Есть ли значительная разница в скорости? Почему или почему нет? Всё зависит от настройки профилей Debug и Release. Разницы может вообще не быть. 15) Как работает JIT — по сборке целиком или по методу? Как это влияет на working set? По методу (в Java по классу). Пофиг. 16) Сравните использование абстрактного базового класса и использование интерфейса? В классе может быть реализация. Интерфейсы можно множественно наследовать. 17) В чем различие между a.Equals(b) и a == b? Не помню. 18) В контексте сравнения, что такое идентичность объектов по сравнению с эквивалентностью объектов? Сравнение адреса объекта vs сравнение его содержимого. Или про что это? Обычно это называют "сравнение по ссылке" и "сравнение по значению". 19) Как можно выполнить глубокое копирование (deep copy) в .NET? XmlSerializer 20) Изложите ваше понимание IClonable. Знаю 21) Что такое «упаковка» (boxing)? Знаю 22) string — это тип значений (value type) или ссылочный тип? Неизменяемый ссылочный 23) В чем значимость паттерна "PropertySpecified", используемого в XmlSerializer? Какую проблему он пытается разрешить? В MSDN 24) Почему в .NET выходные параметры (out parameters) не стоит применять? Действительно ли это так? И Dictionary.TryGetValue тоже лучше не пользоваться. 25) Может ли атрибут быть установлен на один из параметров метода? Чем это полезно? Да. Будет параметер с установленным атрибутом. Или намёк на PInvoke? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:39 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
1) Что не так вот в следующей строке? DateTime.Parse(myString); Это типа myString не объявлен или возможно ошибка - нужно было использовать DateTime.TryToParse ??? Не могу понять смысл таких вопросов, толком не понятно что просят найти. Давно еще у меня было такое собеседование, дает мне чувак на листке бумаги кусок кода, примерно такое: try{ //тут создание и запись в файл (синтаксис без ошибок) } catch(exception ex) { // обработка ошибки } что не так в этом коде? Ну я посмотрел, синтаксис везде ровный, все нормально говорю. А он - нет не нормально, нет перехвата ошибки IOException, вдруг диск переполнен? Ё..ный стыд, ну понятно что можно кучу эксепшинов расставить, но это же зависит от задания. Таким же способом я мог бы ответить что вы в reference IO не подключили, namespace и класс не объявили.....но он оказался упертый как баран. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:52 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Алексей К8) Что делает эта команда? sn -t foo.dll Подписывает сборку цифровой подписью? просто возвращает token файла ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:58 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
1) Что не так вот в следующей строке? DateTime.Parse(myString); Все так. Иначе зачем тогда первая реализация метода Parse с одним параметром. 12) Почему catch(Exception) почти всегда — плохая мысль? Не получаем никаких данных об ошибке, вызвавшей исключение. Равносильно конструкции try { } finally { } 17) В чем различие между a.Equals(b) и a == b? Ни в чем, если не overriden ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:59 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Алексей К 4) Напишите стандартный lock() плюс «двойную проверку» для создания критической секции вокруг доступа к переменной. Чё за двойная проверка? http://ru.wikipedia.org/wiki/Double_checked_locking ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 14:14 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
.Speаker.17) В чем различие между a.Equals(b) и a == b? Ни в чем, если не overridenНе, это баян про boxing . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 14:15 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
.Speаker.что хотел сказать автор - не понятно. Если ваш мозг, еще не достаточно загружен, и без того не малым объемом знаний .net fw, то есть еще не мало тем, которые могут не пригодится ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 15:10 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
skyANA, почему? зависит же от реализации) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 15:17 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
netivan, Да и == м.б. overload ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 15:21 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
.Speаker., о чем и речь. он может же equals вызывать)) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 15:30 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
я не ответил на 1-4 1-5 1-8 1-10 1-17 и на 2-9 2-11 Итого я почти сениор но недотягиваю до джуниора много дурацких вопросов конечно и нет ряда принципиальных ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 15:33 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
имхо норм вопросы это в сторону: ref vs val, delegate vs event, equality, и дальше от них вглубь. По моим наблюдениям - жизненные темы, в которых народ часто плавает ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 15:43 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Я в шоке, эти вопросы меня ставят в тупик. Сюда еще шаблоны проектирования надо добавить . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 16:00 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
mmnick, скажи по русски - ПАТТЕРНЫ ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 16:03 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Кто вообще хоть раз использовал "полезную" команду tasklist? Про using я всегда начинаю отвечать, мол для импорта пространств имен и для создания псевдонимов типа, что вводит в ступор собеседующего :) он то хотел услышать про IDisposable. Про ООП и SOA можно говорить часами, один чего полиморфизм в ООП чего стоит и как и где реализуется. Нет ни одного вопроса лямбды или обобщенные методы. Например, может ли анонимный тип использоваться в качестве обобщенного параметра в обобщенном методе. Или не слова о ковариантности - контвариантности. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 17:27 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
ЕвгенийВПро using я всегда начинаю отвечать, мол для импорта пространств имен и для создания псевдонимов типа, что вводит в ступор собеседующего :) он то хотел услышать про IDisposable. using еще генерирует try-finally. в трай помещает тело юзинга, в файнали - диспоуз ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 17:57 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Алексей К24) Почему в .NET выходные параметры (out parameters) не стоит применять? Действительно ли это так? И Dictionary.TryGetValue тоже лучше не пользоваться. почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 17:58 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
ЕвгенийВНет ни одного вопроса лямбды или обобщенные методы. Например, может ли анонимный тип использоваться в качестве обобщенного параметра в обобщенном методе. Или не слова о ковариантности - контвариантности. beg-in-er видимо началось всё отсюда февраля 21, 2005 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 18:31 |
|
|
start [/forum/topic.php?fid=20&fpage=172&tid=1405024]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
116ms |
get tp. blocked users: |
2ms |
others: | 357ms |
total: | 545ms |
0 / 0 |