[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задания на собеседовании
Страницы: 1, 2, 3, 4
ApuktaChehov
[list]Недавно тут походил по собеседованиям (2.5 штук) на должность веб разработчика.
Хочу поделится вопросами, которые показались мне интересными.

Вопрос 0:

$a = 0;
$b = 'one';

if($a == $b)
echo 1;
else
echo 0;

Какой будет вывод и почему?


Вопрос 1.
Есть три условных таблицы:
users (id, name)
(1,"Владимир"), (2,"Святослав")
prices (id, price)
(1,"Мицубиси"), (2,"Тойота")
userprice (uid, pid, val)
(1,2,1.01), (1,1,1.0)

Нужен такой запрос, который без привлечения дополнительных таблиц давал бы такую выборку (user, price, uid, pid, val), в которой бы по каждому пользователю были все прайсы, вне зависимости от того, связан пользователь с этим прайсом или нет, по несвязанным прайсам поле val должно иметь значение NULL.
Под MySQL 4.1 решается без дополнительных таблиц точно.

Общий вид выборки:
name________price_______uid___pid___val
Владимир____Мицубиси___1____1_____1
Владимир____Тойота______1____2____1.05
Светослав____Мицибиси___2____1____NULL
Светослав____Тойота_____2_____2____NULL

Вопрос 2.
Есть автоматическая (по запросу пользователя) генерация файлов Excel. Формат данных составляет 7 столбцов х 30000 строк (в среднем, но может быть и выше 65536), – средний вес результативного файла 2 мегабайта. Ожидаемый трафик – 12 Гб/день.
Какие видите узкие места и пути их программного преодоления, если есть один сервер средней мощности?

Спасибо за внимание!

P.S. Я не пытаюсь устроиться на работу за ваш счет smile.gif
Я вообще, решил остаться на прежнем месте!

_____________
bestxp
по мне так больше нравиться


<?php

Class
Foo {

private $baz;
public function __construct()
{
$this->baz = 'Hello';
}

public function updateBaz(Foo $foo){
$foo->baz .= ' world';
}

public function getBaz(){
return $this->baz;
}
}


$first = new Foo();
$second = new Foo();
$first->updateBaz($second);
echo $second->getBaz;


что будет в результате работы и почему
johniek_comp
bestxp
в чем прикол? Second то не объявлен

_____________
user posted image
Invis1ble
имхо, первые 2 вопроса детские,
а в третьем конкретики мало слишком. например, непонятно, причем тут трафик (если тут имеется в виду, что будет примерно 6к генераций в день, то это немного проясняет картину) и что подразумевается под "средней мощностью". предположу, что идет намек на то, что не будет хватать процессорного времени

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Invis1ble
Цитата
Я вообще, решил остаться на прежнем месте!

почему? и с какой целью ходил на собеседование?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

bestxp
Цитата (johniek_comp @ 10.12.2014 - 17:48)
bestxp
в чем прикол? Second то не объявлен

сорри оба класса Foo
ApuktaChehov
bestxp - я думаю ошибка будет. Что за $second->getBaz? Нету getBaz нигде.

Invis1ble - Я уходил, т.к. работы для меня не было на прежнем месте. А как дело до заявления дошло, сразу работу нашли. По этому и остался. И если честно, на собеседованиях какие-то мутные люди, задавали мутные вопросы. Типа как "получить все ключи массива". Так что тухляк. Хотя ЗП достойные в районе 100 килорублей.

_____________
SoMeOnE
bestxp Я так понимаю это тоже опечатка
echo $second->getBaz;

А то ошибка.

А так вроде любимое всеми Hello world ?

А объяснять. Так вроде нет ничего сложного. В метод передали объект у кот свойство уже имело hello. Плюс присоеденили еще одно слово. Там же не this использовано. а переданный объект кот в контексте обращается к своему приватному свойству. Конечно может там есть подвох какой-то с ошибкой)

По теме первое задание вообще для школьников на приведение типов. Даже не серьезно такое задание давать.
SoMeOnE
ApuktaChehov
Наверное все же скобки забыты) Надеюсь это не подвох такой.
bestxp
Someone все верно
Тут как раз понимание работы приватов
bestxp
И ещё нравиться такой вопрос "можно ли отловить fatal error"
SoMeOnE
bestxp с помощью исключения. Или не получится?
Winston
Цитата (bestxp @ 10.12.2014 - 18:10)
можно ли отловить fatal error

Когда то приходилось делать отлов в Yii.
Получилось сделать с помощью register_shutdown_function() и error_get_last()
Если fatal возникал в файле в котором объявлена функция которая вызывается по завершению скрипта, то отловить не получалось, иначе ловило.
ApuktaChehov
И все же не понятно, почему это работает. Ведь обращение к baz происходит через $foo->, которая содержит второй экземпляр класса, и это поле приватное. А все это происходит в контексте первого экземпляра, то должны быть ошибка! Ведь по логике я обращаюсь к приватному полю снаружи.

Разъясните, по ходу я тупой!

P.S. Вот было бы не плохо, организовать на форуме подобные головоломки и описанием их работы. Ведь я даже по первому, детскому вопросу запоролся. Ну не сравнивал я никогда строки и числа!

_____________
volter9
Цитата (bestxp @ 10.12.2014 - 17:34)
по мне так больше нравиться


<?php

Class
Foo {

private $baz;
public function __construct()
{
$this->baz = 'Hello';
}

public function updateBaz(Foo $foo){
$foo->baz .= ' world';
}

public function getBaz(){
return $this->baz;
}
}


$first = new Foo();
$second = new Foo();
$first->updateBaz($second);
echo $second->getBaz;


что будет в результате работы и почему

А

echo $second->getBaz;


Не должно быть ли $second->getBaz()? Поля такого как бы нету, да и __get тоже не установлен, в чем подвох тогда? Автоматический accessors (а-ля @synthesize Obj-C или get-set C#, JS) в ООП PHP4?

_____________
Мой блог
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.