Re[8]: квадратики и ООП
От: mihoshi Россия  
Дата: 05.07.06 08:01
Оценка:
Здравствуйте, Pyromancer, Вы писали:

P>Геометрия говорит, что прямоугольник и ромб наследуют от паралеллограмма, а квадрат от прямоугольника и ромба, а значит подстраивайте своё ООП соответственно.


В геометрии нет понятия наследования. Вообще, математикой можно описать код на плюсах, наоборот — крайне редко. Плюсы предназначены для генерации и поддержки машкода. Для описания матпонятий есть Coq, Hol и иже с ними.

P>Даже если прямоугольник имеет раздельное изменение сторон кто мешает в квадрате оставить ширину и высоту а метод переопределить так, чтобы и второе измерение изменялась так же как то,что меняют? Или например наследовать этот метод от ромба без изменений


Это нарушение контракта, так как тогда метод делает не то, что предполагается. Хак, иными словами. Хотя тут тоже возможны разные интерпретации
Re[9]: квадратики и ООП
От: inko Россия  
Дата: 07.07.06 09:40
Оценка:
Здравствуйте, mihoshi, Вы писали:

P>>Даже если прямоугольник имеет раздельное изменение сторон кто мешает в квадрате оставить ширину и высоту а метод переопределить так, чтобы и второе измерение изменялась так же как то,что меняют? Или например наследовать этот метод от ромба без изменений


M>Это нарушение контракта, так как тогда метод делает не то, что предполагается. Хак, иными словами. Хотя тут тоже возможны разные интерпретации


категорически не согласен, для квадрата методы SetWidth() и SetHeight() так же будут изменять ширину и длину его сторон, тот факт, что длина==ширина никоим образом этому не противоречит
Re[5]: квадратики
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.07.06 11:35
Оценка:
Здравствуйте, fomiha, Вы писали:


Двоешники. Никто ни от кого не наследуется. Использовать поиск по сайту по словам "Why circle is not an ellipse".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: квадратики
От: Pyromancer  
Дата: 10.07.06 18:47
Оценка:
Здравствуйте, Sinclair, Вы писали:

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



S>Двоешники. Никто ни от кого не наследуется. Использовать поиск по сайту по словам "Why circle is not an ellipse".


Сам двоеШник, у нас тут квадраты и прямоугольники только, никаких кругов с эллипсами, не говоря уж что по такому запросу даже гугель ничего не находит, а поиск сайта-только этот топик
Re: Задания на собеседовании.
От: Maxim Golov Голландия  
Дата: 14.07.06 21:25
Оценка:
Здравствуйте, Sh1ZoID, Вы писали:

SZI> В скором времени собираюсь менять место работы, а значит, таскаться по собеседованиям. Собеседований, как таковых, я не боюсь, т.к. уверен в своих знаниях, но вот когда мне говорят фразу типа: "вот вам небольшое задание, вы должны его сделать за пол часа", кисти моих рук начинают колебаться с амплитудой 5-10см, не зависимо от сложности задания. И когда я сожусь за комп, я не то, что сообразить ничего не могу, я по клавишам-то с трудом попадаю(серьёзно!) . Это для меня самое страшное на собеседовании!!! Так вот собственно вопрос...не будет ли не корректным с моей стороны попросить пройти этот этап собеседования каким-нибудь другим путём? Если это допустимо, то что можно предложить в замен?


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

Вообще собеседование — всегда диалог, а не игра в одни ворота, не надо бояться предлагать более эффективные решения
Re[2]: Задания на собеседовании.
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 16.07.06 12:06
Оценка: 2 (1)
Здравствуйте, Maxim Golov, Вы писали:

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


На самом деле у меня на собеседованиях было 2 человека которые очень волновались(один вообще не мог 2 слов связать, а второй не смог задачки решать(устные не на компе) и именно так и ответил). Я им обоим предложил прийти в следующий раз и продолжить, но ни один не пришел. Решение дома меня бы не удовлетоврило, меня не интересует решение я хочу посмотреть как человек думает когда его получает.

Про первого из этих людей один человек сказал очень правильно "если его на собеседовании так колбасит, что с ним будет если он заглянет в код XXX — сердечный приступ?". И я в принипе согласен — такой мандраж на собеседовании говорит о фантастически низкой устойчилости в стрессовых ситуациях(стресс по началу испытывают все, это не криминально, просто некоторые с ним быстро справляются, а некоторые нет). А стресс такой может легко возникнуть на работе(упал сервис в production или у проект клиента — нужно не волноваться, а поднимать).
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[3]: Задания на собеседовании.
От: Maxim Golov Голландия  
Дата: 17.07.06 17:39
Оценка:
Здравствуйте, Anatolix, Вы писали:

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


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


A>На самом деле у меня на собеседованиях было 2 человека которые очень волновались(один вообще не мог 2 слов связать, а второй не смог задачки решать(устные не на компе) и именно так и ответил). Я им обоим предложил прийти в следующий раз и продолжить, но ни один не пришел. Решение дома меня бы не удовлетоврило, меня не интересует решение я хочу посмотреть как человек думает когда его получает.


A>Про первого из этих людей один человек сказал очень правильно "если его на собеседовании так колбасит, что с ним будет если он заглянет в код XXX — сердечный приступ?". И я в принипе согласен — такой мандраж на собеседовании говорит о фантастически низкой устойчилости в стрессовых ситуациях(стресс по началу испытывают все, это не криминально, просто некоторые с ним быстро справляются, а некоторые нет). А стресс такой может легко возникнуть на работе(упал сервис в production или у проект клиента — нужно не волноваться, а поднимать).


Anatolix. и Вы (тоже) правы Лучший совет соискателю — вылечиться/отучиться от мандража; как работодатель, я бы сильно задумался, удастся ли мне сработаться с таким тревожным индивидом. Впрочем, если бы это было единственным минусом на фоне массы плюсов — могло бы и перевесить, но мало шансов, подозреваю — еще что-нибудь вылезло бы, скорее всего.
Re[6]: квадратики
От: fmiracle  
Дата: 18.07.06 12:47
Оценка: +2
Здравствуйте, Ulin, Вы писали:

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


F>>Советую всё же прочитать статью. Если трудно на английском — можно поискать и на русском...


U>Прочитал. Действительно, Вы правы. Оказывается, это классический пример нарушения LSP


В том случае, когда есть GetWidth и GetHeight и имеются предположения, что они должны быть независимы.
Можно рассмотреть случай, когда разрабатывается иерархия классов геометрических фигур, в которых размеры фигур не меняются — один раз создали и все. Что тут будет не так?

Можно рассмотреть случай, когда разрабатывается графический интерфейс с фигурками разных форм — и предполагается, что изменение высоты для для прямоугольника может повлечь за собой изменение ширины (скажем, наличие установки в фигуре "сохранять пропорции").

В данном вопросе на собеседовании, на мой взгляд, стоило нарисовать несколько разных иерархий — когда квадрат унаследован от прямоугльника, когда квадраты в системе являются объектами класса rectangle (просто с равными сторонами), когда квадрат и прямоугольник независимо наследуются от одного базового класса (Figure), когда квадрат и прямоугольник наследуются вообще от разных объектов (EqualSizePolygon, NonEqualSizePolygon), и еще чего-нибудь, что придумается, заодно расспросив о проблеме, которая будет решаться, и поговорить о достоинствах то или иной иерархии.


Невозможно создать идеальные классы, которые полностью отобразят реальный мир — стоит учитывать ту задачу, которая будет решаться — тогда классы выйдут красивее, проще и полезнее
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Задания на собеседовании.
От: little_alex  
Дата: 18.07.06 15:33
Оценка:
Здравствуйте, NikeByNike, Вы писали:

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


NBN>Еще бывает сложная задача — угадать (именно угадать) какое решение от тебя хотят. Многие задачи имеют несколько решений:

NBN>например вопрос — какой недостаток у STL ты знаешь? Или лучше так: Какой ГЛАВНЫЙ недостаток у STL?
NBN>Варианты ответов сходу:
NBN>непереносимость между dll, отсутствие стратегий, распухание кода. Для меня эти недостатки идут именно в таком порядке. Для работодателя могут идти в другом — и впечатление смазывается.

Непереносимость между dll — это особенности организации dll в Windows (В Linix например с этим проблем нет). Соответственно к недостакам Stl это IMHO причислять нельзя.
Re[3]: Задания на собеседовании.
От: Igor Trofimov  
Дата: 20.07.06 18:29
Оценка:
A>Про первого из этих людей один человек сказал очень правильно "если его на собеседовании так колбасит, что с ним будет если он заглянет в код XXX — сердечный приступ?". И я в принипе согласен — такой мандраж на собеседовании говорит о фантастически низкой устойчилости в стрессовых ситуациях(стресс по началу испытывают все, это не криминально, просто некоторые с ним быстро справляются, а некоторые нет). А стресс такой может легко возникнуть на работе(упал сервис в production или у проект клиента — нужно не волноваться, а поднимать).

Ну.. я позволю себе не согласиться.
Стрессы бывают разные, люди бывают разные.
Программисты часто — интроверты и общение с незнакомыми людьми может представлять для них повышенную сложность.
После того, как человек поработает в коллективе месяц-другой, все будут уже свои и от "мандража" следа не останется. А рабоче-стрессовые ситуации могут такого эффекта не давать совершенно.

В общем, если у вас кандидатов много и вы ищете еще и с крылышками за спиной — тогда да, конечно.
Но по сегодняшним меркам я бы на такие мелочи внимания не обращал

Хоть косой, хоть хромой, но если знает, что такое внешнее соединение и для чего нужны виртуальные функции — надо смотреть!
O, tempora...
Re: Задания на собеседовании по Java
От: erslgoeirjh Россия http://russianfellow.livejournal.com
Дата: 25.07.06 13:35
Оценка:
А вот интересно, какие задания бывают на собеседовании не по C++ (их я знаю), а по Java?
Пу и Ме сидели на трубе...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.