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

Продовжуємо публікацію свіжих освітніх курсів. За 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/
Плейлист всіх лекцій знаходиться за посилання. Нагадаємо, що актуальні лекції та майстер-класи про програмуванні від наших ІТ-фахівців в проектах Технопарк, Техносфера і Технотрек як і раніше, публікуються на каналі Технострим.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.