Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросы на собеседование 
:(
    Опции темы
Smorodin
Дата 5.10.2012, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



 smile 
Добрый день!
Прошу прощения, если не в том разделе, но:

начал искать работу PHP-программистом с переездом в Москву.
Повторил то, что знал, подучил, то, чего не знал, но что требуют.

Хочу проверить свои знания, и что-либо при необходимости подучить.

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

Пожалуйста!  smile 


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
MoLeX
Дата 5.10.2012, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Что такое:
1. ООП
2. $this
3. почему в некоторых случаях используют $this, а в других self
4. Инкапсуляция
5. Интерфейсы. Для чего они нужны, привести пример
6. Паттерн фабрика

Хватит)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Smorodin
Дата 5.10.2012, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



Это я все знаю...
http://habrahabr.ru/post/148509/ - здесь смотрел, что спрашивают... 
Чувствую, что не 6 вопросов будет))

Хочу реальные примеры =(


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
MoLeX
Дата 5.10.2012, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



ты сначала на эти ответь своими словами, но чтобы люди поняли)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Fortop
Дата 5.10.2012, 13:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42





--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Smorodin
Дата 5.10.2012, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



Цитата(MoLeX @ 5.10.2012,  15:42)
ты сначала на эти ответь своими словами, но чтобы люди поняли)

А работу дадите? ))))

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

4 основных механизма ООП: абстрация, наследование, полиморфизм, инкапсуляция.

2) Особая переменная $this всегда присутствует в методах. С ее помощью можно получить свойства и вызвать методы объекта, для которого вызван метод.

3) К статическим методам и свойствам можно получить доступ не инициализируя объект. Такие методы могут обращаться к свойствам и методам только напрямую по имени класса, или же используя "self::" (по крайней мере, я это так понимаю...).
Также self играет роль при переопределенииЖ она ссылается только на элементы своего класса.

Код

class a {
    public static $val = 1;
    
    public static function t1() {
        return self::$val;
    }
}

class b extends a {
    public static $val = 2;
    
    public static function t2() {
        return self::$val;
    }
    
    public static function t3() {
        return $this->$val; // Fatal
    }
    
    public static function t4() {
        return parent::$val;
    }
}

echo b::t1().' '.b::t2().' '.b::t4(); // 1 2 1


4) Инкапсуляция - механизм, с помощью которого можно ограничить доступ к элементам класса. PRIVATE - доступен только элементам данного класса. PROTECTED - расширение private, определяющие доступность классам-наследникам. PUBLIC - открытый.

5) Грубо говоря, Интерфейс представляет собой обычный абстрактный класс, но не может в себе содержать свойств и реализации. Интерфейс определяет лишь методы, аргументы и модификаторы доступа.
PHP не поддерживает множественное наследование; главное достоинство интерфейсов заключается в том, что класс может реализовывать несколько интерфейсов.
Также важна роль интерфейсов в распределенной разработке.

Код

interface IWater {
    public function escape();
}

interface IDrug {
    public function me_guasta();
    public function hangover();
}

class Beer implements IWater, IDrug {
    public $count = 0;
    
    public function escape() {
        echo 'Хочу в туалет';
    }
    
    public function me_guasta() {
        echo 'Хочу танцевать';
    }
    
    public function hangover() {
        echo 'Зачем я столько пил...';
        exit();
    }
    
    public function process() {
        $this->count++;
        if($this->count == 3) {
            $this->escape();
        }
        elseif($this->count == 5) {
            sleep(5);
            $this->hangover();
        }
        elseif($this->count > 1) {
            $this->me_guasta();
        }
    }
}

$obj = new Beer;
$obj->process();
$obj->process();
$obj->process();
$obj->process();
$obj->process();
}


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

Добавлено @ 14:23
Цитата(Fortop @ 5.10.2012,  16:39)
http://corp.mamba.ru/test/index.phtml

http://corp.mamba.ru/test/widget.phtml?id=75807

Это сообщение отредактировал(а) Smorodin - 5.10.2012, 15:37


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
Sentox
Дата 5.10.2012, 15:31 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Цитата

 Особая переменная $this всегда присутствует в методах. С ее помощью можно получить свойства, константы и вызвать методы объекта, для которого вызван метод.

Во первых это не переменная (в аргументацию попробуйте её изменить в коде), скорее всего это больше константа, содержащая ссылку на текущий экземпляр класса, создаваемая во время инициализации объекта. Кстати с её помощью доступ к константам не возможен, так как константы принадлежат классам, а не экземпляру объекта. Доступ к константам через self::

Цитата

5) Грубо говоря, Интерфейс представляет собой обычный абстрактный класс, но не может в себе содержать свойств и реализации. Интерфейс определяет лишь методы, аргументы и модификаторы доступа.

Всё намного проще smile
Интерфейс описывает методы доступа (API) управлением объектом или классом, группирующими эти API по определённой предметной области. Соответственно обязывая объект(класс) иметь их. 

Это сообщение отредактировал(а) Sentox - 5.10.2012, 15:34
PM MAIL   Вверх
Smorodin
Дата 5.10.2012, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



Цитата(Sentox @ 5.10.2012,  18:31)
Во первых это не переменная (в аргументацию попробуйте её изменить в коде), скорее всего это больше константа, содержащая ссылку на текущий экземпляр класса, создаваемая во время инициализации объекта. Кстати с её помощью доступ к константам не возможен, так как константы принадлежат классам, а не экземпляру объекта.

Полностью согласен!
Торопился писать, сразу о нескольких вопросах думал, не углядел/продумал.

Про интерфейсы можно много сказать, но писать влом  smile 

Спасибо за комментарий! =)


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
skyboy
Дата 5.10.2012, 20:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



договорись о собеседовании в какую-то компанию smile
компаний столько, что на собеседование можно лет 50 ходить и не повторяться
PM MAIL   Вверх
Smorodin
Дата 6.10.2012, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



Цитата(skyboy @ 5.10.2012,  23:42)
договорись о собеседовании в какую-то компанию smile
компаний столько, что на собеседование можно лет 50 ходить и не повторяться

Боюсь упустить ту, единственную  smile 


Хочу еще задачек!!!  smile 


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
Fortop
Дата 6.10.2012, 18:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Во-первых.
Цитата(Sentox @  5.10.2012,  15:31 Найти цитируемый пост)
Во первых это не переменная

Изучаем мануалы.
http://php.net/manual/en/language.oop5.basic.php

Человек ответил вобщем-то правильно, а вы пытаетесь его сбить с толку

Во-вторых,
Цитата(Sentox @  5.10.2012,  15:31 Найти цитируемый пост)
Кстати с её помощью доступ к константам не возможен, так как константы принадлежат классам, а не экземпляру объекта

Код

<?php
class Sample {
    const FIRST = 'Me constant';

    public function getConstByThis() {
        var_dump($this::FIRST);
    }
}

$obj = new Sample;

$obj->getConstByThis();


В-третьих,

Цитата(Smorodin @  5.10.2012,  14:22 Найти цитируемый пост)
http://corp.mamba.ru/test/widget.phtml?id=75807

Туда и пробуйте smile обещают плюшек 
http://corp.mamba.ru/test/widget.phtml?id=75833
А заодно может баги им пофиксите smile

Добавлено через 1 минуту и 34 секунды
Тем более что они утверждают что средний бал по тесту 200 ( smile я вообще не понимаю, кто тогда работает в отрасли...)


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Smorodin
Дата 7.10.2012, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



Fortop, спасибо за Ваш комментарий! =)


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
Smorodin
Дата 8.10.2012, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



Пожалуйста, дайте еще вопросов... Очень прошу...
Ходить по собеседованиям - для меня очень накладно, учитывая, что я - в Перми, а работу ищу в Москве... 
 smile 


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
MoLeX
Дата 8.10.2012, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Smorodin @  8.10.2012,  17:18 Найти цитируемый пост)
для меня очень накладно, учитывая, что я - в Перми, а работу ищу в Москве... 

Пермь - большой город, можно спокойно походить на собеседования. Узнаете слабые стороны, какие вопросы задают и т.д.


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
mark2009
Дата 10.10.2012, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 12.10.2009

Репутация: нет
Всего: 1



Ребят, а можно я в тему вопрос задам?? Просто мучает меня, хочу выяснить уже...

На собеседовании часто задают вопрос про MVC. Такое ощущение, что это прям паранойя какая-то среди программистов.
Я сам предпочитаю писать на чистом php. Но вчера любопытство прорезалось: скачал CakePHP, распаковал, запустил... стартовая страничка кушает 3,5 мегабайта памяти! 

Возникает вопрос: неужели MVC в почёте только из-за скорости разработки? Ну а если highload, где скорость исполнения важна как никогда (проект будет кушать 10 метров или 2 метра - согласитесь, разница!)? И что теперь, зациклиться на MVC? Почему же из-за незнания этой радости зарплата потенциального соискателя падает почти вдвое? И почему эта технология в таком почёте?
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1102 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.