Skip to content

Stesm/yell-editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание для компании Yell.ru

Задание №1

Решение хранится в этом репозитарии. Для каркаса системы использовался мой микрофреймвок он использет PSR4 пространства имен и автолоад. Так же в нем есть маржрутизация и шаблонизация, в общем все что нужно для построения простого приложения.

Ссылка на собранный проект: http://yell.codesale.org

Основная логика самого приложения:

  • App/Controllers/AppController.php - обработка входных пааметров
  • App/Figures/Circle.php - рисует круг
  • App/Figures/Rect.php - рисует прямоугольник(в нашем случае кадрат)
  • App/Interfaces/Figure.php - интерфейс для фигуры
  • App/Prototypes/Figure.php - прототип просой фигуры(круга)
  • App/Views/index.php - вьюха с полями и картинкой

Для добавления новой фигуры надо добавить класс с соответсвующей фигурой в App/Figures/ и переопределить метод draw(&image). И добавить во вьюху новую фигуру в селект

<select name="params[<?=$n?>][type]">
    <option <?= $param['type'] == 'circle' ? 'selected' : ''?> value="circle">Круг</option>
    <option <?= $param['type'] == 'rect' ? 'selected' : ''?> value="rect">Квадрат</option>
    <option <?= $param['type'] == 'new_type' ? 'selected' : ''?> value="rect">Новый тип</option>
</select>

Задание №2

Для таких даных можно предложить структуру справочника

Таблица книг(book)

+---------+-----------+
| book_id | book_name |
+---------+-----------+
|1        | Книга 1   |
|2        | Книга 2   |
|3        | Книга 3   |
+---------+-----------+

Таблица Авторов(author)

+-----------+-------------+
| author_id | author_name |
+-----------+-------------+
| 1         | Автор 1     |
| 2         | Автор 2     |
| 3         | Автор 3     |
+-----------+-------------+

Таблица связей(author_to_book)

+----+---------+-----------+
| id | book_id | author_id |
+----+---------+-----------+
| 1  | 1       | 1         |
| 1  | 1       | 2         |
| 1  | 3       | 3         |
| 1  | 4       | 4         |
+----+---------+-----------+

Задание №3

В данном случае подошел бы запрос вот такого вида:

SELECT
    data.*
FROM
    data
    JOIN (
        SELECT
            type,
            max(date) date
        FROM
            data
        GROUP BY
            type
    ) new
        ON new.type = data.type AND new.date = data.date

About

Yell.ru vacancy test

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published