Перед тем как отправить своё решение на проверку преподавателю, сверьтесь с чеклистом.
1. В решении выполнены все требования задания
Убедитесь, что все требования задания выполнены. Для этого перед отправкой внимательно прочтите весь текст условия задания и соотнесите сказанное в нём с вашим решением. Навык самопроверки работы перед ревью пригодится вам как при обучении, так и на работе.
2. Проект и репозиторий настроены правильно
Репозиторий должен быть папкой вашего idea-проекта. Обратите внимание, что репозиторием не должна быть папка, в которой лежит папка проекта, он сам должен быть папкой проекта. В нём должны быть соответствующие файлы и папки — src
и другие.
Не забудьте создать .gitignore-файл в корне проекта и добавить туда в игнорирование автогенерируемую папку out
и папку настроек идеи .idea
.
3. Что делать, если возникли сложности 🆕
Это здорово. Если их преодолевать правильно, то можно получить большую образовательную пользу для себя. Периодическое возникновение вопросов, недопонимание пройденного материала — нормальная и неотъемлемая часть обучения. А мы здесь, чтобы помочь вам пройти этот путь.
- Если подобный вопрос разбирался на лекции, посмотрите ещё раз раздел с этой темой в видеозаписи.
- Если вопрос не решился, попробуйте поискать ответ самостоятельно в интернете, этот навык пригодится вам в работе.
- Если самостоятельно разобраться не удалось, задайте вопрос в общем чате, мы обязательно поможем.
- Прежде чем задать вопрос по условию задачи, перечитайте его ещё раз и убедитесь, что в тексте условия нет прямого ответа на этот вопрос. Умение работать с текстом — важный навык работы с информацией.
- Если ответа на свой вопрос в тексте условия не увидели, задайте его в общем чате, мы раскроем детали условия.
Если ваша проблема — это ошибка компиляции — подчёркивает красным, не даёт запустить программу, сборки проекта, CI и прочие подобные ошибки, то:
- Найдите и прочитайте текст ошибки, который вам подсвечивает идея или логи. «Подчёркивает красным» — это не описание ошибки.
- Попробуйте понять текст ошибки, при необходимости воспользуйтесь переводчиком. Не страшно, если вы переведёте неточно, тут главное — сам процесс: со временем и с нашей помощью вы будете это делать лучше и лучше, но, пропуская этот этап, вы не сможете научиться это делать.
- Если не получилось понять ошибку по её тексту, попробуйте её загуглить и изучить подобную ошибку у других людей. Попробуйте примерить решения их проблем на свой код. Соотнесите найденные описания ошибки с пройденной теорией.
- Если всё равно ваши трудности не разрешились, напишите в общий чат, обязательно указав:
- название задачи и ссылку на условие;
- ссылку на вашу работу;
- текст и скриншот, не фотографию, ошибки;
- ваши размышления и описание шагов, которые вы совершили для решения.
Если ваша проблема — это ошибка исполнения, программа умирает уже после запуска, или она отрабатывает неправильно, из-за чего ваши тесты не проходят, то:
- Воспользуйтесь отладчиком для пошагового анализа работы вашей программы. Так вы или убедитесь в неправильности придуманного вами алгоритма, или найдёте конкретное место, где ожидаемое поведение программы разошлось с фактическим.
- Если проблему найти не получилось, напишите в общий чат, обязательно указав:
- название задачи и ссылку на условие;
- ссылку на вашу работу;
- конкретное и подробное описание проблемы или затруднения при решении задачи. «Помогите, что-то не так» — это не описание;
- подробное описание вашего анализа программы с помощью отладчика вместе со скринами;
- ваши размышления и описание шагов, которые вы совершили для решения.
4. Отформатирован код 🆕
Кроме правил, нарушение которых приводит к ошибкам компиляции, есть ещё и правила форматирования кода, соблюдение которых обязательно при написании программ.
С большинством проблем может справиться автоформатирование в идее. Для этого выберите Code -> Reformat code
в меню или используйте горячие сочетания клавиш. В меню будет показано актуальное сочетание для вашей операционной системы. Так, идея поправит неправильные отступы, пробелы и некоторые другие ошибки. Следите, чтобы у if-else
, for
, while
всегда были {}
.
Проблемы с именованием сущностей нужно решать самим. Так, все ячейки, кроме final
-констант, и методы должны писаться камелкейсом с маленькой буквы, а классы и интерфейсы — камелкейсом с большой буквы.
Мы вам настоятельно советуем всегда держать код в отформатированном виде во время разработки, со временем глаз привыкнет, и вы почувствуете, насколько это облегчает поиск ошибок в коде и его анализ. В любом случае перед отправкой кода на проверку его обязательно нужно отформатировать, иначе он может быть отправлен на доработку без более глубокой проверки на этой итерации.
Вы уже научились создавать классы и методы. Поэтому вам необходимо модернизировать приложение для расчёта миль. Теперь сама логика расчёта будет находиться в специально выделенном классе сервиса, а в Main мы будем лишь создавать объект этого сервиса и вызывать его метод, передавая аргументами все необходимые данные для расчёта. Получив от вызова метода рассчитанный результат, мы выведем его на экран.
- Создайте класс
BonusMilesService
(File -> New -> Java Class
, вводите название и нажимаетеEnter
). - Определите в нём метод
calculate
, который:- принимает на вход один параметр:
cost
типаint
; - анализируя значение переданного параметра, возвращает рассчитанное количество миль (тип —
int
).
- принимает на вход один параметр:
Разместите следующий код в классе Main
:
public class Main {
public static void main(String[] args) {
BonusMilesService service = new BonusMilesService();
int price = 10_000;
int miles = service.calculate(price);
System.out.println(miles);
}
}
Убедитесь, что выводимое в консоль значение соответствует результатам предыдущей версии приложения.
На проверку отправьте ссылку на ваш публичный репозиторий GitHub с решением.
Вы решили написать сервис, который рассчитывает индекс массы тела (body mass index).
- Самостоятельно собрать информацию о том, какие входные данные нужны для расчёта, вы же умеете гуглить 😉
- Создать класс
BmiService
с методомcalculate
. Помните, что вы считаете индекс, а не выдаёте диагноз. - Продемонстрировать в
Main
по аналогии с первой задачей:- создание объекта,
- вызов метода
calculate
, - печать в консоль результата,
На проверку отправьте ссылку на ваш публичный репозиторий GitHub с решением.
Вам поручили написать кредитный калькулятор, который считает как на сайте. Но формулы, естественно, не дали.
Вам нужно провести небольшой анализ и написать свой CreditPaymentService
, который умеет рассчитывать ежемесячный платёж (см. аннуитетный платёж).
Параметры, их количество, типы, а также формулу вам необходимо определить исходя из скриншотов ниже.
Обратите внимание: на тех же данных ваш сервис должен считать так же.
Чтобы это продемонстрировать, в Main
создайте объект и три раза вызовите его метод calculate
. Результаты каждого вызова выводите в консоль.
Скриншоты для решения задачи. Важно: это не реальный сервис.
На проверку отправьте ссылку на ваш публичный репозиторий GitHub с решением.
Каждое задание выполняйте в отдельном репозитории.