8000 GitHub - TrueBlasto/topjava: Java Enterprise: Maven/ Spring/ Security/ JPA(Hibernate)/ REST(Jackson)/ Bootstrap(CSS)/ jQuery
[go: up one dir, main page]

Skip to content
forked from JavaOPs/topjava

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

Notifications You must be signed in to change notification settings
  • Insights
  • TrueBlasto/topjava

     
     

    Folders and files

    NameName
    Last commit message
    Last commit date

    Latest commit

     

    History

    40 Commits
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    Repository files navigation

    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

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

    Вводное занятие

    Spring Pet-Clinic

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

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

    Реализовать метод UserMealsUtil.getFilteredWithExceeded:
    -  должны возвращаться только записи между startTime и endTime 
    -  поле UserMealWithExceed.exceed должно показывать, 
                                         превышает ли сумма калорий за весь день параметра метода caloriesPerDay  
            
    Т.е UserMealWithExceed - это запись одной еды, но поле exceeded будет одинаково для всех записей за этот день.
        
    - Проверте результат выполнения ДЗ (можно проверить логику в http://topjava.herokuapp.com , список еды)
    - Оцените Time complexity вашего алгоритма, если он O(N*N)- попробуйте сделать O(N).
    

    Optional (Java 8 Stream API)

    Сделать реализация через Java 8 Stream API. Заменяйте forEach оператором stream.map(..)
    

    error Замечания к HW0

    • Код проекта менять можно! Одна из распространенных ошибок как в тестовых заданиях на собеседовании, так и при работе на проекте, что ничего нельзя менять. Конечно при правках в рабочем проекте обязятельно нужно проконсультироваться/проревьюится у авторов кода (находится по истории VCS)
    • Наследовать UserMealWithExceed от UserMeal я не буду, т.к. это разные сущности: Transfer Object и Entity. Мы будет их проходить на 2м уроке.
    • Правильная реализация должна быть простой и красивой, можно сделать 2-мя способами: через стримы и через циклы. Сложность должна быть O(N), т.е. без вложенных стримов и циклов.
    • При реализации через циклы посмотрите в Map на методы getOrDefault или merge
    • При реализации через Stream заменяйте forEach оператором stream.map(..)
    • Объявляйте переменные непосредственно перед использованием (если возможно - сразу с инициализацией). При объявлении коллекций используйте тип переменной - интерфейс (Map, List, ..)
    • Если IDEA предлагает оптимизацию (желтым подчеркивает), нарпимер заменить лямбду на метод-референс, соглашайтесь (Alt+Enter)
    • Пользуйтесь форматированием кода в IDEA: Alt+Ctrl+L
    • Перед check-in проверяйте чендж-лист (курсор на файл и Ctrl+D): не оставляйте в коде ничего лишнего (закомментированный код, TODO и пр.). Если файл не меняется (например только пробелы или переводы строк), не надо его чекинить, делайте ему revert (Git -> Revert / Ctrl+Alt+Z).
    • System.out.println нельзя делать нигде, кроме как в main. Позже введем логирование.
    • Результаты, возвращаемые UserMealsUtil.getFilteredWithExceeded мы будем использовать в нашем приложении для фильтрации по времени и отображения еды правильным цветом.
    • Обращайте внимание на комментарии к вашим коммитам в git. Они должны быть короткие и информативные (лучше на english)

    Полезные ресурсы

    ВНИМАНИЕ: основы JavaSсript необходимы для понимания проекта, начиная с 8-го занятия!

    Все остальное - опционально.

    HTML, JavaScript, CSS

    Java (базовые вещи)

    Туториалы, разное

    Что нужно знать о бэкенде новичку в веб-разработке Туториалы: Spring Framework, Hibernate, Java Core, JDBC

    Сервлеты

    JDBC, SQL

    Разное

    Книги

    About

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

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages

    • Java 98.7%
    • Other 1.3%
    0