Паттерны проектирования и
углубленное ООП на практике

Быстрый переход на профессиональный уровень


Полностью практический видеокурс, где вы научитесь профессионально программировать в стиле ООП, применять шаблоны проектирования и делать анализ производительности

 

 

 

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



ПРОФЕССИОНАЛЬНОЕ ООП

В этом проекте вы будете использовать ООП на полную мощность: проектирование, наследование, интерфейсы, полиморфизм, объекты - все это на профессиональном уровне.



АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ

Вы научитесь делать полный анализ вашего кода: какие объекты создаются, сколько памяти занимают, где находятся узкие места, как сделать анализ heap dump файла и многое другое



ПРИМЕНЕНИЕ ПАТТЕРНОВ

Для реализации задачи вам понадобится применить ряд паттернов, которые сделают код более универсальным и расширяемым. Вы поймете как нужно использовать шаблоны Java.

ПОЛУЧИТЬ ВИДЕОКУРС >

КАК БЫСТРО СТАТЬ ПРОФЕССИОНАЛОМ?

  • Стать профессиональным программистом можно довольно быстро - нужно просто знать какие направления изучать, а какие можно оставить на потом.

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

    И конечно же нужна хорошая практика, где вы сможете посмотреть и повторить по шагам профессионально написанный программный код.

    Именно этого и не хватает почти во всех учебниках и интернет - ресурсах.

    Чем больше практики - тем быстрее результаты!

ПОЧЕМУ МНОГИЕ НОВИЧКИ ОСТАНАВЛИВАЮТСЯ?

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

ЛЮБИМОЕ БЛЮДО НАЧИНАЮЩЕГО ПРОГРАММИСТА

 

Все новички любят спагетти, потому что в начале у них всегда получается "спагетти - код".

Вы скорее всего знакомы с этим понятием. Мы называем это любимым блюдом всех начинающих программистов, потому что именно новички стараются писать код по принципу "главное, чтобы работало."

 

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

Программа разделена на модули неверно, громоздкие объекты уже не знают как работать и любое изменение может принести смерть всей программе.

 

Но главное - что работает!

 

МЕДЛЕННОЕ САМОУБИЙСТВО

 

Думаю, что это стандартные грабли, особенно для новичков. И если не менять свои принципы программирования - наступает скорая смерть профессиональной карьеры.

 

Как только ваша программа начинает расширяться - вы уже теряете основные нити, не помните зачем создавали те или иные объекты и все окончательно превращается в спагетти.

 

Чтобы все это исправить приходится переписывать весь проект заново. Это очень затратно по времени и ресурсам - поэтому программисты, которые умеют изначально построить правильную систему - на вес золота!

 

Более того, с похожими проблемами сталкиваются около 95% процентов всех новичков! Поэтому неудивительно, что так мало людей становятся действительно профессионалами.

Как избежать эти грабли и быстро стать профи?

 

Самый простой, но долгий вариант - набить себе все шишки и на своем опыте понять что это такое.

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

 

Но победителем выходят не все, именно поэтому так мало профессионалов в Java.

 

Понятно, что это полезный, но очень долгий и больный путь. Я сам прошел его и знаю насколько он проблемный.

Сегодня, когда технологии меняются очень быстро мы не имеем много времени для постепенного развития!

   

 

Чтобы быстро стать профессионалом -
нужно с самого начала заложить правильный фундамент

КАК НОВИЧКУ НУЖНО НАЧИНАТЬ ПРОГРАММИРОВАТЬ?

 

Ответ лежит на поверхности. И вы его скорее всего уже знаете.

Чтобы стать профессиональным программистом, нужно в первую очередь выполнить 2 важных пункта:

создавать код в стиле ООП
использовать шаблоны проектирования

И все! Этого будет достаточно для любого начинающего Java программиста.

Можно еще конечно добавить пункт по анализу вашего кода, т.е.

уметь находить и исправлять "узкие" места в вашем коде

 

Вы можете создать одну и ту же программу многочисленными способами. И только несколько из них будут написаны настоящим профессиональным кодом.

 

 

 

Сравните 2 реализации одной и той же программы

Ваша программа может быть похожа на кривой и не собранный кубик-рубик: вроде работает, но постоянно что-то ломается и трудно собрать все в единую картину.
Другой вариант: ваша программа собрана идеально, все объекты правильно подходят друг к другу - это похоже на собранный кубик-рубик - ничего лишнего.

БЕЗ применения шаблонов и ООП

С применением шаблонов и ООП

Что такое "правильное применение ООП"?

 

Многие думают, что для ООП достаточно знать, что такое интерфейсы и абстрактные классы.

Хотя это не так.

 

Если вы хорошо владеете всеми терминами ООП, но не можете их применить на практике - то вы стоите на одном уровне с теми, кто вообще ничего не знает.

 

Потому что знать и применять - это разные вещи.

Важно не только глубоко понимать теорию, но и правильно применять ее на практике в нужных местах.

 

Теперь вы уже знаете, как нужно создавать любую Java программу, будь это веб - программирование, либо Android приложения - принципы везде одни и те же.

 

 

Вы можете получить профессиональные знания уже сейчас!

 

Получить видеокурс

Получите готовый видеокурс с полным
разбором всех перечисленных тем

 

Стать профессиональным программистом можно довольно быстро - нужно просто знать какие направления изучать, а какие можно оставить на потом. Ошибка большинства новичков в том, что они пытаются идти сразу в несколько сторон - в итоге так и стоят на месте.

 

И конечно же нужна хорошая практика, где вы сможете посмотреть и повторить по шагам профессионально написанный программный код. Именно этого и не хватает почти во всех учебниках и интернет - ресурсах.

 

Чем больше практики - тем быстрее результаты!

 

 

Чему вы научитесь

- использовать паттерны программирования на практике

- проектировать с нуля всю структуры программы - от идеи до проверки работы всей системы

- описывать схему взаимодействий объектов

- выделять зависимости и поведения объектов для их группировки

- последовательно разрабатывать программный код

- тестировать код различными типами тестов (на ошибки, на скорость работы, на результаты методов и пр.)

- создавать документацию к программе JavaDocs

- разбивать проект на маленькие подзадачи и реализовывать их отдельно

- использовать преимущества NetBeans при разработке кода

- использовать рефакторинг для правильного изменения кода

- и многое другое

 

Я за руку проведу вас от начала и до конца через все процессы
проектирования и разработки программы на Java

 

Получить видеокурс

 

ВЫ НАУЧИТЕСЬ РАЗРАБАТЫВАТЬ КОД, КАК НА ЭТОЙ КАРТИНКЕ

 

 

 

Основные темы видеокурса

  • Углубленное применение ООП
    Анализ и создание структуры проекта
    Применение паттернов проектирования
    Слабые связи между объектами
    Правильная структура кода
    Универсальность кода
    Заменяемые компоненты
    Создание «движка» приложения
    Абстрактный уровень
  • Уровень реализации
    Главные принципы любого профессионального кода
    Сборка проекта
    Нахождение узких мест программы
    Использование профилировщика
    Анализ загруженности приложения
    Работа с базой данных SQLite
    Создание кастомных SWING компонентов
    и многое другое...
Какие паттерны проектирования вы пройдете?
Одиночка (Singleton)
Фасад (Facade)
Фабричный метод (Factory Method)
Наблюдатель (Observer)
Абстрактная фабрика (Abstract Factory)
Стратегия (Strategy)
Адаптер (Adapter)
Состояние (State)

 

 

Вы будете использовать различные паттерны проектирования. Причем не все сразу, а по-очереди - для более удобного усвоения материала.

 

  • - Последовательное изучение каждого паттерна (не все сразу)
  • - Составление таблицы паттернов
  • - Применение каждого паттерна на текущей задаче
  • - Сравнение исходных кодов с паттерном и без него

 

Сначала вы начнете использовать порождающие паттерны, после этого будем переходить к структурным и поведенческим.

Важное примечание: вы сможете сравнить реализацию без применения паттернов и с применением, чтобы увидеть разницу.

После этого вы уже никогда больше не будете программировать как прежде - только с применением ООП и шаблонов проектирования!

Как обычно - вы будете создавать код по принципу "от простого к сложному".

 

 

 

Какой проект вы разработаете?

 

Вы будете разрабатывать аналог игры "Золотоискатель".

Основная цель игры - собрать золото, укрыться от монстров и выйти из лабиринта (более подробные требования будут даны на самом тренинге)
 
Вот некоторые скриншоты проекта (у вас возможно будет собственная, непохожая реализация):

Посмотрите видеопрезентацию:

(убедитесь, что у вас настроен флеш и включен звук)

 

 


Около 2-х лет назад я разрабатывал эту программу по просьбе знакомого для написания дипломной работы в университете York.

После проверки профессоров данный исходный код получил 1 место среди всех студентов университета с пометкой "лучшая реализация ООП".  Таким образом исходный код прошел проверку комиссии из лучших преподавателей. 

 

Получить видеокурс

 

 

 

 

КРАТКИЙ СПИСОК ТЕМ, КОТОРЫЕ БУДУТ В УРОКАХ

 

 

  • - Разбор пошагового алгоритма написания программы

    - Описание задачи и целей программы

    - Упрощенные этапы проектирования

    - Принципы GRASP

    - Проектирование функционала

    - Проектирование схемы программы

    - Проектирование объектов

    - Разбиение объектов на составляющие

    - Проставление связей между объектами

    - Создание "движка" программы

    - Применение принципов ООП для объектов

    - Добавление возможности расширения объектов программы

    - Последовательная разработка: внедрение объектов

    - Создание менеджеров управления объектами

    - Добавление валидаторов для проверки ввода значений

    - Принципы создания объектов

    • - Создание "запчастей" программы

      - Увеличение читабельности

  • - Разработка внешнего вида программы (графический интерфейс)

    - Разработка структуры таблицы базы данных

    - Хранение всей статистики программы

    - Логическое распределение классов по пакетам

    - Правильное именование пакетов

    - Рефакторинг кода

    - Обсуждение идей по развитию программы

    - Тестирование функционала программы на JUnit

    - Автоматизация по созданию тестов в NetBeans

    - Проверка кода на покрытие тестами (Coverage)

    - Создание и применение собственных типов исключений (Exception)

    - Создание звукового сопровождения

    - Разбор применяемых паттернов проектирования

    - Поиск "узких" мест программы

    - Использование профилировщика

    - Анализ скорости программы

    - Анализ создаваемых объектов

 

 

ОПТИМИЗАЦИЯ КОДА

 

Вы научитесь не только профессионально писать программный код, но и отслеживать все его "узкие места". Эти навыки пригодятся вам в любом проекте - как сделать так, чтобы программа работала без сбоев и с минимальным потреблением памяти.

 

Вы сможете решать такие вопросы как:

 

Нехватка памяти
Анализ файла heap dump
Лишние объекты
Оптимизация объектов
Скорость работы методов
Нагрузка программы

 

 

Вот некоторые скриншоты, которые вы научитесь использовать для оптимизации кода:

 

 

 

Кто виноват, что один метод вызывается постоянно

 

 

 

Какие объекты "съедают" память

 

 

 

Сколько памяти "кушает" ваша программа и почему

 

 

Дерево зависимостей

 

 

 

 

Как правильно работать с файлами Heap Dump

Heap Dump - это специальный файл, который создается вручную или виртуальной машиной для анализа ситуации.

 

Очень часто с этим файлом вам придется работать в веб-разработке, когда сервер приложений будет ломаться и вам нужно будет понять, из-за чего это произошло.

Эти знания пригодятся вам на всю жизнь.

 

Вам больше не нужно будет гадать - вы научитесь анализировать и разбирать проблемные ситуации.

 

 

 

Другие темы

 

Сериализация
Рефакторинг кода
База данных SQLite
Проектирование программы
Работа со звуком
Графический интерфейс

 

Вы поймете как можно сохранять и восстанавливать любую информацию в Java без потери в производительности.

Сериализация - очень важный навык для любого программиста. Эти знания пригодятся вам в любых проектах, где нужно будет сохранять и передавать данные

 

В проекте будет использоваться база данных SQLite. В ней будут храниться все результаты игр, сохраненные пользователи с данными и пр.

Доступ к данным осуществляется через JDBC API и SQL запросы. Для выполнения запросов вам понадобится драйвер последней версии.

Все игры будут храниться в двоичном виде для возможности быстрого восстановления.

 

Вы также научитесь работать со звуком в Java. Важно, чтобы звуковые эффекты не "тормозили" вашу программу, т.е. работали автономно. Поэтому их нужно уметь запускать в параллельных потоках и подгружать в нужные объекты.

 

Все объекты игры во время движения могут издавать звуки - вы узнаете как оптимизировать скорость выполнения (т.к. объектов может быть большое количество)

 

 

 

СКРИНШОТЫ ВИДЕОКУРСА

 

 

 

 

 

 

 

 

 

СТОИМОСТЬ ВИДЕОКУРСА

 

МИНИМУМ

  • Видеоуроки
  • Исходники
  • Презентации
  • (недоступно по раcпродаже)
  • 2900 рублей

СТАНДАРТ

  • (недоступно по раcпродаже)
  • 3500 рублей

ПРОДВИНУТЫЙ

  • Видеоуроки
  • Исходники
  • Презентации
  • Закрытая группа
  • Участие в вебинарах
  • Проверка исходных кодов
  • Дополнительные материалы
  • КУПИТЬ
  • 1200 рублей
  • 5900 рублей

КОУЧИНГ

  • Видеоуроки
  • Исходники
  • Презентации
  • Закрытая группа
  • Участие в вебинарах
  • Проверка исходных кодов
  • Дополнительные материалы
  • 2 скайп сессии по 1 часу
  • (недоступно по раcпродаже)
  • 9900 рублей

 

Инструкция для оплаты:

1) выбираете нужный комплект и нажимаете кнопку "Купить"
2) вводите данные: почта, имя, телефон
3) выбираете способ оплаты (его можно изменить в любое время по ссылке из письма)
4) оплачиваете удобным вам способом
5) получаете в течение 24-х часов ссылки на почту
6) если письмо не приходит - проверьте папку СПАМ

 

Закрытие через:

Загрузка таймера

 

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

 

Проигрывание звуков

 

2017 JavaBegin  Партнерская программа

БАТЫРШИНОВ ТИМУР, ИИН 851110300087