Лекции Технотрека. 1 семестр. Разработка на Java (весна 2016)

в 11:44, , рубрики: java, mail.ru, Блог компании Mail.Ru Group, лекции, Программирование, разработка, технотрек

Продолжаем публикацию наших свежих образовательных курсов. За 14 лекций Технотрека вы получите необходимые навыки и опыт в области разработки на Java, узнаете синтаксис и основные библиотеки языка, начнете понимать объектно-ориентированный подход, сможете декомпозировать сложные задачи.

Курс ведут Рустам Кильдиев, Java/Scala-разработчик мобильного ПО, и Дмитрий Архангельский, инженер-разработчик в Одноклассниках.

Лекция 1. «Знакомство с платформой Java»

Вводное занятие, на котором кратко дается описание всего курса. Основная задача курса — не просто научить синтаксису, а дать практические навыки и понимание основ. Курс выстроен так, чтобы, выполняя небольшие задачи, написать проект «Бэкенд к мессенджеру».

Лекция 2. «Базовые конструкции языка»

На втором занятии объясняются типы данных, операции над примитивами, ссылочные типы, пул строк и строковые литералы, массивы и другие конструкции языка.

Лекция 3. «Объектно-ориентированное программирование в Java»

Говорим о том, что такое класс и объект. Разбираемся в основах объектно-ориентированного подхода. Наследование и композиция. Рассматриваем, как я для чего используется инкапсуляция. Подробно разбираем раннее и позднее связывание (полиморфизм). В конце занятия рассмотрим основные принципы дизайна архитектуры приложения (SOLID).

Лекция 4. «Исключения. Reflection API»

Рассказывается про обработку ошибок в Java, исключения (сущность, которая хранит информацию об ошибке). Даются основы Reflection API, возможности пакета java.lang.reflect, рассматривается пример получения информации о классе в рантайме.

Лекция 5. «Коллекции и параметризация»

Типы коллекций, итератор, реализации списка, стек, интерфейс Map, ковариантность и контравариантность типов, выбор структуры данных, подходящей для задачи.

Лекция 6. «Взаимодействие потоков»

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

Лекция 7. «Внутренние и анонимные классы. Стримы и лямбда»

Лекция посвящена нововведениям в Java 8, которые упрощают разработку. Появилось три ключевые особенности: lambda-функции, стримы (дают возможность писать в функциональном стиле) и optinal (специальная обертка над объектом, призванная устранить головную боль всех джавистов, под названием NullPointerException). Дается и объяснение поведения специфичных классов (анонимных, локальных и внутренних).

Лекция 8. «Работа с базой данных»

Мессенджер (который мы и должны разработать в итоге) сам по себе является прослойкой бизнес-логики. Весь смысл мессенджера в сообщениях, хранении истории, хранении юзер-листов, логинов и паролей. В лекции объясняется, как получить доступ к различным БД из Java-приложений.

Лекция 9. «Сокеты, разбор задачи «Мессенджер»»

Разговариваем про сокеты и сетевое взаимодействие. Рассматривается простой клиент-сервер, показана работа с кодом клиентской и серверной частей сокета.

Лекция 10. «Основы тестирования»

Библиотека JUnit, подключение, примеры использования. Основы юнит-тестирования.

Лекция 11. «Потоки»

Продолжение шестой лекции. Блокировки потоков, схема условного ожидания, Java Memory Model (когда запись, сделанная одним потоком, будет видна другому потоку).

Лекция 12. «NIO»

NIO — new input-output API. Лекция про API для работы с сетью, со стримами и файлами. Получение событий из канала, источники событий для селектора, селектор и буфер, отличия NIO от IO.

Лекция 13. «Интеграционное тестирование»

Говорим о качестве ПО, совокупности мероприятий для обеспечения уровня качества продукта, проверки соответствия между реальным и ожидаемым поведением программы.

Лекция 14. «Memory model»

Заключительная лекция, в которой коснемся темы устройства CPU, скорости работы с памятью, синхронизации данных между процессорами и кешами процессоров, объектов, описанных спецификацией Memory model.

Рекомендуемая литература и сайты:

  • Брюс Эккель — Философия Java (4th edition)
  • Кей С. Хорстманн, Гари Корнелл, «Java. Библиотека профессионала, Том 1. Основы»,
  • Кей С. Хорстманн, Гари Корнелл, «Java. Библиотека профессионала. Том 2. Расширенные средства программирования
  • Joshua Bloch — Effective Java (2nd Edition) 2nd Edition
  • skipy.ru
  • ibm.com/developerworks/ru/java/
  • habrahabr.ru/hub/java/

Плейлист всех лекций находится по ссылке. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.

Автор: Mail.Ru Group

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js