Java Enterprise Online Project =============================== Наиболее востребованные технологии /инструменты / фреймворки Java Enterprise: Maven/ Spring/ Security/ JPA(Hibernate)/ REST(Jackson)/ Bootstrap(CSS)/ jQuery + plugins. Когда вы слышите что-то, вы забываете это. Когда вы видите что-то, вы запоминаете это. Но только когда вы начинаете делать это, вы начинаете понимать это Старинная китайская поговорка ## Описание и план проекта ### Демо разрабатываемого приложения ### Требования к участникам, Wiki ### Составление резюме, подготовка к интервью, поиск работы Вводное занятие =============== ## ![video](https://cloud.githubusercontent.com/assets/13649199/13672715/06dbc6ce-e6e7-11e5-81a9-04fbddb9e488.png) Системы управления версиями. Git. - **Wiki по ведению проекта в Git** - Система управления версиями. VCS/DVSC. - Ресурсы: - Интерактивная Git обучалка - Книга Git - Working with remote repositories - Видео по обучению Git - Git Overview - Видеокурс по Git ## ![video](https://cloud.githubusercontent.com/assets/13649199/13672715/06dbc6ce-e6e7-11e5-81a9-04fbddb9e488.png) Работа с проектом (выполнять инструкции) - **Prepare_ to_ HW0.patch (скачать и положить в каталог вашего проекта)** - Доступно о Java 8 Lambda ## Инструкция по шагам (из видео): - Установить ПО (git, JDK8, IntelliJ IDEA, Maven) - Создать аккаунт на GitHub - Сделать Fork ЭТОГО проекта (https://github.com/JavaOPs/topjava) - Сделать локальный репозиторий проекта:

git clone https://github.com/[Ваш аккаунт]/topjava.git
- Открыть и настроить проект в IDEA - Выставить кодировку UTF-8 в консоли - Поставить кодировку UTF-8 - Поменять фонт по умолчанию (DejaVu) - По ходу видео сделать Apply Patch... скаченного патча Prepare_ to_ HW0.patch - Закоммитить и запушить изменения (commit + push) - Сделать ветку домашнего задания - Выполнить задание и залить на GitHub (commit + push) - Переключиться в основную ветку проекта master. ## ![hw](https://cloud.githubusercontent.com/assets/13649199/13672719/09593080-e6e7-11e5-81d1-5cb629c438ca.png) Домашнее задание HW0 - Java 8 Date and Time API - Алгоритмы и структуры данных для начинающих: сложность алгоритмов - Time complexity - Временная сложность алгоритма - Вычислительная сложность ``` Реализовать метод UserMealsUtil.getFilteredWithExceeded: - должны возвращаться только записи между startTime и endTime - поле UserMealWithExceed.exceed должно показывать, превышает ли сумма калорий за весь день параметра метода caloriesPerDay Т.е UserMealWithExceed - это запись одной еды, но поле exceeded будет одинаково для всех записей за этот день. - Проверте результат выполнения ДЗ (можно проверить логику в http://topjava.herokuapp.com , список еды) - Оцените Time complexity вашего алгоритма, если он O(N*N)- попробуйте сделать O(N). ``` Optional - Java 8: Lambda выражения - Java 8: Потоки - Pуководство по Java 8 Stream - Лямбда-выражения в Java 8 - A Guide to Java 8 - Шпаргалка Java Stream API - Алексея Владыкин: Элементы функционального программирования в Java - stream.map vs forEach ``` Сделать реализация через Java 8 Stream API. Заменяйте forEach оператором stream.map(..) ``` ### Полезные ресурсы > ВНИМАНИЕ: основы JavaSсript необходимы для понимания проекта, начиная с 8-го занятия! Все остальное - опционально. #### HTML, JavaScript, CSS - Введение в программирование на JavaScript - Основы работы с HTML/CSS/JavaScript - JavaScript - Основы - Bootstrap 3 - Основы - jQuery для начинающих #### Java (базовые вещи) - Интуит. Программирование на Java - Основы Java garbage collection - Размер Java объектов - Блог о памяти, сборщике мусора, многопоточности и производительности в JAVA - Введение в Java Reflection API - Структуры данных в картинках - Обзор java.util.concurrent.* - Синхронизация потоков - String literal pool - Маленькие хитрости Java - Как создать Servlet? Полное руководство. - A Guide to Java 8 #### JDBC, SQL - Уроки по JDBC - Learn SQL - Try SQL - Курс "Введение в базы данных" #### Разное - Эффективная работа с кодом в IntelliJ IDEA - Quizful- тесты онлайн - Введение в Linux #### Книги - Джошуа Блох: Java. Эффективное программирование. Второе издание - Гамма, Хелм, Джонсон: Приемы объектно-ориентированного проектирования. Паттерны проектирования - Редмонд Э.: Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL - Brian Goetz: Java Concurrency in Practice - G.L. McDowell: Cracking the Coding Interview