8000 GitHub - StringerDM/basejava
[go: up one dir, main page]

Skip to content

StringerDM/basejava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://stringer-resumesapp.herokuapp.com/

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

В данном курсе вы создадите с нуля web-приложение, реализуя разные способы хранения резюме. Проект включает в себя следующее:

  • Технологии: Java 8, GitHub/Git, JUnit, Logging, GSON, JAXB, SQL, PostgreSQL, Сервлеты, HTML, JSP, JSTL, Tomcat, Maven и многое другое
  • Различные способы реализации хранения резюме:
    • в сортированном и не сортированном массиве
    • в коллекциях (List, Map)
    • в файловой системе:
      • с использованием File и Path API
      • в стандартной и кастомной сериализации Java
      • в формате JSON (Google Gson)
      • в формате XML (JAXB)
    • в реляционной базе PostgreSQL
  • Установку (деплой) web-приложения:
    • в контейнер сервлетов Tomcat
    • в облачный сервис Heroku
  • Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться

    — Илон Маск

    Изучите бесплатный урок. В конце урока находится домашнее задание, по которому можно оценить свой уровень готовности к проекту

    Программа курса

    Занятие 1 (бесплатное)

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

    Занятие 2

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

    Занятие 3

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

    Занятие 4

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

    Занятие 5

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

    Занятие 6

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

    Занятие 7

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

    Занятие 8

    • Разбор домашнего задания
    • Классы работы с датами: Date, Calendar, TimeZone
    • Дата и время в Java 8+
    • File API
    • Освобождение ресурсов: try-with-resources
    • Домашнее задание

    Занятие 9

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

    Занятие 10

    • Разбор домашнего задания
    • Паттерн проектирования Strategy
    • Работа с XML (JAXB)
    • Работа с JSON (GSON)
    • Классы чтения/записи примитивных типов: DataInputStream и DataOutputStream
    • Домашнее задание

    Занятие 11

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

    Занятие 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

Resources

5010

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
0