понедельник, 31 октября 2016 г.

Git, TrackStudio, Maven & Junit - выходные

Первая лекция из курса Петра Арсентьева традиционно была посвящена...
Даже не так. Начну с того, что ей предшествовало.
А предшествовал первой лекции тот факт, что перед тем, как начинать что-то изучать на курсе нужно научиться работать с TrackStudio: создавать там себе проекты и задачки, назначать по ним ответственных и комментировать ход их выполнения. Для этого в курсе имеется инструкция в картинках. на перевод которой с... ну, мягко скажем, непонятного русского языка на понятный язык, у меня ушло около пяти часов... Изучение TrackStudio проходило в следующем цикле:
1\ читаем пункт инструкции,
2\ пытаемся в TrackStudio найти что-то похожее на ту кнопочку, на которую нужно нажать по инструкции,
3\ если не получилось, то повторяем п.2 до тех пор, пока не получится что-то похожее на картинку из инструкции,
4\ если получилось, пишем в инструкцию перевод этого пункта на русский язык (правильное название кнопочки и места, где она на самом деле находится),
5\ переходим к следующему пункту инструкции и возвращаемся к началу этого цикла...

Раздосадованный таким началом, написал Петру длинное письмо в духе того, что его инструкция к TrackStudio больше похожа на машинный перевод с китайского на русский, чем на инструкцию.
Занимался этим всю субботу. Бессмысленно и беспощадно потраченное время. Минус 5 часов из жизни. Остаток светового дня субботы (до 01:00 AM воскресенья) наслаждался книгой по Java.

В воскресенье было ещё интереснее. ))

Здесь самое время вернуться к тому, с чего я начал этот пост: первая лекция из курса Петра Арсентьева традиционно была посвящена базовым вещам: что такое Java и т.д.. Первое задание было тоже традиционным: написать программу Calculator, которая должна вывести в терминале "Hello World"... ЧТО?! 
Почему Calculator  должен писать в консоль "Hello World"? Calculator должен производить указанные ему арифметические действия с переданными ему числами.
Что запрещало назвать программу как-нибудь "HelloWorld", "Program" или "MyFirstProgram"?
Если это какая-то Java-традиция называть первую программу калькулятором, вне зависимости от того, что она на самом деле делает, то нужно же предупреждать об этом. Эффект на меня был произведён примерно такой же как от фразы: давайте выпустим новый автомобиль и назовём его стиральной машинкой.

Дальше ещё интереснее.

Думаю, дай, гляну следующий видео-урок, там наверняка будет что-то про этот модный "калькулятор" рассказываться. Я не ошибся. В следующей лекции был мельком показан код "написанной нами ранее" программы Calculator, которая принимала в качестве аргумента строку и три раза выводила её на экран... И при чём тут был "Hello World"?
Но "HelloWorld" нужно было не просто написать, а ещё добавить в проект Maven и сделать его модульным. Maven? ЧТО ЭТО?! Он здесь откуда взялся? Это ж была только первая лекция по основам Java, в которой про Maven не было ни слова.
Поискал по видео-урокам Петра, нашёл урок о том, что такое Maven. Просмотрел ещё часа 3 видео с других курсов, чтобы понять, что это такое. Установил, настроил. Идём дальше.

Лекция №2 "Типы данных". Задание после лекции: написать тест к калькулятору. ШТА?! Какие тесты? Что это такое? Откуда это? Как их писать?.. Ещё несколько часов просмотра на youtube видео-уроков на тему тестирования Java-программ. Узнал, что существует множество инструментов для автоматического тестирования Java-программ. Какой из них нужно использовать в курсе Петра? Полез опять смотреть его видео. Увидел в одной из строчек кода знакомое по просмотренному на youtube слово Junit. Ещё несколько часов просмотра на youtube чужих видео-уроков на тему Junit...

К 24:00 воскресенья имею:
- git-репозиторий на GitHub;
- модульный проект;
- подключенный и настроенный Maven;
- установленный Junit;
- Calculator, который производит прописанные в нём вычисления с определёнными (инициализированными) в нём самом переменными;
- тест для Calculator.


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

Написал Петру свои замечания и обратил его внимание на то, что его курс называется "Java с нуля до профессионала". Пётр позвонил мне в воскресенье вечером, сказал, что исправит все недостатки курса к концу ноября...
Только мне от этого что? Я этот этап курса уже прошёл. И два дня непродуктивно потеряны. Домашние дела не сделаны. Кот не вымыт. Английский заброшен. Курс "Научное мышление" - тоже. Спорт? Его туда же. Вместо изучения и практики Java изучал и практиковал Maven и Junit. Дошло до того, что когда в воскресенье вечером сел писать Calculator, то понял, что напрочь забыл всё, что прочитал на первых 100 страницах в книге по Java. В голове только git, Maven и Junit. Придётся начинать сначала...

Теперь в полной мере понимаю смысл поговорки: шаг вперёд и два назад...

До        После