Задать вопрос
@IgoNsk
backend web developer

Где можно найти примеры тестовых заданий на должность Php senior developer?

Всем привет!

Интересуют примеры тестовых заданий на должность Php senior developer.

У кого-то, может, есть примеры, недавно проходил собеседование на такую должность или находил в свое время - поделитесь плиз.
  • Вопрос задан
  • 10262 просмотра
Подписаться 9 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
kraso4niy
@kraso4niy
fullstack
Вот вам тестовое задание от компании тикетлэнд.

// Тестовое задание

// Реализовать класс дерева, наследующийся от абстрактного Tree:

class Node

{

private $name;

function __construct($name)

{

$this->name = $name;

}

}

abstract class Tree

{

// создает узел (если $parentNode == NULL - корень)

abstract protected function createNode(Node $node,$parentNode=NULL);

// удаляет узел и все дочерние узлы

abstract protected function deleteNode(Node $node);

// один узел делает дочерним по отношению к другому

abstract protected function attachNode(Node $node,Node $parent);

// получает узел по названию

abstract protected function getNode($nodeName);

// преобразует дерево со всеми элементами в ассоциативный массив

abstract protected function export();

}

// Обеспечить выполнение следующего теста:

// 1. создать корень country

$tree->createNode(new Node('country'));

// 2. создать в нем узел kiev

$tree->createNode(new Node('kiev'), $tree->getNode('country'));

// 3. в узле kiev создать узел kremlin

$tree->createNode(new Node('kremlin'), $tree->getNode('kiev'));

// 4. в узле kremlin создать узел house

$tree->createNode(new Node('house'), $tree->getNode('kremlin'));

// 5. в узле kremlin создать узел tower

$tree->createNode(new Node('tower'), $tree->getNode('kremlin'));

// 4. в корневом узле создать узел moskow

$tree->createNode(new Node('moskow'), $tree->getNode('country'));

// 5. сделать узел kremlin дочерним узлом у moskow

$tree->attachNode($tree->getNode('kremlin'), $tree->getNode('moskow'));

// 6. в узле kiev создать узел maidan

$tree->createNode(new Node('maidan'), $tree->getNode('kiev'));

// 7. удалить узел kiev

$tree->deleteNode($tree->getNode('kiev'));

// 8. получить дерево в виде массива, сделать print_r

print_r($tree->export());

/**

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

Array

(

[country] => Array

(

[moskow] => Array

(

[kremlin] => Array

(

[house] =>

[tower] =>

)

)

)

)

*/
Ответ написан
GM2mars
@GM2mars
Попробуйте походить по фриланс биржам и посмотреть типичные задание по php.
Ответ написан
Комментировать
LazyProger
@LazyProger
не ну...
Обычно редко дают задания ( чаще когда проходит конкурс на вакансию ), в php программисте ценят:
1. стаж работы
2. владения популярными фреймворками
3. портфолио

PS это лично мое мнение основанное на незначительном опыте прохождения собеседований
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
1. Найти недостатки в скрипте
<?php
$dest = $_POST['destination'];
$result = $_POST['data']['result'];
$output = "";

if ($dest == 'file') {
    $file = fopen('storage.txt', 'a+');
    fwrite($file, $result);
    $output = "stored in file";
} elseif ($dest == 'db') {
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'user', 'pass');
    $db->exec("INSERT INTO storage (value) VALUES ('{$result}');");
    $output = "stored in db";
}

echo $output;


2.
У нас есть http-метод на списание денег, принимающий параметры
action=purchase
card=4111-1111-1111-1111
amount=19.99

и отвечающий
<response><result>ok</result><operationId>123</operationId></response>

Мы регулярно сталкиваемся с проблемой, что пользователь API посылает запрос. Мы запрос обрабатываем, но во время обработки связь обрывается. В результате мы деньги списываем, а клиент об этом не знает. Как можно изменить API, чтобы решить эту проблему.
Ответ написан
@lookid
Сьиньеры это уже те с кем можно 1-2 часа просто болтать и обсуждать тонкие места фреимворком и самого языка + всякие HTTP SMTP и прочее TCP/IP. Тут нету заданий. Синьера можно по диалогу узнать. Ну или классика : отличие абстрактного класса и интерфейса. Синьер должен минимум 5-7 пунктов называть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы