[Javabegin] Игра 'Золотоискатель' (с паттернами Java) (2019)

Автор: Javabegin
Название: Игра 'Золотоискатель' (с паттернами Java) (2019)

Pacman

3 ОСНОВНЫХ НАПРАВЛЕНИЯ ВИДЕОКУРСА
ПРОФЕССИОНАЛЬНОЕ ООП

В этом проекте вы будете использовать ООП на полную мощность: проектирование, наследование, интерфейсы, полиморфизм, объекты - все это на профессиональном уровне.
АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ
Вы научитесь делать полный анализ вашего кода: какие объекты создаются, сколько памяти занимают, где находятся узкие места, как сделать анализ heap dump файла и многое другое
ПРИМЕНЕНИЕ ПАТТЕРНОВ
Для реализации задачи вам понадобится применить ряд паттернов, которые сделают код более универсальным и расширяемым. Вы поймете как нужно использовать шаблоны Java.
Чему вы научитесь
  • использовать паттерны программирования на практике
  • проектировать с нуля всю структуры программы - от идеи до проверки работы всей системы
  • описывать схему взаимодействий объектов
  • выделять зависимости и поведения объектов для их группировки
  • последовательно разрабатывать программный код
  • тестировать код различными типами тестов (на ошибки, на скорость работы, на результаты методов и пр.)
  • создавать документацию к программе JavaDocs
  • разбивать проект на маленькие подзадачи и реализовывать их отдельно
  • использовать преимущества NetBeans при разработке кода
  • использовать рефакторинг для правильного изменения кода
  • и многое другое
Основные темы видеокурса
  • Углубленное применение ООП
  • Анализ и создание структуры проекта
  • Применение паттернов проектирования
  • Слабые связи между объектами
  • Правильная структура кода
  • Универсальность кода
  • Заменяемые компоненты
  • Создание «движка» приложения
  • Абстрактный уровень
  • Уровень реализации
  • Главные принципы любого профессионального кода
  • Сборка проекта
  • Нахождение узких мест программы
  • Использование профилировщика
  • Анализ загруженности приложения
  • Работа с базой данных SQLite
  • Создание кастомных SWING компонентов
  • и многое другое...
КАКИЕ ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ ВЫ ПРОЙДЕТЕ?
  • Одиночка (Singleton)
  • Фасад (Facade)
  • Фабричный метод (Factory Method)
  • Наблюдатель (Observer)
  • Абстрактная фабрика (Abstract Factory)
  • Стратегия (Strategy)
  • Адаптер (Adapter)
  • Состояние (State)
Вы будете использовать различные паттерны проектирования. Причем не все сразу, а по-очереди - для более удобного усвоения материала.
  • Последовательное изучение каждого паттерна (не все сразу)
  • Составление таблицы паттернов
  • Применение каждого паттерна на текущей задаче
  • Сравнение исходных кодов с паттерном и без него
Сначала вы начнете использовать порождающие паттерны, после этого будем переходить к структурным и поведенческим.
Важное примечание: вы сможете сравнить реализацию без применения паттернов и с применением, чтобы увидеть разницу.
После этого вы уже никогда больше не будете программировать как прежде - только с применением ООП и шаблонов проектирования!
Как обычно - вы будете создавать код по принципу 'от простого к сложному'.
Какой проект вы разработаете?
Вы будете разрабатывать аналог игры 'Золотоискатель'.
Основная цель игры - собрать золото, укрыться от монстров и выйти из лабиринта (более подробные требования будут даны на самом тренинге)
КРАТКИЙ СПИСОК ТЕМ, КОТОРЫЕ БУДУТ В УРОКАХ
  • Разбор пошагового алгоритма написания программы
  • Описание задачи и целей программы
  • Упрощенные этапы проектирования
  • Принципы GRASP
  • Проектирование функционала
  • Проектирование схемы программы
  • Проектирование объектов
  • Разбиение объектов на составляющие
  • Проставление связей между объектами
  • Создание 'движка' программы
  • Применение принципов ООП для объектов
  • Добавление возможности расширения объектов программы
  • Последовательная разработка: внедрение объектов
  • Создание менеджеров управления объектами
  • Добавление валидаторов для проверки ввода значений
  • Принципы создания объектов
  • Создание 'запчастей' программы
  • Увеличение читабельности
  • Разработка внешнего вида программы (графический интерфейс)
  • Разработка структуры таблицы базы данных
  • Хранение всей статистики программы
  • Логическое распределение классов по пакетам
  • Правильное именование пакетов
  • Рефакторинг кода
  • Обсуждение идей по развитию программы
  • Тестирование функционала программы на JUnit
  • Автоматизация по созданию тестов в NetBeans
  • Проверка кода на покрытие тестами (Coverage)
  • Создание и применение собственных типов исключений (Exception)
  • Создание звукового сопровождения
  • Разбор применяемых паттернов проектирования
  • Поиск 'узких' мест программы
  • Использование профилировщика
  • Анализ скорости программы
  • Анализ создаваемых объектов
ОПТИМИЗАЦИЯ КОДА
Вы научитесь не только профессионально писать программный код, но и отслеживать все его 'узкие места'. Эти навыки пригодятся вам в любом проекте - как сделать так, чтобы программа работала без сбоев и с минимальным потреблением памяти.
Вы сможете решать такие вопросы как:
  • Нехватка памяти
  • Анализ файла heap dump
  • Лишние объекты
  • Оптимизация объектов
  • Скорость работы методов
  • Нагрузка программы
КАК ПРАВИЛЬНО РАБОТАТЬ С ФАЙЛАМИ HEAP DUMP
Heap Dump - это специальный файл, который создается вручную или виртуальной машиной для анализа ситуации.
Очень часто с этим файлом вам придется работать в веб-разработке, когда сервер приложений будет ломаться и вам нужно будет понять, из-за чего это произошло.
Эти знания пригодятся вам на всю жизнь.
Вам больше не нужно будет гадать - вы научитесь анализировать и разбирать проблемные ситуации.
ДРУГИЕ ТЕМЫ
  • Сериализация
  • Рефакторинг кода
  • База данных SQLite
  • Проектирование программы
  • Работа со звуком
  • Графический интерфейс
Вы поймете как можно сохранять и восстанавливать любую информацию в Java без потери в производительности.
Сериализация - очень важный навык для любого программиста. Эти знания пригодятся вам в любых проектах, где нужно будет сохранять и передавать данные
В проекте будет использоваться база данных SQLite. В ней будут храниться все результаты игр, сохраненные пользователи с данными и пр.
Доступ к данным осуществляется через JDBC API и SQL запросы. Для выполнения запросов вам понадобится драйвер последней версии.
Все игры будут храниться в двоичном виде для возможности быстрого восстановления.
Вы также научитесь работать со звуком в Java. Важно, чтобы звуковые эффекты не 'тормозили' вашу программу, т.е. работали автономно. Поэтому их нужно уметь запускать в параллельных потоках и подгружать в нужные объекты.
Все объекты игры во время движения могут издавать звуки - вы узнаете как оптимизировать скорость выполнения (т.к. объектов может быть большое количество)

Подробнее:
Для просмотра содержимого вам необходимо .

Скачать: