Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mini.weblab
Member

Откуда:
Сообщений: 687
andreykaT
Да. к любому собесу в принципе неплохо бы подготовиться. просто с филосовскими вопросами можно не сойтись в некоторых аспектах с собеседующим. и если он малоадекватный, то ты в его глазах еще и дураком будешь впрочем, он в твоих будет самодуром как минимум.

это к теме лисковых и строгих убеждений.
разве не лучше для обеих сторон это выяснить быстро и сразу, на собеседовании ?
22 июл 19, 13:15    [21931685]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
Не совсем согласен насчет "проблем". Я соглашусь, что можно не знать текста самой задачи и попросить ее переформуоировать в треминах межпроцессного взаимодействия, но как их решить то вы просто обязаны знать.
Проблема парикмахера(как правильно шарить состояние между процессами\потоками) - на знание мьютексов, чтобы программа работала надо синхронизироваться на состоянии и допускать в критические блоки только один процесс
Проблема философов(доступ к одним и тем же ресурсам из нескольких потоков\процессов) - на знание как избежать дэдлок(брать ресурсы в определенном порядке + таймаут).

Ну и в принципе - если вы заявляете что обладаете знаниями многопоточного программирования, то странновато не знать классику
22 июл 19, 13:19    [21931691]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
mini.weblab
andreykaT
Да. к любому собесу в принципе неплохо бы подготовиться. просто с филосовскими вопросами можно не сойтись в некоторых аспектах с собеседующим. и если он малоадекватный, то ты в его глазах еще и дураком будешь впрочем, он в твоих будет самодуром как минимум.

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

Выяснить что?
22 июл 19, 13:20    [21931694]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mini.weblab
Member

Откуда:
Сообщений: 687
mayton,
ну вот смотри,
человека спрашивают про разницу между объектами, созданными методо1 и методом2, а он начинает че-то гнать насчет женитьбы и философии.
100500 неадекват же!
22 июл 19, 13:22    [21931696]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mayton
Member

Откуда: loopback
Сообщений: 42508
забыл ник
Проблема философов(доступ к одним и тем же ресурсам из нескольких потоков\процессов) - на знание как избежать дэдлок(брать ресурсы в определенном порядке + таймаут).

Это как раз про то что "дефолтный порядок" породил дедлок.
22 июл 19, 13:27    [21931699]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mini.weblab
Member

Откуда:
Сообщений: 687
забыл ник,
выяснить насколько комфортно будет вместь работаться, и сработаетесь ли вообще
22 июл 19, 13:27    [21931700]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
mini.weblab
mayton,
ну вот смотри,
человека спрашивают про разницу между объектами, созданными методо1 и методом2, а он начинает че-то гнать насчет женитьбы и философии.
100500 неадекват же!


Человека спрашивают про то как правильно создать объект в приложении, а он начинает задвигать про какие-то фабрики, синглтоны. HR, какого вы укурков опять допускаете?
22 июл 19, 13:28    [21931701]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mayton
Member

Откуда: loopback
Сообщений: 42508
mini.weblab
mayton,
ну вот смотри,
человека спрашивают про разницу между объектами, созданными методо1 и методом2, а он начинает че-то гнать насчет женитьбы и философии.
100500 неадекват же!

Я нарисовал ответ картинкой. И это лучший ответ на данный вопрос. Я гарантирую это (с).
Про старуху Лискову в принципе тоже верно но отвязано от реальности. У меня - реальный боевой пример.
Иногда проще нарисовать чем говорить. Это из той-же области что объяснить ребёнку ОТО.
22 июл 19, 13:29    [21931705]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
mini.weblab
забыл ник,
выяснить насколько комфортно будет вместь работаться, и сработаетесь ли вообще

В больших компаниях в основном собеседуют те кто свободен или есть желание\опыт по конкретным технологиям. Иногда набирают в новую команду и т.д, личностные качества должны проверяться HR, это вообще не предмет собеседоания. Конечно если собеседуемый ведет себя странновато я скажу об этом HR, но это никак не должно влиять на оценки
22 июл 19, 13:30    [21931706]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
mayton
забыл ник
Проблема философов(доступ к одним и тем же ресурсам из нескольких потоков\процессов) - на знание как избежать дэдлок(брать ресурсы в определенном порядке + таймаут).

Это как раз про то что "дефолтный порядок" породил дедлок.

Или я не понял тебя, или не дефолтный порядок породит дэдлок еще быстрее, поэтому я и говорю нужен порядок + таймаауты, одного недостаточно
22 июл 19, 13:32    [21931708]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mini.weblab
Member

Откуда:
Сообщений: 687
забыл ник
Человека спрашивают про то как правильно создать объект в приложении, а он начинает задвигать про какие-то фабрики, синглтоны. HR, какого вы укурков опять допускаете?
необязательно, может человека спрашивают, что будет если создать объект неправильно
про синглтоны и фабрики вообще до вас никто не упоминал (это на тему укурков)
22 июл 19, 13:34    [21931709]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
забыл ник
Не совсем согласен насчет "проблем". Я соглашусь, что можно не знать текста самой задачи и попросить ее переформуоировать в треминах межпроцессного взаимодействия, но как их решить то вы просто обязаны знать.
Проблема парикмахера(как правильно шарить состояние между процессами\потоками) - на знание мьютексов, чтобы программа работала надо синхронизироваться на состоянии и допускать в критические блоки только один процесс
Проблема философов(доступ к одним и тем же ресурсам из нескольких потоков\процессов) - на знание как избежать дэдлок(брать ресурсы в определенном порядке + таймаут).

Ну и в принципе - если вы заявляете что обладаете знаниями многопоточного программирования, то странновато не знать классику

вот ты в двух словах всю интригу этих задачек объяснил и всё стало понятно.
я думаю многие понимают и как работает дедлок и как его избежать и для чего нужны мьютексы в шейред ресурсах. а вот всё остальное - это демагогия и обертка. скажи проще и всё будет проще понимать.
22 июл 19, 13:39    [21931713]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
mini.weblab
забыл ник
Человека спрашивают про то как правильно создать объект в приложении, а он начинает задвигать про какие-то фабрики, синглтоны. HR, какого вы укурков опять допускаете?
необязательно, может человека спрашивают, что будет если создать объект неправильно
про синглтоны и фабрики вообще до вас никто не упоминал (это на тему укурков)

Ну судя по тому что вы пока с трудом умеете проводить аналогии и вычленять абстракции, предположу что ваш уровень где-то между джуниором и мидл. На таком уровне, вопросы типо как создать объект правильно допустимы и имеют смысл. С точки зрения сеньора и выше, одним упоминанием принципа из SOLID\паттерна\"проблемы философа" он просто смывает пласт вопросов и малозначительных деталей для обьяснения, что позволяет сразу перейти к следующей теме. Все эти принципы для того и придуманы чтобы коммуникация между девелоперами была быстрее и эффективнее, и если вы "тонете" в этом то есть два возможных обьяснения - либо неопытность либо нежелание учиться. Первый случай это вполне нормально для определенных позиций, но выведывая детали собеседующий потратит кучу времени и на остальные важные темы просто не хватит времени. И это прямым образом повлияет на отзыв о вас в первую очередь, потому что если не уверен лучше не бери(с)
22 июл 19, 13:42    [21931714]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
andreykaT
забыл ник
Не совсем согласен насчет "проблем". Я соглашусь, что можно не знать текста самой задачи и попросить ее переформуоировать в треминах межпроцессного взаимодействия, но как их решить то вы просто обязаны знать.
Проблема парикмахера(как правильно шарить состояние между процессами\потоками) - на знание мьютексов, чтобы программа работала надо синхронизироваться на состоянии и допускать в критические блоки только один процесс
Проблема философов(доступ к одним и тем же ресурсам из нескольких потоков\процессов) - на знание как избежать дэдлок(брать ресурсы в определенном порядке + таймаут).

Ну и в принципе - если вы заявляете что обладаете знаниями многопоточного программирования, то странновато не знать классику

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


Согласен, я просто часто собеседую потому в курсе,\но когда не знаю что-то или вылетело из головы - то правильный ответ такой - "Извините, я уже немного устал, я точно слышал об этой проблеме и наверняка знаю как ее решать, но не помню точного описания. Будьте добры сформулируйте в терминах экзекьютор\поток бла-бла и скорее всего я скажу вам как ее решить". Если собеседующий сам не сведущ, то это еще и некислый троллинг получится.
Ну и да, знать все нельзя, это очевидно. Иногда я спрашиваю веши напрямую не относящиеся к задаче, и не жду особо ответа, но если вдруг человек ответил, то это просто огромный плюс, значит он обучается\интересуется
22 июл 19, 13:46    [21931718]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mini.weblab
Member

Откуда:
Сообщений: 687
забыл ник,

и как же ответить на вопрос изначально заданный ТС ??!
(для человека претендующего на джуниора-мидла)
22 июл 19, 14:50    [21931767]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
mini.weblab
забыл ник,

и как же ответить на вопрос изначально заданный ТС ??!
(для человека претендующего на джуниора-мидла)


Давайте, определимся, надо отвечать на вопрос ТС или на вопрос, который ему задавали на собеседовании? Вопрос ТС практически бессмысленен, он о форме, а не о содержании. Черт его знает что его там спрашивали и как он это понял. Вся тема суть попытка понять что он хотел узнать:) На собеседовании явно вопрос звучал не так.

Что могли спросить на собеседовании так это - что такое полиморфизм и приведи пример на Java. Джун и мидл по идее ответили бы что-то типо - ну это когда наследуешься и переопределяешь методы и по одной ссылке можно вызвать разные методы. Подкованный школяр сказал бы что полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового. Если бы спрашивали меня - я бы спросил в ответ а какой полиморфизм интересует - subtyping, parametric или ad-hoc? Думаю на этом бы тема полиморфизма закончилась.
ТС же скорее всего промямлил что-то невразумительное и собеседующие не поленились и стали вытягивать из него информацию, чтобы понять, понимает ли он полиморфизм хотя бы на уроне code monkey, привели пример, сделали сабклассы и начали задавать вопросы в стиле - а что вот тут вернется, а что если тут ссылку сделать на базовый класс. Вот и все
22 июл 19, 15:01    [21931771]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
я помню как то брал курс на юдеми про многопоточку и там как раз чел рассказывал про эти две задачки. если честно, то бJльшей мудоты я не видал. но наверное это зависит и от рассказчика. вроде еще в канкарренс ин практиз эту тему поднимали (не уверен)
22 июл 19, 15:15    [21931784]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
...я про парикмахеров и философов
22 июл 19, 15:17    [21931787]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
забыл ник
mini.weblab
забыл ник,

и как же ответить на вопрос изначально заданный ТС ??!
(для человека претендующего на джуниора-мидла)

а какой полиморфизм интересует - subtyping, parametric или ad-hoc? Думаю на этом бы тема полиморфизма закончилась.

эх. еще бы это еще как то явно использовалось в реальных приложениях.
22 июл 19, 15:19    [21931792]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
andreykaT
забыл ник
пропущено...

а какой полиморфизм интересует - subtyping, parametric или ad-hoc? Думаю на этом бы тема полиморфизма закончилась.

эх. еще бы это еще как то явно использовалось в реальных приложениях.

в скала как раз-таки все 3 и можно увидеть) Именно пересев на скалу я и понял чем они отличаются:)
22 июл 19, 15:22    [21931796]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
andreykaT
я помню как то брал курс на юдеми про многопоточку и там как раз чел рассказывал про эти две задачки. если честно, то бJльшей мудоты я не видал. но наверное это зависит и от рассказчика. вроде еще в канкарренс ин практиз эту тему поднимали (не уверен)

Да, это скорее всего рассказчик такой. Ну или на тот момент не в коня корм был. Иногда перечитываю чкнижки казавшиеся пару лет назад сложными и удивляюсь какие тривиальные вещи тут написаны.
22 июл 19, 15:24    [21931800]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mayton
Member

Откуда: loopback
Сообщений: 42508
забыл ник
andreykaT
пропущено...

эх. еще бы это еще как то явно использовалось в реальных приложениях.

в скала как раз-таки все 3 и можно увидеть) Именно пересев на скалу я и понял чем они отличаются:)

Кстати да. Типизация тоже в Java существует но не так ярко выражена. Нет такой математичной строгости
как в Scala или Haskell.
22 июл 19, 15:29    [21931810]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
mayton
Member

Откуда: loopback
Сообщений: 42508
andreykaT
...я про парикмахеров и философов

Да можно прорабоатать десятки лет в разработке конкурирующего ПО но так и не наступить на
ту ситуацию которую нарисовали в философской задаче. Хм.. как вариант кольцевой список ресурсов.
Но тоже.. редкость такая. В реальности коллекции ресурсов обычно имеют голову и хвост и поэтому
такой проблемы не бывает.
22 июл 19, 15:49    [21931824]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
mayton
забыл ник
пропущено...

в скала как раз-таки все 3 и можно увидеть) Именно пересев на скалу я и понял чем они отличаются:)

Кстати да. Типизация тоже в Java существует но не так ярко выражена. Нет такой математичной строгости
как в Scala или Haskell.

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

кстати по дженерикам,
как сказал гослинг на маракане: есть два типа людей: одни не знают как обращаться с генериками, другие думают что знают.

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

по тайпклассам курил вот это:

https://scalac.io/typeclasses-in-scala/

кстати там как раз и ссылаются на адхок подлиморфизм.
22 июл 19, 17:59    [21931997]     Ответить | Цитировать Сообщить модератору
 Re: Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
mayton
andreykaT
...я про парикмахеров и философов

Да можно прорабоатать десятки лет в разработке конкурирующего ПО но так и не наступить на
ту ситуацию которую нарисовали в философской задаче. Хм.. как вариант кольцевой список ресурсов.
Но тоже.. редкость такая. В реальности коллекции ресурсов обычно имеют голову и хвост и поэтому
такой проблемы не бывает.

а можно десятки лет проработать и не заниматься конкурирующим ПО в принципе. ну или на грани - делаем всё иммутабельным и идите вы в пень со своими локами и шаред ресурсами.
22 июл 19, 18:01    [21931998]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Java Ответить