SkillAgentSearch skills...

Topjava

Java Enterprise: Maven/ Spring/ Security/ JPA(Hibernate)/ REST(Jackson)/ Bootstrap(CSS)/ jQuery

Install / Use

/learn @JavaOPs/Topjava
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Java Enterprise Online Project

Разработка полнофункционального Spring/JPA Enterprise приложения c авторизацией и правами доступа на основе ролей с использованием наиболее популярных инструментов и технологий Java: Maven, Spring MVC, Security, JPA(Hibernate), REST(Jackson), Bootstrap (css,js), DataTables, jQuery + plugins, Java 8 Stream and Time API и хранением в базах данных Postgresql и HSQLDB.

topjava_structure

Когда вы слышите что-то, вы забываете это.
Когда вы видите что-то, вы запоминаете это.
Но только когда вы начинаете делать это,
вы начинаете понимать это

Старинная китайская поговорка

<a href="description.md">Описание и план проекта</a>

<a href="http://javaops-demo.ru/topjava" target=_blank>Демо разрабатываемого приложения</a>

Изменения проекта (Release Notes)

<a href='https://github.com/JavaOPs/topjava/wiki/Стажировка--Enterprise-Java-разработчик-(TopJava)'>Требования к участникам, Wiki</a>

<a href="cv.md">Составление резюме, подготовка к интервью, поиск работы</a>

Обновленное вводное занятие (обязательно смотреть все видео)

video 1. Вступление, история, команда, источники

Обзор наиболее востребованных технологий, которые будут изучаться на курсе TopJava

video 2.1. Часть 1: инфраструктура

video 2.2. Часть 2: frameworks Spring, ORM

video 2.3. Часть 3: тренды

video 2.3. Часть 4: обзор разрабатываемого приложения

video 3. Рекомендуемые подходы к обучению на курсе

video 4. Структура приложения (многоуровневая архитектура)

Демо приложения

video 5. Системы управления версиями. Git</a>

video 6. <a href="https://drive.google.com/file/d/0B9Ye2auQ_NsFZDdaaU5fZEo4X3c/view?resourcekey=0-DvpzWIlMHZ7KX_v1SMuiAw" name="project">Работа с проектом (выполнять инструкции)</a>

  • ВНИМАНИЕ: выбирайте для проекта простой путь без пробелов и русских букв, например, c:\projects\topjava\ (Windows). Иначе впоследствии будут проблемы
  • Плагин Git Intergation уже не требуется, а вкладку Version control в IDEA переименовали в Git
  • C Ultimate IDEA сейчас сложности, надеемся что временные.

Для переключения режима отображения изменений из вкладки Commit в Git: Local Changes нужно переключить Settings/Preferences | Version Control | Commit | Use non-modal commit interface или в контекстном меню вкладки Commit:

image image

Патч prepare_to_HW0.patch (скачать и положить в каталог вашего проекта)

Проект постоянно улучшается, поэтому видео иногда отличается от кода проекта. Изменения указываю после видео:

  • переименовал класс UserMealWithExceed и его поле exceed в UserMealWithExcess.excess
  • в UserMeals/UserMealWithExcess поля изменились на private
  • обновил данные UserMealsUtil.meals и переименовал некоторые переменные, поля и методы
  • добавил UserMealWithExcess.toString() и метод для выполнения Optional домашнего задания
  • метод фильтрации в TimeUtil переименовал в isBetweenHalfOpen (также изменилась логика сравнения: startTime включается в интервал, а endTime - не включается)

GitHub поменял политику: теперь пушить нужно через токен. IDEA предложит его сгенерировать при пуше, или можно создать токен в настройках

Инструкция по шагам (из видео):</h3>

  • <a href="http://javaops.ru/view/soft">Установить ПО (Git, JDK8, IntelliJ IDEA, Maven)</a>
  • Создать аккаунт на <a href="https://github.com">GitHub</a>
  • Сделать Fork ЭТОГО проекта (https://github.com/JavaOPs/topjava) </a>
  • Сделать локальный репозиторий проекта: <pre>git clone https://github.com/[Ваш аккаунт]/topjava.git</pre>

Вместо Fork можно сделать клонирование проекта: он не будет привязан к исходному https://github.com/JavaOPs/topjava и у него не будет истории.

  • Открыть и настроить проект в IDEA
    • <a href="http://stackoverflow.com/questions/29695918/intellij-idea-console-issue#33035499">Выставить кодировку UTF-8 в консоли</a>
    • <a href="https://github.com/JavaOPs/topjava/wiki/IDEA#user-content-utf8-console">Поставить кодировку UTF-8</a>
    • Опционально: <a href="https://github.com/JavaOPs/topjava/wiki/IDEA#%D0%9F%D0%BE%D0%BC%D0%B5%D0%BD%D1%8F%D1%82%D1%8C-%D1%84%D0%BE%D0%BD%D1%82-%D0%BF%D0%BE-%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E-dejavu">поменять шрифт по умолчанию на DejaVu</a> или на новый JetBrains Mono
  • По ходу видео сделать Apply Patch... скачанного патча Prepare_to_HW0.patch
  • Закоммитить и запушить изменения (commit + push)
  • Сделать ветку домашнего задания
  • Выполнить задание и залить на GitHub (commit + push)
  • Переключиться в основную ветку проекта master.

video 7. Maven

video 8. Как правильно относиться к техзаданию (ТЗ). Полуоткрытый интервал.

hw Домашнее задание HW0

ВНИМАНИЕ: НЕ НАДО в репозиторий делать Pull Request со своими решениями! См. видео выше ("Работа с проектом")

Реализовать метод UserMealsUtil.filteredByCycles через циклы (forEach):

  • должны возвращаться только записи между startTime и endTime
  • поле UserMealWithExcess.excess должно показывать, превышает ли сумма калорий за весь день значение caloriesPerDay

Т. е. UserMealWithExcess - это запись одной еды, но поле excess будет одинаково для всех записей за этот день.

  • Проверьте результат выполнения ДЗ (можно проверить логику в http://javaops-demo.ru/topjava, список еды)
  • Оцените Time complexity алгоритма. Если она больше O(N), например O(NN) или Nlog(N), сделайте O(N).
    Внимание: внимательно прочитайте про O(N). O - это любой коэффициент, 2*N это тоже O(N).
View on GitHub
GitHub Stars320
CategoryDevelopment
Updated8d ago
Forks2.9k

Languages

Java

Security Score

80/100

Audited on Mar 29, 2026

No findings