|
Что должен знать правильный .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 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
EsofterАлексей К24) Почему в .NET выходные параметры (out parameters) не стоит применять? Действительно ли это так? И Dictionary.TryGetValue тоже лучше не пользоваться. почему?Потому что там out-параметер. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 05:48 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Алексей КEsofterпропущено... почему?Потому что там out-параметер. :-)А почему out-параметры не стоит применять? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 10:53 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
AntonariyАлексей Кпропущено... Потому что там out-параметер. :-)А почему out-параметры не стоит применять?Вот и я не знаю почему... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 10:56 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Алексей КAntonariyпропущено... А почему out-параметры не стоит применять?Вот и я не знаю почему... Что должен НЕ знать правильный .NET-разработчик 1) Что кто-то там считает, что out-параметры не стоит применять Предлагаю дополнить список :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:03 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Алексей КВот и я не знаю почему... Архитектурный перфекционизм это. http://stackoverflow.com/questions/2366741/what-is-bad-practice-when-using-out-parameters ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:04 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныАлексей КВот и я не знаю почему... Архитектурный перфекционизм это. http://stackoverflow.com/questions/2366741/what-is-bad-practice-when-using-out-parameters Там говорится про excessive use, то есть злоупотреблять не стоит. Со злоупотреблять соглашусь, но избегать не стану :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:21 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Сам не пишу свой код с аут параметрами, готовый код из фреймворка юзаю с аут параметрами. Я перфекционист? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:33 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
AntonariyТам говорится про excessive use, то есть злоупотреблять не стоит. Со злоупотреблять соглашусь, но избегать не стану :) Это говорит один оратор. А второй говорит вот что: Using out parameters at all is generally bad practice. It typically indicates a method that is doing more than one well defined thing. МСУСам не пишу свой код с аут параметрами, готовый код из фреймворка юзаю с аут параметрами. Я перфекционист? Я всегда придерживался мнения, что с дури можно много чего себе сломать. А не с дури - вряд ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:38 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЭто говорит один оратор. А второй говорит вот что: Using out parameters at all is generally bad practice. It typically indicates a method that is doing more than one well defined thing.Этот второй пытается бездумно подогнать все ситуации под это правило, при этом сам себе противореча (а может не себе). Метод может содержать one well defined thing, возвращая при этом несколько результатов + успех/не успех этой thing. Я с такими ситуациями регулярно сталкиваюсь в задачах парсинга. Код: vbnet 1. 2. 3. 4.
Вместо этого предлагается делать целый объект: Код: vbnet 1. 2. 3. 4. 5.
От того, что результат вернулся в полях объекта, а не параметрах, принцип "one well defined thing" внезапно перестал быть нарушен? А если логика работы с результатом находится внутри блока if, нафига тут лишняя писанина? А еще это медленней. Не случайно заплюсовали первого оратора, а не второго. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:06 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:15 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
AntonariyВместо этого предлагается делать целый объект Ну, можно еще вернуть Tuple. AntonariyОт того, что результат вернулся в полях объекта, а не параметрах, принцип "one well defined thing" внезапно перестал быть нарушен? А если логика работы с результатом находится внутри блока if, нафига тут лишняя писанина? А еще это медленней. Не случайно заплюсовали первого оратора, а не второго. Вы бы написали это автору, на SO. Я лично не испытываю никакой паранойи и подозрений по поводу этих out-параметров. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 13:02 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныАлексей КВот и я не знаю почему... Архитектурный перфекционизм это.Это разговоры программистов-пенсионеров о вечном. Можно не обращать внимания. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 13:42 |
|
Что должен знать правильный .NET-разработчик
|
|||
---|---|---|---|
#18+
Большинство вопросов редкой ненужности. Понятно, что чувак хорошо разбирается в вопросе, тока не знает зачем это нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2013, 20:29 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1405024]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 177ms |
0 / 0 |