Вступительные Задания PDFfiller JS-React-School
Всем привет.
Данный репозиторий служит шаблоном для Ваших решений вступительных заданий в школу JS-React-разработчиков.
Для решения заданий Вам понадобиться установить на Вашем компьютере следующее программное обеспечение:
git
git bash
(для Windows-пользователей)php
, версии 7.1 или выше (рекомендовано 7.2)- Редактор кода или интегрированная среда разработки
Условия вступительных заданий Вы можете прочесть в соотвествующих README
-файлах:
- Задание 1. Спиральная матрица
- Задание 2. Одинаковые элементы
- Задание 3. Реализовать шаблон проектирования
Publish-Subscribe
Как выполнять задания
Все инструкции в данном разделе расчитаны на то, что задания будут выполнятья под операционными системами Linux
, MacOS
или Windows 10
(с git bash
в качестве командной строки).
1. Скопируйте проект
Существует два способа скопировать проект:
- ответвиться от данного репозитория (fork)
- создать новый репозиторий, к-й инициализировать кодом из этого
Мы НАСТОЯТЕЛЬНО ПРОСИМ не делать форки, т.к. это будет спойлером решений для других желающих решить вступительные задачи.
Для копирования репозитория выполните следующие шаги:
-
создайте новый репозиторий на github с именем
<your-name>-tasks
-
склонируйте данный репозиторий на Ваш компьютер:
git clone git@github.com:pdffiller/react-school-entrants-tasks-php.git school-tasks cd school-tasks
-
скопируйте url Вашего репозитория, созданного в п. 1.
-
переиницилизируйте локальный git-репозиторий:
rm -rf .git git init git remote add origin <your-repository-url> # вставьте скопированную ссылку
-
Запуште код данного репозитория в Ваш репозиторий на
github
:git add . git commit -m "Initial commit" git push origin master
2. Установите зависимости проекта
Просто выполните команду:
make install
3. Напишите решение заданий
Откройте проект в Вашем редакторе кода (или интегрированной среде разработки), перейдите в папку задачи (./task1
, ./task2
или ./task3
), и внесите нужные изменения в файл index.php
.
Пожалуйста, примите во внимания спецификацию функций/методов, которыми сопровожден код шаблона решения задачи.
Так, например, шаблон для решения задачи 1 выглядит так:
/**
* Создает матрицу размером n * n и заполняет ее по спирали
*
* @param int {Number} n - размерность матрицы
* @returns array {Number[n][n]} - n * n - матрица, заполненная по спирали
*/
function fillSpiralMatrix($n)
{
$result = [];
// Ваш код
return $result;
}
Спецификация означает, что функция fillSpiralMatrix
принимает один числовой аргумент n
и возвращает квадратную числовую матрицу размером n
x n
.
3. Запустите тесты
make test-1 # или test-2, test-3 соответственно
Если задача решена правильно, то Вы увидите примерно вот такой вот результат:
php vendor/bin/codecept run unit task1
Codeception PHP Testing Framework v2.4.2
Powered by PHPUnit 6.5.8 by Sebastian Bergmann and contributors.
Unit Tests (6) -----------------------------------------------------------------
✔ TaskTest: Array diff feature | "=> (task 1 - fill spiral matrix n = 1)" (0.00s)
✔ TaskTest: Array diff feature | "=> (n = 5)" (0.00s)
✔ TaskTest: Array diff feature | "=> (n = 6)" (0.00s)
✔ TaskTest: Array diff feature | "=> (n = 10)" (0.00s)
✔ TaskTest: Array diff feature | "=> (n = 20)" (0.00s)
✔ TaskTest: Array diff feature | "=> (n = 1000)" (0.40s)
--------------------------------------------------------------------------------
Time: 711 ms, Memory: 116.00MB
OK (6 tests, 6 assertions)
github
4. Примите изменения и отправьте их на Как минимум после решения каждой задачи отправьте решение на github
, для этого выполните команду:
git add .
git commit -m "Task-1 solution" # или другое сообщение, которое описывает изменения
git push origin master
PDFfiller
5. Отправьте решение в После того, как Вы решили все задачи, пожалуйста отправьте ссылку на страницу Вашего репозитория в PDFfiller
.
Перед отправкой убедитесь, что Вы все отправили на github
, и что все тесты проходят, для чего:
cd ~/
git clone <your-repository-url> school-task-test
cd school-task-test
make install
make test
Если все тесты проходят отправьте ссыку на страницу Вашего репозитория на электронную почту:
js-school@pdffiller.com
6. Зарегистрируйте проблему
Если в ходе выполнения задачи что-то пошло не так, зарегистрируйте проблему в данном репозитории на сайте github.