- используем: Java 8, IntelliJ IDEA, GitHib/Git, Сервлеты, JSP, JSTL, Tomcat, JUnit, PostgreSQL, GSON, JAXB
- хранение резюме
- в памяти на основе массива, отсортированного массива, списка и ассоциированного массива (Map)
- в файловой системе (File API и Java 7 NIO File API)
- в стандартной и кастомной сериализации Java
- в формате JSON (Google Gson)
- в формате XML (JAXB)
- в реляционной базе PostgreSQL
- деплой веб приложения
Приложение будет разрабатываться начиная со первого занятия, основываясь на базовых темах курса: объектная модель, коллекции, система ввода-вывода, работа с файлами, сериализация, работа с XML, JSON, SQL, персистентность в базу данных (PostgreSQL), сервлеты, HTML/JSP/JSTL, веб-контейнер Tomcat, модульные тесты JUnit, java.util.Logging, система контроля версий Git.
Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться.
Изучайте первое открытое занятие.
Внизу урока есть первое домашнее задание, по которому можно оценить свой уровень готовности к проекту.
- Обзор курса и методики обучения
- Подготовка и настройка рабочего окружения
- Подходы, применяемые при разработке ПО
- Обзор инструментов и технологий, используемых Java-разработчиками
- Введение в язык Java: история создания, JVM, JIT-компиляция
- Системы управления версиями. Git
- Домашнее задание
- Введение в объектно-ориентированное программирование
- Принципы ООП
- Модификаторы доступа
- Классы-обертки
- Классы и объекты
- Структура памяти java-программы: Heap (куча), Stack (стек)
- Типы данных
- Пакетная организация файлов
- Домашнее задание
- Разбор домашнего задания
- Обзор суперкласса Object
- Связь между equals() и hashCode()
- Статические методы и переменные
- Программирование с помощью интерфейсов
- Абстрактные классы
- Сложность алгоритмов
- Паттерн проектирования Шаблонный метод
- Домашнее задание
- Разбор домашнего задания
- Работа со строками: String, StringBuilder, StringBuffer
- String literal pool
- Исключения (Exceptions)
- Конструктор
- Ключевые слова: this, super
- Reflection
- Аннотации в Java 8
- Введение в модульное тестирование. JUnit
- Домашнее задание
- Разбор домашнего задания
- Иерархия классов Коллекций
- Списки (List)
- Множества (Set)
- Ассоциативные массивы (Map)
- Введение в Iterator
- Тестирование коллекций
- Домашнее задание
- Разбор домашнего задания
- Autoboxing and Unboxing
- Паттерн проектирования Итератор
- Вложенные классы
- Внутренние классы
- Локальные классы
- Анонимные классы
- Введение в лямбды
- Функциональный интерфейс
- Домашнее задание
- Разбор домашнего задания
- Дженерики (Generic)
- Введение в логирование. Log4J
- Стандартный логер - Java Logging API
- Паттерн проектирования - Синглтон
- Перечисляемые типы (Enum)
- Объектная модель
- Домашнее задание
- Разбор домашнего задания
- Классы работы с датами: Date, Calendar, TimeZone
- Дата и время в Java 8
- Внешние библиотеки: Joda Time library
- Работа с файловой системой: класс File
- try-with-resources
- Домашнее задание
- Разбор домашнего задания
- Обзор пакета java.io
- Классы чтения/записи потоков: InputStream/OutputStream
- Паттерн проектирования Декоратор
- Работа с классами чтения/записи символов: Reader и Writer
- Сериализация
- Обзор пакета java.nio
- Введение в Java 8 Stream API
- Домашнее задание
- Разбор домашнего задания
- Паттерн проектирования Стратегия
- Работа с XML
- Работа с JSON: Google GSON и Jackson
- Введение в REST
- DataInputStream/DataOutputStream
- Домашнее задание
- Процессы и потоки
- Синхронизация методов и блоков
- Закон Мура
- Закон Амдала
- Обзор методов класса Object
- Ленивая инициализация
- Java Memory Model
- Взаимная блокировка
- Домашнее задание
- Разбор домашнего задания
- Обзор java.util.concurrent
- Синхронизаторы
- ThreadLocal переменные
- Сравнение с обменом (Compare-and-swap)
- Домашнее задание
- Разбор домашнего задания
- Введение в реляционные базы данных
- Язык SQL
- Обзор NoSQL баз данных
- Установка и настройка СУБД PostgreSQL
- Работа с базами данных из IDEA
- Конфигурирование базы данных и каталога хранения
- Подключение базы данных к проекту
- Обзор JDBC-архитектуры
- Домашнее задание
- Разбор домашнего задания
- Операции соединения таблиц. JOIN
- Транзакции
- Требования к транзакциям. ACID
- Уровни изоляции транзакций в SQL
- Установка и настройка контейнера сервлетов Tomcat
- Домашнее задание
- Разбор домашнего задания
- Введение в HTML
- Основы протокола HTTP
- Настройка web.xml
- Развертывание (деплой) web-приложения в Tomcat
- Сервлеты
- Домашнее задание
- Разбор домашнего задания
- Жизненный цикл сервлета
- Создание динамических страниц. JSP
- Расширенные возможности JSP: JSTL
- Redirect и Forward
- CRUD
- Домашнее задание
- Разбор домашнего задания
- Деплой приложения в облачный сервис Heroku
- Загрузка классов в Java. Classloader
- Домашнее задание
- YAKOV FAIN: Программирование на Java для начинающих
- Книги по Java: от новичка до профессионала
- Джошуа Блох: Java. Эффективное программирование, 2-е издание
- Гамма, Хелм, Джонсон: Приемы объектно-ориентированного проектирования. Паттерны проектирования
- Редмонд Э.: Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL.