Поток 2016го года. Прогресс потока.
- Лектор - Федор Лаврентьев; telegram - fediq
- Группы 594 и 595 - Антон Зверев
- Группа 596 - Даниил Анастасьев
- Группа 597 - Александр Кисленко; telegram - ignorer
- Калькулятор - дедлайн 14.10.2016 23:59 MSK
- Key-value storage - дедлайн 31.10.2016 23:59 MSK
- Оптимизация производительности
- мягкий дедлайн: 21.11.2016 23:59 MSK (после его наступления можно получить максимум 1 балл)
- жесткий дедлайн: 28.11.2016 23:59 MSK
- Если на момент дедлайна у преподавателя претензий к коду нет, задача считается принятой, за неё даётся 2 балла.
- Если на момент дедлайна тесты проходятся успешно, но у преподавателя есть замечания, задача считается сделанной, за неё дается 1 балл.
- Если на момент дедлайна тесты не проходятся или же pull request вообще не оформлен, задача считается не сделанной, за неё дается 0 баллов.
Стараемся придерживаться google-кодстайла.
Проще всего этого можно добиться, скачав настройки для кодстайла. Посмотреть, как их устанавливать, можно здесь.
После этого не забываем использовать кнопку Code/Reformat Code, хотя бы перед коммитом.
Обязательным является прохождение проверки Maven Checkstyle. Она происходит при запуске всех тестов (например, с помощью mvn test
или по клавише test во вкладке Maven Projects).
-
Java vs C++; Работа с исключениям и I/O
Примеры кода
Доп семинар
Доп. литература: Head First Изучаем Java
Видео: JVM: краткий курс общей анатомии -
Паттерны проектирования
Доп. литература: Head First Паттерны проектирования
Коллекция паттернов -
Строки и обёртки над примитивными типами в Java. Антипаттерны
Доп. литература: Чистый код
Коллекция антипаттернов -
Средства синхронизации в Java
Примеры кода
Видео: Java Memory Model -
Рефлексия и сборка мусора в Java
Примеры кода
Хорошая статья про ссылки в Java -
Lambdas & Streams
Примеры кода
Видео: Get a Taste of Lambdas and Get Addicted to Streams -
Spring Framework Core
Примеры кода
Доп. литература: Spring in Action -
MVC
Пример с Spring MVC
Пример с WebSockets и JS-клиентом
Пример игрушечного MVC на Observable
Видео: Студенческий синдром: почему мы все делаем в последний момент?
Видео: Get Past the Syntax, the Real Scare's in the Semantics
Видео: Core Design Principles for Software Developers
Для тех, кому хочется чуть поднять оценку или просто поразвлекаться с джавой, предлагаю набор дополнительных задач. Баллы за каждую задачу указаны в скобках - они будут прибавляться к карме.
- Кей Хорстманн - Java. Библиотека профессионала. Том 1. Основы (десятое издание).
- Джошуа Блох - Java. Эффективное программирование.
- Brian Goetz et al - Java Concurrency in Practice.
- Эрих Гамма и др - Приемы объектно-ориентированного проектирования.
- Eric Redmond et al - Seven Databases in Seven Weeks.
- Oracle Java Code Conventions.
- Maven: The Definitive Guide.
- Spring Framework Reference Documentation.
- Предпосылки к появлению Java
- Примитивы
- java.lang.Object
- Классы, абстрактные классы, интерфейсы, внутренние классы, анонимные классы
- Наследование, переопределение методов
- Модификаторы доступа, инкапсуляция
- Обобщения (Generics)
- Лямбда-выражения
- Пакет java.util.Collections
- Компоновка программного кода
- Многослойная архитектура
- Порождающие шаблоны проектирования
- Структурные шаблоны проектирования
- Поведенческие шаблоны проектирования
- Потоки в JVM
- Критические секции, synchronized
- Java Memory Model
- Паттерны организации многопоточного кода
- Проблемы многопоточности
- Сборщик мусора
- Стратегии сборки мусора
- Слабые ссылки
- Пределы нагрузки JVM
- Оптимизация кода
- Профайлинг
- Тюнинг параметров JVM
- Reflection API
- Aspect-Oriented Programming
- Abstract Syntax Tree
- Фреймворки для компоновки сложных приложений
- Работа с SQL из Java
- HTTP в Java
- Парадигма REST
- Форматы сериализации
- Сравнение Java с другими языками
- Мотивация при выборе языка/фреймворка/сервиса