Re[26]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 12:19
Оценка: 9 (1)
Здравствуйте Denis, Вы писали:

D>странно тогда задан вопрос — это как раз то, что называется "плохим" собеседованием — когда спрашивающий не умеет правильно задавать вопросы =(. Из вопроса этого и не следовало — таким же успехом можно предположить, что одна и таже CS используется для различных частей — и тогда именно так и поступают....


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

А переписать код и поговорить о всевозможных нюансах и так никто не мешает. На реальном интервью именно так и происходит. Я тебе даю код, ты его потрошишь как только можно.

Заметь, я пока обхожусь без ребусов, мне нужно простыми вопросами прощюпать знание технологий. На простой вопрос, должен быть простой ответ, если задать сложный, то за время интервью удастся обсудить только один.
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Требуется Anatolix...
От: Алекс Россия http://wise-orm.com
Дата: 08.08.02 13:14
Оценка:
Здравствуйте Anatolix, Вы писали:

A>Здравствуйте IT, Вы писали:


IT>>Здравствуйте Anatolix, Вы писали:


IT>>Утверждение почти верное, но ответа на вопрос нет. Так в чём разница между STA и MTA?


A>STA — Single threaded apartament в нем всегда выполняется

A>1 поток, в MTA могут быть много.

не в нем выполняется, а он представляет
Re[3]: Хех, может вопрос по ASP+MS SQL подкинуть? :)
От: Алекс Россия http://wise-orm.com
Дата: 08.08.02 13:17
Оценка:
Здравствуйте BoikoRoman, Вы писали:

BR>Здравствуйте 4auHuK, Вы писали:



HK>> Set rs1 = conn.Execute("SELECT * FROM #T1")

HK>> Set rs2 = conn.Execute("SELECT * FROM #T2") '<--- тут ошибка выполнения
HK>> Set rs3 = conn.Execute("SELECT * FROM #T3") %>

BR>Кажется мне, что вопрос является ритарическим (не требующим ответа), но все равно хочется ответить.


BR>Ошибка врзникает на самом деле здесь


BR>Set rs1 = conn.Execute("SELECT * FROM #T1")


BR>метод Execute предназначен для выполнения SQL выражений, которые НЕ ВОЗВРАЩАЮТ РЕЗУЛЬТАТ (набор записей),


Ну это ты загнул.
Re[3]: Хех, может вопрос по ASP+MS SQL подкинуть? :)
От: Алекс Россия http://wise-orm.com
Дата: 08.08.02 13:18
Оценка:
Здравствуйте Lloyd, Вы писали:

L>Здравствуйте 4auHuK, Вы писали:



HK>> Set rs1 = conn.Execute("SELECT * FROM #T1")

HK>> Set rs2 = conn.Execute("SELECT * FROM #T2") '<--- тут ошибка выполнения
HK>> Set rs3 = conn.Execute("SELECT * FROM #T3") %>

HK>>Вопрос: почему, такой простой код дает ошибку в указаном месте?


L>А разво одновременно может быть открыто несколько рекордсетов?


Ну вы, блин, даете! Если бы открывался в первый рекодрсет, тогда да! А тут три разных!
Re[6]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 13:23
Оценка:
Здравствуйте Anatolix, Вы писали:

A>STA — Single threaded apartament в нем всегда выполняется 1 поток, в MTA могут быть много.


А каким образом "COM берет на себя заботу о синхронизации" в STA и MTA?
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 13:27
Оценка:
Здравствуйте Anatolix, Вы писали:

IT>>Каким образом в COM реализуется механизм рассылки событий?


A>Объект который хочет получать событие реализует интерфейс и передает его объекту который рассылает событие.


Какие стандартные интерфейсы COM при этом необходимо задействовать?
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Требуется Anatolix...
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 08.08.02 14:25
Оценка:
Здравствуйте IT, Вы писали:

IT>Здравствуйте Anatolix, Вы писали:


A>>STA — Single threaded apartament в нем всегда выполняется 1 поток, в MTA могут быть много.


IT>А каким образом "COM берет на себя заботу о синхронизации" в STA и MTA?


Дает вместо интерфейса заглушку которая сериализует вызовы
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[7]: Требуется Anatolix...
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 08.08.02 14:26
Оценка:
Здравствуйте IT, Вы писали:

IT>Здравствуйте Anatolix, Вы писали:


IT>>>Каким образом в COM реализуется механизм рассылки событий?


A>>Объект который хочет получать событие реализует интерфейс и передает его объекту который рассылает событие.


IT>Какие стандартные интерфейсы COM при этом необходимо задействовать?


IConnectionPoint IConnectionPointContainer
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[25]: Требуется Anatolix...
От: Dima2  
Дата: 08.08.02 14:33
Оценка:
Здравствуйте IT, Вы писали:

IT>Исключения мы уже проехали, поэтому я и не сомневался, что о них будет речь, но услышать я хотел именно вот это:


A>>>Здесь не стоит выносить critical section за класс, т.к. получается, что если я заблокировал один экземпляров, то все остальные в этот момент стоят курят, хотя могли бы работать. Надо сделать CriticalSection одной из переменных класса(не статистической)


Тогда немного странный вопрос. А если мне наоборот необходимо, чтобы все классы курили во время AddInternal(ptr) ?
Так что я бы ожидал другого ответа на этот вопрос.
Re[6]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 14:34
Оценка:
Здравствуйте Anatolix, Вы писали:

IT>>А как быть, если нужно рекурсивное использование классов, определённых в разных модулях? Т.е., например, в методе M1() класса A нужно работать с классамом B. А в классе B, в методе M2() нужно работать с классом A.


A>А никак...


Понятно, значит за 10 лет так ничего и не изменилось.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 14:36
Оценка:
Здравствуйте Anatolix, Вы писали:

IT>>А каким образом "COM берет на себя заботу о синхронизации" в STA и MTA?


A>Дает вместо интерфейса заглушку которая сериализует вызовы


Несколько слов об этой самой заглушке можешь сказать?
Если нам не помогут, то мы тоже никого не пощадим.
Re[26]: Требуется Anatolix...
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 08.08.02 14:37
Оценка:
Здравствуйте Dima2, Вы писали:

D>Тогда немного странный вопрос. А если мне наоборот необходимо, чтобы все классы курили во время AddInternal(ptr) ?


Объясни мне в каком случае это может понадобится.
Я вот считаю что такого просто не нужно.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[8]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 14:38
Оценка:
Здравствуйте Anatolix, Вы писали:

IT>>Какие стандартные интерфейсы COM при этом необходимо задействовать?


A>IConnectionPoint IConnectionPointContainer


Какие потенциальные проблемы согут возникнуть при использовании Connection Point?
Если нам не помогут, то мы тоже никого не пощадим.
Re[19]: Требуется Anatolix...
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 08.08.02 14:39
Оценка:
Здравствуйте Karimchik, Вы писали:

IT>>Понятно, с java у нас слабовато. Ответ не правильный. Этот вопрос на знание механизмов работы GC.


K>Да уж, я бы сказал, что совсем слабовато


Ты что-то маленько не понимаешь у меня там ровно половину
резюме фальшивое, но это не от того что я глупый а из-за
того что мы пытаемся разобраться на сколько легко это
отлавливается при собеседовании. Потом я расскажу
что из этого реально а что нет и ты поймешь что этот
"наезд" был совсем не в тему.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[9]: Требуется Anatolix...
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 08.08.02 14:40
Оценка:
Здравствуйте IT, Вы писали:

IT>Несколько слов об этой самой заглушке можешь сказать?


Ты хочешь слово маршалинг услышать? или
proxy/stub?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[27]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 14:41
Оценка:
Здравствуйте Anatolix, Вы писали:

D>>Тогда немного странный вопрос. А если мне наоборот необходимо, чтобы все классы курили во время AddInternal(ptr) ?


A>Объясни мне в каком случае это может понадобится.

A>Я вот считаю что такого просто не нужно.

Может понадобится, если доступ осуществляется к статическим данным (одним на всех) класса. Но в данном примере это не так.
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Требуется Anatolix...
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 08.08.02 14:42
Оценка:
Здравствуйте IT, Вы писали:

IT>Какие потенциальные проблемы согут возникнуть при использовании Connection Point?


Не совсем понял вопрос, я там особо проблем не вижу.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[28]: Требуется Anatolix...
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 08.08.02 14:45
Оценка:
Здравствуйте IT, Вы писали:

IT>Может понадобится, если доступ осуществляется к статическим данным (одним на всех) класса. Но в данном примере это не так.


Такое редко бывает и там обычно подходит
Interlocked***

Если у класса какие-то сложые общие данные их правильней
выносить в отдельный класс и лочить его.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[27]: Требуется Anatolix...
От: Dima2  
Дата: 08.08.02 14:47
Оценка:
Здравствуйте Anatolix, Вы писали:

A>Здравствуйте Dima2, Вы писали:


D>>Тогда немного странный вопрос. А если мне наоборот необходимо, чтобы все классы курили во время AddInternal(ptr) ?


A>Объясни мне в каком случае это может понадобится.

A>Я вот считаю что такого просто не нужно.

Ну ты даеш. Да при любом обращении к чему-то другому глобальному. Этим вопросом ты себя сдал с потрохами.

Представим что ф-я AddInternal(ptr) глобальная, которая соотвественно работает с глобальными переменными, и ты создаеш различные экземпляры твоего объекта в разных потоках, что тогда?
Re[10]: Требуется Anatolix...
От: IT Россия linq2db.com
Дата: 08.08.02 14:49
Оценка:
Здравствуйте Anatolix, Вы писали:

IT>>Какие потенциальные проблемы согут возникнуть при использовании Connection Point?


A>Не совсем понял вопрос, я там особо проблем не вижу.


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