Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

voothi/basejava-webinar

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Курс 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
  • Домашнее задание

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

Ресуры в сети

About

Вводное занятие. Правки от Denis Novikov.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.