да, хороший пример!!! Спасибо. Вот теперь я понял почему отказались от множественного наследования - было бы оно - я бы не сильно переживая замутил его, а так пришлось делать правильно:)
ну в сущности я и сделал делегирование. класс User имеет свойства, в которых экземпляры классов USettings и USession, но ведь глобально это просто способ реализовать множественное наследование (из-за того, что его нет).
спасибо за ответ, но я не понял :)
Мне кажется, что множественное наследование не поддерживается php, java, C# не по причинам того, что его плохо применяют, и от этого ухудшается отслеживание кода. Т.е. если классы от которых происходит множественное наследование могут иметь общего родителя (где-то далеко) или т.п. - могут возникнуть разные косяки... Но если классы находятся в перпендикулярных плоскостях, то я не вижу чем плохо множественное наследование. Я в своем примере использую совершенно несвязанные по логике классы (настройки, сессии и т.п.). А класс User является просто точкой "входа". Т.е. класс User не имеет собственных методов и классов. И для того, чтобы мне что-то поменять, мне нужно всего лишь поменять один из классов родителей.
Мне кажется тут уместно использование множественного наследования, разве нет?
я могу поделиться примером из жизни (если можно реализовать более красиво, то буду признателен):
есть класс UserSession (класс работы с сессиями, авторизацией и т.п.), есть класс UserSettings (личные настройки пользователя на сайте), и такие классы с отдельной логикой могут появляться в дальнейшем.
Поэтому мне кажется удобным в этом случае использовать множественное наследование, когда я могу получить доступ к любой функции перечисленных выше классов через класс User (как точка доступа ко всем классам, касающимся пользователя).
Разве это не удобно?
если язык ПХП пригоден только для "левых" сайтов, то почему же основные гиганты веба (facebook, livejornal, etc) используют php, а не что-нибудь другое? Видимо расчеты на счет того, что разработка на PHP дороже, чем на "Java и/или Python" ошибочны
просто у меня ситуация была не очень: я написал тест вступительный по грамматике на upper-intermediate, а устное собеседование с амером на beginer тянуло :) В итоге пошел в группу pre-intermediate и учился там два слова связывать :)
А я бы не сказал, что это так действенно. Может если один на один с носителей (педагогом), то может...а в группе - я ходил пол года и толку было не много. Преподавать толковый (носитель), 2 раза в неделю, пол года - толку не много.. Самое ценное в уроках было то, что можно с ним (носителем) поговорить на переменке немного. Это реально развивает..А всякие там грамматики наоборот тормозят - там ориентация на группу идет и я ее дома более быстрыми темпами могу изучить..
а у меня и не было что забывать после школе:) но все равно нужен синий:)
красный - потеря времени...да и трудно две книги заботать - одну бы осилить:)
в общем, я начал с синего, сначала выписывал слова незнакомые, потом они почти перестали встречаться. так прочитал и проделал упражнения по 20 юнитам где-то. дальше решил, что словарный запас важнее, купил книжку: 2000 самых употребляемых слов и за месяц их выучил (по 100 слов в день фигачил, из них половину где-то знал - т.е. 50 получалось).
после этого добил мерфи. добивал его по 5 часов в день около месяца. Часть последних юнитов учил без выполнения упражнений (надоело).
В общем, поднял английский сильно (до этого я был дуб полный и не знал, что есть время Present Perfect).
Считаю, что это наилучший способ для новичка - в лоб, но действенно!
чего-то я вообще перестал понимать тему разговора.
Я думал мы обсуждаем "вот что нужно знать, чтобы у нас работать" или т.п.
А теперь у меня складывается ощущение, что тут просто хитрый способ найти несколько хороших и бесплатных решений для нагоревшей проблемы атак :))
ну как бы не они себя поставили в такие условия :) Вы им говорите: "решите задачку", они ее решить не могут, вы на них смотрите косо, практически "гуляй вася", тут человеку, который не реализовал себя до конца хочется и "поговорить". Если бы вы, примеру, сразу предоставили ему список задач, то он бы и не напрягся, возможно, что не решил одну из списка...
Т.е. я хочу сказать, что тут можно говорить много о том, как ведут себя другие люди и "нам с ними работать". Но ведь Вы ничего не говорите как Вы преподносите все это для человека. Может такие ситуации, когда человеку остается только оправдываться, Вы сами и спровоцировали? а? Может же быть такое.
В этом топике прозвучало куча непонимания для чего эта задача от людей, которые уже прочитали куча предложенных тут решений (и уже знают ответ на нее). Но тем не менее, у них возникают негативные эмоции. Это как раз пример того, как они поняли, что Вы от них хотите. Т.е. этот негатив спровоцировали Вы :) (Вы - всмысле Хабр и Ко).
На всем съесть собаку не возможно. Это всего лишь частная задача. Потом готовиться к атакам нужно заранее. А тут уже нужен человек, который будет не лениться и попробует поиграться со временем выполнения скрипта и его оптимизнуть (т.е. тут важнее ответственность у человека, чем знание какая команда выполняется быстрее).
Потом есть такой тип людей, которые могут часами сидеть оптимизировать задачу, но к цели не придвинуться. Т.е. люди, которые не результат делают, а придумают себе внутренний мир и в нем роются. Это тип людей такую задачу могут "щелкнуть" как орешек, но работать в команде они не смогут. Потом окажется, что они и спроектировать архитектуру простую не смогут нормально и в чужом коде разобраться, и т.д.
В общем, считаю, что собеседование проводить по одной задаче это не есть гуд.
Либо давать эту задачу наряду с другими и смотреть, как человек в общем мыслит, либо ее вообще не давать:)
так никогда не говорить "я это не знаю" учат все современные книжки по психологии, бизнесу или т.п. Вот люди и бояться... Хотя лично у меня больше уважения к человеку, кто честно скажет все. Хотя... при первом знакомстве фраза "я этого не знаю" может действительно запомниться и привести к неправильному мнению о человеке. Ох трудно все, трудно в этом мире :)
Мне кажется, что множественное наследование не поддерживается php, java, C# не по причинам того, что его плохо применяют, и от этого ухудшается отслеживание кода. Т.е. если классы от которых происходит множественное наследование могут иметь общего родителя (где-то далеко) или т.п. - могут возникнуть разные косяки... Но если классы находятся в перпендикулярных плоскостях, то я не вижу чем плохо множественное наследование. Я в своем примере использую совершенно несвязанные по логике классы (настройки, сессии и т.п.). А класс User является просто точкой "входа". Т.е. класс User не имеет собственных методов и классов. И для того, чтобы мне что-то поменять, мне нужно всего лишь поменять один из классов родителей.
Мне кажется тут уместно использование множественного наследования, разве нет?
есть класс UserSession (класс работы с сессиями, авторизацией и т.п.), есть класс UserSettings (личные настройки пользователя на сайте), и такие классы с отдельной логикой могут появляться в дальнейшем.
Поэтому мне кажется удобным в этом случае использовать множественное наследование, когда я могу получить доступ к любой функции перечисленных выше классов через класс User (как точка доступа ко всем классам, касающимся пользователя).
Разве это не удобно?
Я для реализации множественного наследования в пхп использую рефлексию...
красный - потеря времени...да и трудно две книги заботать - одну бы осилить:)
в общем, я начал с синего, сначала выписывал слова незнакомые, потом они почти перестали встречаться. так прочитал и проделал упражнения по 20 юнитам где-то. дальше решил, что словарный запас важнее, купил книжку: 2000 самых употребляемых слов и за месяц их выучил (по 100 слов в день фигачил, из них половину где-то знал - т.е. 50 получалось).
после этого добил мерфи. добивал его по 5 часов в день около месяца. Часть последних юнитов учил без выполнения упражнений (надоело).
В общем, поднял английский сильно (до этого я был дуб полный и не знал, что есть время Present Perfect).
Считаю, что это наилучший способ для новичка - в лоб, но действенно!
P.S. Ходил на встречу в ВШЭ, где выступали ваши ребята - произвели хорошее впечатление :)
Я думал мы обсуждаем "вот что нужно знать, чтобы у нас работать" или т.п.
А теперь у меня складывается ощущение, что тут просто хитрый способ найти несколько хороших и бесплатных решений для нагоревшей проблемы атак :))
Т.е. я хочу сказать, что тут можно говорить много о том, как ведут себя другие люди и "нам с ними работать". Но ведь Вы ничего не говорите как Вы преподносите все это для человека. Может такие ситуации, когда человеку остается только оправдываться, Вы сами и спровоцировали? а? Может же быть такое.
В этом топике прозвучало куча непонимания для чего эта задача от людей, которые уже прочитали куча предложенных тут решений (и уже знают ответ на нее). Но тем не менее, у них возникают негативные эмоции. Это как раз пример того, как они поняли, что Вы от них хотите. Т.е. этот негатив спровоцировали Вы :) (Вы - всмысле Хабр и Ко).
Потом есть такой тип людей, которые могут часами сидеть оптимизировать задачу, но к цели не придвинуться. Т.е. люди, которые не результат делают, а придумают себе внутренний мир и в нем роются. Это тип людей такую задачу могут "щелкнуть" как орешек, но работать в команде они не смогут. Потом окажется, что они и спроектировать архитектуру простую не смогут нормально и в чужом коде разобраться, и т.д.
В общем, считаю, что собеседование проводить по одной задаче это не есть гуд.
Либо давать эту задачу наряду с другими и смотреть, как человек в общем мыслит, либо ее вообще не давать:)