Неделя ООП: Интенсив не для ленивых

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

На первом интенсиве это оказалось не так страшно. как многим казалось. Самое сложное в процессе обучения - изменить свои внутренние приоритеты и перестроить своё мышление с процедурного программирования на объектно-ориентированное.

Начали мы с того самого видеоанонса:

И развили эту тему на уроках.

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

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

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


Как это было

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

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

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

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

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

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


В техническом плане

Суммарно провели вместе шесть четырёхчасовых практических вебинаров и рассмотрели несколько десятков примеров. На первом уроке поговорили о других парадигмах и об истории, что для многих оказалось скучным.

В завершение, закрепили это всё на примере разработки реального приложения.

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

Так что есть много вещей, которые можно исправить во втором потоке.

А в эмоциональном плане это изрядный заряд драйва и хороший пинок всем, у кого так и не доходили руки для изучения ООП.


Что будет нового

Сейчас я, как и обещал, пересматриваю и переделываю уроки. 

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

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

Для объяснения принципа инверсии зависимостей нашёл более интересный и живой фрагмент кода. Добавлю его в дополнение к примеру о работе через API с удалённым сервером.

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

Также нужно улучшить сценарий, немного перекомпоновав программу и сделать ещё более полезный и понятный интенсив как для новых участников, так и для предыдущих.

На последнем практическом уроке по созданию сервисного слоя рассмотрю ещё альтернативные продвинутые варианты с использованием шины команд и запросов.


Формат и прочие подробности

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

По стоимости первый пробный стоил 2990 руб. Второй, ввиду лучшего качества, будет стоить 3490. Аналогично будет доступна 50% предоплата для приобретения первых трёх уроков. И также останется гарантия возврата средств: если кому-то что-то не понравится или если кто-то передумает в ходе интенсива, то я полностью верну его платёж.

UPD: В ноябре 2016 года проведём третий поток:


Перейти на страницу третьего потока


Много планов как сделать лучший интенсив по ООП, но одному фигачить скучно :) Приходите и мы сделаем это вместе.

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

Другие статьи

Часто встречаю статьи и доклады от функциональщиков, что функциональное программирование рулит, а объекты это треш. Не будем здесь говорить о процедурщиках, которые думают, что они функциональщики. Вместо этого разберёмся, чем функциональное программирование отличается от других парадигм и для чего это всё вообще нужно.

В очередном обсуждении архитектуры и DDD на форуме Yii (да, такое бывает, но жуткий дефицит) возник вопрос по упрощённому фрагменту сущности User из демо-приложения. Попробуем поразмышлять об архитектуре методов и о доменных моделях в Yii2.

Спонтанный вебинар о применении кеширования данных, фрагментов и страниц в Yii2 на примере каталога с прошлого скринкаста. Рассмотрели несколько вариантов и ответили на интересные вопросы зрителей

При входе в чужой проект (или при доработке своего старого) часто сталкиваемся с отсутствием хоть каких-то автоматических тестов. А без них весьма неприятно ковыряться в исходниках, так как есть постоянный страх что-то сломать. Поэтому первым делом приходится внедрять автотесты. Посмотрим, чем Gii может нам помочь.

Комментарии

 

Андрей

Если не будет возможности присутствовать на всех уроках, можно ли будет по окончании интенсива получить запись вебинаров?

Ответить

 

Дмитрий Елисеев

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

Ответить

 

Руслан

Дмитрий, а возможно организовать по окончании интенсива какие-либо сертификаты или что-то подобное? Может за отдельную плату, кто-то захочет сдать зачет с получением сертификата.

Ответить

 

Дмитрий Елисеев

Интересная идея. Подумаю.

Ответить

 

Bbya Admin

Кстати, да - я, например, на Linkedin указал и этот курс (апрельский) в секции дополнительного обучения, рядом со всякими Coursera )

Ответить

 

Антон

Может скидки для студентов? :D

Ответить

 

Александр

Дмитрий, правильно ли я понял, что с 27 июня будет новый, переделанный интенсив, а не продолжение прошлого?

Ответить

 

Дмитрий Елисеев

Правильно.

Ответить

 

ИндюкЖ

Дмитрий, почему на лэндинге, посвещенном ООП уроку вы используете систему оплат JustClick, ведь можно использовать более дешевые платежные шлюзы?

Ответить

 

Дмитрий Елисеев

Например какие?

Ответить

 

Дмитрий Елисеев

Это только платёжный шлюзы. С комиссиями примерно до тех же 5%. У них нет ни рассылки, ни учёта заказов, ни аналитики, ни партнёрки.

Ответить

 

ПАВЕЛ

ДМИТРИЙ,ОПЛАТИЛ ТОЛЬКО ПОКА ПОЛОВИНУ..ДУМАЮ НИЧЕГО СТРАШНОГО...

Ответить

 

smertnik77

Здрасте. Хотелось бы уроков по интегрированию на сайт с yii2 мерчантов самых современных валют, биткоинов, эфиров и прочей всей этой лабуды. Начинающему програмисту нужна быстрая отдача в бабосах)

Ответить

 

Кирилл

Дмитрий, планируется ли новый набор?

Ответить

 

Дмитрий Елисеев

Не раньше осени.

Ответить

 

Олег Проценко

А можно просто купить записи с прошлого интенсива? Если да, то сколько это будет стоять?

Ответить

 

Дмитрий Елисеев

Ответил на email.

Ответить

 

Anton Kalny

А напишите и мне, пожалуйста - на каких условиях можно приобрести записи.

Ответить

 

Ярослав

И мне, пожалуйста, напишите! Очень хочу ознакомится с курсом, хотя бы в записи.

Ответить

 

Павел Злыгостев

Дмитрий ответьте мне тоже)

Ответить

 

Сергей

И мне пожалуйста

Ответить

 

Ruslan

Просьба также ответить на емаил сколько будет стоить в записи просмотреть этот интенсив

Ответить

 

Игорь

Дмитрий, а когда будет очередной интенсив? По счету третий, кажется. Доработанный, улучшенный. Я так ни на один и не попал. Сначала был занят, затем не было денег...

Ответить

 

Дмитрий Елисеев

Когда-то осенью. Ещё не решил.

Ответить

 

Алекс

Дмитрий, будьте добры, скиньте на мыло цену приобретения второго курса "Неделя ООП". Первый я Вас тоже проходил.

Ответить

 

Дмитрий Елисеев

Ответил.

Ответить

 

girmate

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

Ответить

 

girmate

И мне напишите цену для приобретения второго курса.

Ответить

 

Антон

Когда будет следующий поток? И можно ли приобрести записи второго потока? Спасибо!

Ответить

 

Дмитрий Елисеев

Ответил.

Ответить

 

Антон

В этом курсе все разбирается на примере фреймворка YII2 или на голом PHP?

Ответить

 

Дмитрий Елисеев

Большинство на голом PHP для независимости от фреймворков и для совместимости со всеми. С комментариями и примерами, как это привязать к любому из них. Только последний урок про проект с независимым ядром и обвязкой на Yii2.

Ответить

 

Анатолий

Дмитрий, пожалуйста, напишите цену на видео со второго курса "Неделя ООП".

Ответить

 

Евгений

Дмитрий, напишите на почту на счет видео со второго курса, а то не успел не первый и не второй(

Ответить

 

Дмитрий Елисеев

Ответил.

Ответить

 

Муслим

Добрый день! Тоже интересует запись курса по ООП.

Ответить

 

Виталий

Интересует, будет ли данный курс повторяться, если да, то когда?
Спасибо!

Ответить

 

Дмитрий Елисеев

В UPD указал.

Ответить

 

Игорь

Чтобы в живую смотреть трансляции нужно быть где-то зарегистрированным (соц. сети)? Или где это будет происходить?

Ответить

 

Дмитрий Елисеев

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

Ответить

Оставить комментарий

Войти | Завести аккаунт


(никто не увидит)



Можно использовать теги <p> <ul> <li> <b> <i> <a> <pre>