Skip to content

Latest commit

 

History

History
208 lines (184 loc) · 10.9 KB

README.md

File metadata and controls

208 lines (184 loc) · 10.9 KB

Курс BaseJava (обновленный и переработанный)

Разработка Web приложения "База данных резюме"

  • используем: 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
  • деплой веб приложения
    • в контейнер сервлетов Tomcat
    • в облачный сервис Heroku

Приложение будет разрабатываться начиная со первого занятия, основываясь на базовых темах курса: объектная модель, коллекции, система ввода-вывода, работа с файлами, сериализация, работа с XML, JSON, SQL, персистентность в базу данных (PostgreSQL), сервлеты, HTML/JSP/JSTL, веб-контейнер Tomcat, модульные тесты JUnit, java.util.Logging, система контроля версий Git.

Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться.

*— Илон Маск

Внизу урока есть первое домашнее задание, по которому можно оценить свой уровень готовности к проекту.

Программа

Открытое занятие 1

  • Обзор курса и методики обучения
  • Подготовка и настройка рабочего окружения
  • Подходы, применяемые при разработке ПО
  • Обзор инструментов и технологий, используемых Java-разработчиками
  • Введение в язык Java: история создания, JVM, JIT-компиляция
  • Системы управления версиями. Git
  • Домашнее задание

Занятие 2

  • Введение в объектно-ориентированное программирование
  • Принципы ООП
  • Модификаторы доступа
  • Классы-обертки
  • Классы и объекты
  • Структура памяти java-программы: Heap (куча), Stack (стек)
  • Типы данных
  • Пакетная организация файлов
  • Домашнее задание

Занятие 3

  • Разбор домашнего задания
  • Обзор суперкласса Object
  • Связь между equals() и hashCode()
  • Статические методы и переменные
  • Программирование с помощью интерфейсов
  • Абстрактные классы
  • Сложность алгоритмов
  • Паттерн проектирования Шаблонный метод
  • Домашнее задание

Занятие 4

  • Разбор домашнего задания
  • Работа со строками: String, StringBuilder, StringBuffer
  • String literal pool
  • Исключения (Exceptions)
  • Конструктор
  • Ключевые слова: this, super
  • Reflection
  • Аннотации в Java 8
  • Введение в модульное тестирование. JUnit
  • Домашнее задание

Занятие 5

  • Разбор домашнего задания
  • Иерархия классов Коллекций
  • Списки (List)
  • Множества (Set)
  • Ассоциативные массивы (Map)
  • Введение в Iterator
  • Тестирование коллекций
  • Домашнее задание

Занятие 6

  • Разбор домашнего задания
  • Autoboxing and Unboxing
  • Паттерн проектирования Итератор
  • Вложенные классы
  • Внутренние классы
  • Локальные классы
  • Анонимные классы
  • Введение в лямбды
  • Функциональный интерфейс
  • Домашнее задание

Занятие 7

  • Разбор домашнего задания
  • Дженерики (Generic)
  • Введение в логирование. Log4J
  • Стандартный логер - Java Logging API
  • Паттерн проектирования - Синглтон
  • Перечисляемые типы (Enum)
  • Объектная модель
  • Домашнее задание

Занятие 8

  • Разбор домашнего задания
  • Классы работы с датами: Date, Calendar, TimeZone
  • Дата и время в Java 8
  • Внешние библиотеки: Joda Time library
  • Работа с файловой системой: класс File
  • try-with-resources
  • Домашнее задание

Занятие 9

  • Разбор домашнего задания
  • Обзор пакета java.io
  • Классы чтения/записи потоков: InputStream/OutputStream
  • Паттерн проектирования Декоратор
  • Работа с классами чтения/записи символов: Reader и Writer
  • Сериализация
  • Обзор пакета java.nio
  • Введение в Java 8 Stream API
  • Домашнее задание

Занятие 10

  • Разбор домашнего задания
  • Паттерн проектирования Стратегия
  • Работа с XML
  • Работа с JSON: Google GSON и Jackson
  • Введение в REST
  • DataInputStream/DataOutputStream
  • Домашнее задание

Занятие 11

  • Процессы и потоки
  • Синхронизация методов и блоков
  • Закон Мура
  • Закон Амдала
  • Обзор методов класса Object
  • Ленивая инициализация
  • Java Memory Model
  • Взаимная блокировка
  • Домашнее задание

Занятие 12

  • Разбор домашнего задания
  • Обзор java.util.concurrent
  • Синхронизаторы
  • ThreadLocal переменные
  • Сравнение с обменом (Compare-and-swap)
  • Домашнее задание

Занятие 13

  • Разбор домашнего задания
  • Введение в реляционные базы данных
  • Язык SQL
  • Обзор NoSQL баз данных
  • Установка и настройка СУБД PostgreSQL
  • Работа с базами данных из IDEA
  • Конфигурирование базы данных и каталога хранения
  • Подключение базы данных к проекту
  • Обзор JDBC-архитектуры
  • Домашнее задание

Занятие 14

  • Разбор домашнего задания
  • Операции соединения таблиц. JOIN
  • Транзакции
  • Требования к транзакциям. ACID
  • Уровни изоляции транзакций в SQL
  • Установка и настройка контейнера сервлетов Tomcat
  • Домашнее задание

Занятие 15

  • Разбор домашнего задания
  • Введение в HTML
  • Основы протокола HTTP
  • Настройка web.xml
  • Развертывание (деплой) web-приложения в Tomcat
  • Сервлеты
  • Домашнее задание

Занятие 16

  • Разбор домашнего задания
  • Жизненный цикл сервлета
  • Создание динамических страниц. JSP
  • Расширенные возможности JSP: JSTL
  • Redirect и Forward
  • CRUD
  • Домашнее задание

Занятие 17

  • Разбор домашнего задания
  • Деплой приложения в облачный сервис Heroku
  • Загрузка классов в Java. Classloader
  • Домашнее задание

Рекомендуемые книги

Ресуры в сети