Автопроигрывание
Автозавершение
К ПРЕДЫДУЩЕЙ ЛЕКЦИИ
ОК! ИДЕМ ДАЛЬШЕ!
Java 2
Занятие 1: Пишем свои обобщенные классы в Java
Тема: Параметризация, дженерики, обобщенное программирование (18:40)
Дженерики: два параметра (5:07)
Дженерики: ограничение типов (9:33)
Дженерики: множественные ограничения (8:49)
Дженерики: параметризованный метод (7:09)
Дженерики: ограничение в шаблонах (2:18)
Дженерики: параметризованный метод в непараметризованном классе (2:43)
Домашнее задание 1
Домашнее задание 2
(NEW) Вопросы-ответы о стирании типов в дженериках в Java
(NEW) Set и метод toArray()
Занятие 2: Юнит-тесты в Java
Unit-test1: Юнит-тестирование в Java. Как бы мы тестировали программу без юнит-тестов? (6:39)
Unit-test2: Настройка и подключение JUnit4 в IntelliJ IDEA Comunity (2:54)
Unit-test3: Настройка папки test в IDEA (2:38)
Unit-test4: Пишем ваш первый юнит-тест! (3:16)
Unit-test5: Как анализировать провалившиеся юнит-тесты в IDEA? (2:02)
Unit-test6: Используем статический метод assertTrue() для тестирования (1:46)
Unit-test7: Детально исследуем аннотацию @Test в JUnit4 (0:53)
Unit-test8: Используем static import в Java (0:42)
Unit-test9: Используем аннотации @Before, @After, @BeforeClass, @AfterClass (5:59)
Unit-test10: Как проверять методы на выбрасывание исключений при работе с JUnit? (3:39)
Unit-test11: Изучаем аннотацию @Ignore и работаем с зависшими методами с помощью timeout (4:19)
Unit-test12: Юнит-тестирование в Java. Итоги (1:06)
Код занятия
Домашнее задание
Занятие 3: Пошаговое изучение Test Driven Development (разработка через тестирование)
TDD1: Введение в Test Driven Development в Java с использованием JUnit4 (7:20)
TDD2: Узнаем, что такое пользовательские истории и реализуем первую userstory (2:52)
TDD3: Реализуем вторую пользовательскую историю (2:58)
TDD4: Реализуем третью и четвертую пользовательскую историю. Создаем новый класс и исправляем ошибки инкапсуляции (14:41)
TDD5: Реализуем пятую пользовательскую историю "Показать поле" (6:43)
TDD6: Реализуем шестую пользовательскую историю "Стрелять только по пустым ячейкам" (4:30)
TDD7: Реализуем седьмую пользовательскую историю "Учесть возможность ничьей в игре" (4:34)
TDD8: Используем паттерн Стратегия (Strategy) в классе Пользователь, чтобы реализовать разные алгоритмы игры (10:08)
TDD9: Используем внедрение зависимости (Dependency Injection), чтобы подменить стандартный ввод с клавиатуры и протестировать методы (11:33)
TDD10: Используем паттерн Стратегия (Strategy), чтобы провести юнит-тестирование всей игры (11:22)
TDD11: Запускаем игру и проверяем, что она работает, при этом легко подменяем стиль игры (6:43)
Код занятия
Домашнее задание по разработке через тестирование (TDD)
Занятие 4: Введение в SQL
SQL1: Введение в Реляционные Базы Данных. Проектирование структуры (13:17)
SQL2: Исследуем структуру базы данных. Устанавливаем и настраиваем SQLite. Работаем в консоли (5:43)
SQL3: Изучаем SELECT (4:13)
SQL4: О хранении паролей (1:39)
SQL5: Продолжаем изучать SELECT. WHERE (3:32)
SQL6: Объединяем таблицы. JOIN (6:02)
MyJDBC1: Работаем в DB Browser (3:04)
Код занятия
Домашнее задание: проектируем базу данных для Twitter
Занятие 5: Работа с SQLite через JDBC в Java
MyJDBC1-2: Пишем свой JDBC-драйвер. Реализуем интерфейс java.sql.Driver (9:02)
MyJDBC3: Подлючаемся к БД. Реализуем интерфейс java.sql.Connection (5:56)
MyJDBC4: Реализуем интерфейс java.sql.Statement (3:37)
MyJDBC5: Реализуем интерфейс java.sql.ResultSet (13:49)
MyJDBC6: Подведем итоги (2:27)
JDBC1: Установка и подключение SQLite JDBC (4:28)
JDBC2: Устанавливаем соединение с базой данных (1:26)
JDBC3: Правильная работа с исключениями при работе с базами данных. Try with resources (4:36)
JDBC4: Выполняем запрос к базе данных. SELECT (2:30)
JDBC5: Создаем БД из Java. Оператор CREATE (6:17)
JDBC6: Добавляем данные. Оператор INSERT (2:50)
JDBC7: Создаем первичный ключ. Primary key (1:37)
JDBC8: Удаляем таблицу из БД. Оператор DROP (1:52)
JDBC9: Уточняем запрос INSERT (2:46)
JDBC10: Получаем данные из таблицы + ускоряем работу в IDEA с помощью .var (2:00)
JDBC11: Подготовленный запрос. PrepareStatement (4:39)
JDBC12: Подведем итоги (2:17)
Код занятия
Рабочий проект: Напишите систему управления проектами
(NEW) Дополнительно почитать про sqlite
Занятие 6: Работа с системой контроля версий git
Git1: Краткое введение в систему контроля версий git (3:28)
Git2: Инициализируем репозиторий git init (3:17)
Git3: Задание: Настройка и установка git
Git4: Структура git: work tree, staging area, основное хранилище (2:17)
Git5: Работа со Staging Area. Помещаем в staging и удаляем. Делаем файлы отслеживаемыми (2:56)
Git6: Коммитим файлы в репозиторий. Откатываем коммиты (6:41)
Git7: Как работать с ветками (branch) в git. Создаем ветки, переключаемся между ними в системе контроля версий (4:42)
Git8: Как слить ветки в git? Объединяем рабочие ветки. Удаляем лишние (1:45)
Git9: Используем облачное хранилище на примере github. Клонируем репозиторий к себе на компьютер (1:29)
Git10: Обновляем локальный репозиторий, когда репозиторий в облаке изменился. (1:52)
Git11: Делаем изменения в локальном репозитории и пушим их в облако (2:29)
Git12: Исключаем файлы из репозитория: .gitignore
Домашнее задание: работа с репозиторием в облаке
Занятие 7. Элементы мета-программирования в Java: механизм reflection
REFLECTION1: Введение (9:46)
REFLECTION2: Создаем экземпляр класса (2:17)
REFLECTION3: Вызываем метод (3:56)
REFLECTION4: Получаем доступ к приватным полям (3:14)
REFLECTION5: Готовимся к анализу чужого класса (2:46)
REFLECTION6: Анализируем пакет (1:06)
REFLECTION7: Анализируем описание класса (7:37)
REFLECTION8: Анализируем поля класса (1:44)
REFLECTION9: Анализируем конструкторы и методы класса (4:48)
Домашнее задание
Код занятия
(NEW) Вопросы-ответы по reflection
Занятие 8. DI, Аннотации, парсинг XML, создаем свой аналог Spring (framework "Winter" is coming)
DI1: Что такое Dependency Injection (Внедрение зависимости) (10:52)
D2: Что такое XML, разница между декларативным и императивным программированием (6:29)
DI3: Конфигурируем наш фреймворк Winter в xml, пишем config.xml. Что такое бины (beans) (10:55)
DI4: Начинаем разрабатывать наш мини-фреймворк Winter по внедрению зависимостей и конфигурированию через xml-файлы (8:53)
DI5: Создаем классы предметной области: Bean и другие (7:14)
DI6: Разбираемся с DOM Parser и учимся парсить XML (14:37)
DI7: Парсим вложенные теги в XML (10:36)
DI8: Используем reflection для создания экземпляров распарсенных классов (4:52)
DI9: Настраиваем поля классов в соответствии с XML (5:35)
DI10: Преобразуем динамические типы в статические. Выводим тип данных (2:54)
DI11: Используем рекурсию для правильной работы с суперклассами (3:58)
DI12: Внедряем ссылочные зависимости (3:19)
DI13: Поздравляем! Реализована первая версия нашего мини-фреймворка Winter по работе с зависимостями (0:58)
Annotation1: Зачем и где нам могут пригодится самописные аннотации? (2:36)
Annotation2: Создаем свою аннотацию @Auto (1:57)
Annotation3: Ограничиваем аннотацию, используя @Target (2:31)
Annotation4: Используем переменные (поля) в аннотации (1:41)
Annotation5: Рекурсия в аннотациях, значение по умолчанию и массивы значений (3:11)
Annotation1: Применяем на практике в нашем фреймворке, парсим аннотации с помощью reflection (9:25)
Код занятия
Домашнее задание
Сертификат об окончании
Git6: Коммитим файлы в репозиторий. Откатываем коммиты
Содержание лекции пока не доступно
Если вы уже зачислены на курс,
то вам нужно просто войти
.
Открыть страницу с курсом для регистрации