В данном учебном курсе вы сможете потренироваться в написании простейших структур данных на языке Java.
Для прохождения данного курса необходимо:
- установить систему контроля версий
git
и обладать базовыми навыками работы с git или внимательно читать и использовать предложенные команды; - установить
java 8
; - использовать удобную IDE, например, Intellij Idea.
Для получения максимально возможной оценки, вам необходимо написать решение, удовлетворяющее тестам и имеющее высокий уровень качества кода.
Также все решения будут проверяться на плагиат. Поэтому списывать крайне не рекомендуется, но подглядывать можно.
Переотправлять решения (пушить новые коммиты в открытый pull request) можно неограниченно число раз до наступления дедлайна.
Регулярно запускайте тесты. Даже если у вас еще не дописанное решение. Это сильно ускорит процесс разработки и вы сразу заметите, если какой-то из реализованных методов перестал работать в связи с последними изменениями.
Пользуйтесь google. Большинство проблем, с которыми вы сталкиваетесь, решены за вас.
Обращайтесь за помощью. Если что-то пошло не так, а вы и google
не знаете почему, то пишите на почту tsibin.andr@gmail.com
или вконтакте.
Если вам, вдруг, понравилось и хотите получить еще заданий, то также пишите.
В данном курсе есть всего два задания, проходить их можно в любом порядке.
- task-1: Реализовать структуру данных Range (Ряд) для целых чисел.
- task-2: Реализовать структуру данных IntSet для целых неотрицательных чисел.
Для каждого задания есть подробное описание, JavaDoc и тесты, которые необходимо запускать, чтобы убедиться, правильно ли работает написанное решение.
Первым делом необходимо создать копию текущего репозитория (создать свой fork репозитория), в котором будут храниться ваши собственные решения. Для этого щелкните на кнопку fork.
Теперь необходимо получить ваш репозиторий себе на компьютер.
Команда ниже скачает ваш репозиторий локально.
Не забудьте заменить {nickname}
на ваш логин github.
git clone https://github.com/{nickname}/data-structures-course.git
Выполнять следующие команды необходимо в скачанной папке репозитория.
Для получения конкретного задания необходимо перейти в ветку с ним. Например, для перехода к первому задания, необходимо выполнить команду:
git checkout task-1
Теперь можно заняться написанием своего решения. Чтобы проверить проходят ли тесты, их можно запустить с помощью вашей среды разработки или выполнить одной из команд в терминале:
Linux \ OSX | Windows |
---|---|
./gradlew test |
gradlew.bat test |
Если тесты не проходят, то внимательно читайте описание ошибок. Тесты написаны таким образом, чтобы вы четко могли понять, почему ваш код не работает так, как должен.
После написания решения, необходимо добавить все созданные или измененные файлы в индекс git командами:
git add src/main/java/org/flaxo/structures/Range.java
...
Далее необходимо сохранить вашу работу, сделав commit с каким-нибудь сообщением:
git commit -m "Добавляет мою реализацию некой структуры данных"
После этого, можно отправить созданный commit в ваш репозиторий на github. Скорее всего, вам потребуется ввести логин и пароль от аккаунта github.
git push -u origin task-1
Теперь необходимо вернуться на страничку вашего репозитория и оформить pull request.
Указав именно ту ветку, в которую вы вносили изменения. Вид страницы может немного отличаться от того, как она выглядит на скриншоте.
Подтвердите создание pull request. На этом сдача задания считается законченной. Через некоторое время в комментариях к решению появится информация о прохождении решением тестов и об оценке качества кода.
Если решение не проходит проверку:
- travis - какой-то из тестов упал
- codacy - в вашем коде есть несколько нарушений качества кода
Информацию об ошибках, найденных travis или codacy, можно найти кликнув на соответствующую кнопку Details.
Вы можете в любой момент вносить изменения в ваше решение, делать новые commit-ы и push-ить их. Это автоматически обновит созданный pull request и запустит проверки.
Пожалуйста, оставьте любой feedback в одной из удобных вам форм:
- в любом из ваших пулл реквестов в виде комментария
- по почте
tsibin.andr@gmail.com
- вконтакте