Ничто не предвещало, но неожиданно появилась возможность сходить на онлайн-интервью MoreView с Антоном Моревым. Поэтому приглашаем вас в гости завтра вечером.
Обсудим PHP, JS, etc. и ошеломительное человеческое стремление к прекрасному. Поговорим о подходах к разработке, важности качества проектов и о вариантах архитектуры.
Наверняка у кого-то из вас припасена пара каверзных вопросов. Приходите на прямой эфир, и там мы вместе с вами развернём горячую дискуссию. И кто-то из вас по традиции сможет выиграть пиццу:
https://www.youtube.com/watch?v=3IG1WPsmxJo
Обсудим PHP, JS, etc. и ошеломительное человеческое стремление к прекрасному. Поговорим о подходах к разработке, важности качества проектов и о вариантах архитектуры.
Наверняка у кого-то из вас припасена пара каверзных вопросов. Приходите на прямой эфир, и там мы вместе с вами развернём горячую дискуссию. И кто-то из вас по традиции сможет выиграть пиццу:
https://www.youtube.com/watch?v=3IG1WPsmxJo
YouTube
MoreView #12 | Дмитрий Елисеев - основатель elisdn.ru и deworker.pro
Если вы, как и я, начали погружаться в мир PHP разработки через фреймворки Laravel или Yii2, то вы, однозначно, читали гайды и смотрели уроки от моего гостя - Дмитрия Елисеева.
В пятницу, в 17.00 по мск устроим онлайн-интервью с Дмитрием - у него достаточно…
В пятницу, в 17.00 по мск устроим онлайн-интервью с Дмитрием - у него достаточно…
Интервью получилось интересным. Спасибо всем вам! И спасибо тем, кто задавал вопросы! Но я ответил не на все, так что решил продолжить. Об этом подробнее в нашем посте в блоге.
deworker.pro
Интервью MoreView про разработку и проекты
Интервью на канале MoreView о проектах, обучении, языках программирования, о планах и развитии нашего проекта.
Новое free видео в базе знаний
Обновление пакетов при CI/CD
Время от времени в проекте желательно обновлять пакеты через Composer и Yarn. Иногда это происходит без ошибок. К счастью, у нас в этот раз оказалось не так :) Это хороший повод рассмотреть все нюансы обновления.
Обновление пакетов при CI/CD
Время от времени в проекте желательно обновлять пакеты через Composer и Yarn. Иногда это происходит без ошибок. К счастью, у нас в этот раз оказалось не так :) Это хороший повод рассмотреть все нюансы обновления.
deworker.pro
Обновление пакетов при CI/CD
Обновление пакетов в Composer и Yarn. Семантическое версионирование. Мажорные и минорные обновления. Оптимизация процесса для следования CI/CD.
Про обучение: где заканчиваются сверхспособности и начинается труд?
В понедельник 3 августа в 17:00 на канале ХудоБедно будем обсуждать онлайн-обучение в целом и разные походы в частности.
Вот пара вопросов из предварительного секретного списка:
▪️Зачем скачивать бесплатно, если можно заплатить автору?
▪️Как совмещать запись скринкастов с работой и расти самому?
Здесь не будет правильного и неправильного мнения. Только личный опыт и видение.
В понедельник 3 августа в 17:00 на канале ХудоБедно будем обсуждать онлайн-обучение в целом и разные походы в частности.
Вот пара вопросов из предварительного секретного списка:
▪️Зачем скачивать бесплатно, если можно заплатить автору?
▪️Как совмещать запись скринкастов с работой и расти самому?
Здесь не будет правильного и неправильного мнения. Только личный опыт и видение.
В нашей базе скринкастов внезапное большое пополнение.
Изначально я в фоне в рамках проекта по Slim готовил один эпизод "Что есть React" с принципами работы самой библиотеки React и её экосистемы.
Но за два месяца надобавлял туда столько материала, что в итоге получилось около полусотни коммитов.
Так что вместо банального поверхностного рассмотрения мы эту тему работы фронтенд-фреймворков расковыряем полностью. Это будет интереснее и полезнее.
И для удобства выделим это в отдельную мини-серию скринкастов Что есть React. Эпизоды будут короткими и будут выкладываться часто, так что это не займёт много времени. Так что приступим!
Изначально я в фоне в рамках проекта по Slim готовил один эпизод "Что есть React" с принципами работы самой библиотеки React и её экосистемы.
Но за два месяца надобавлял туда столько материала, что в итоге получилось около полусотни коммитов.
Так что вместо банального поверхностного рассмотрения мы эту тему работы фронтенд-фреймворков расковыряем полностью. Это будет интереснее и полезнее.
И для удобства выделим это в отдельную мини-серию скринкастов Что есть React. Эпизоды будут короткими и будут выкладываться часто, так что это не займёт много времени. Так что приступим!
Начинаем новую мини-серию скринкастов по исследованию принципов и устройства React.
В первом эпизоде поговорим о переводе статической вёрстки на JavaScript и о разделении кода на компоненты:
Рендер страницы в JavaScript
В первом эпизоде поговорим о переводе статической вёрстки на JavaScript и о разделении кода на компоненты:
Рендер страницы в JavaScript
deworker.pro
Рендер страницы в JavaScript
Переход от классического серверного рендеринга HTML-страниц на построение DOM через JavaScript. Отделение данных от представления.
Продолжаем серию про React. Добавляем странице динамику и переходим на иммутабельный подход. Эмулируем подгрузку лотов из API с обновлением цен в реальном времени по WebSocket:
Динамика и иммутабельный flow
Динамика и иммутабельный flow
deworker.pro
Динамика и иммутабельный flow
Сложность изменения страницы при изменении состояния. Однонаправленный поток данных и иммутабельный перерендер страницы.
Оформили вышенаписанное про React в виде полного анонса в блоге:
deworker.pro
Исследование устройства ReactJS
Запуск новой серии скринкастов про исследование устройства работы библиотеки React JS и её экосистемы.
Продолжаем исследование React. Сегодня у нас Виртуальный DOM и синхронизация UI. Напишем с вами более продвинутый рендер, чтобы решить проблемы производительности рендера из предыдущего эпизода.
deworker.pro
Виртуальный DOM и синхронизация UI
Оптимизация производительности перерендера страниц. Концепция виртуального DOM. Синхронизация реального дерева с виртуальным.
Начинаем вести свой видеоканал. Сегодня у нас обещанные ранее ответы на вопросы:
YouTube
Ответы на вопросы о проекте Deworker
Как и обещали ранее, мы собрали самые популярные вопросы о проекте Deworker и записали на них ответы. Возможно, среди них вы найдете свой вопрос. А если не найдёте, то напишите его ниже в комментариях.
00:00:00 - Приветствие
00:00:22 - Причины создания отдельного…
00:00:00 - Приветствие
00:00:22 - Причины создания отдельного…
Продолжаем написание своего ReactJS. Сегодня мы переводим генерацию виртуального DOM-дерева со встроенных Node-элементов на облегчённый формат JSON:
deworker.pro
Виртуальный DOM в формате JSON
Отход от стандартных Node-элементов к структурам для построения виртуального DOM. Перевод на декларативный JSON-формат описания UI.
Страсти накалились и пора тушить :) Мы с вами уже разобрали работу виртуальных элементов и рендер представления. Сегодня займёмся упрощением кода компонентов и перейдём на настоящий React. И для красоты и удобства подключим Babel и внедрим синтаксис JSX:
deworker.pro
Компоненты React и синтаксис JSX
Добавление фабрики компонентов для упрощения разработки. Подключение Babel. Внедрение HTML-подобного синтаксиса JSX для написания компонентов.
Продолжаем исследование React. Сегодня займёмся усовершенствованием работы с состоянием. Вместо примитивной структуры мы сделаем полноценный объект-хранилище. После этого автоматизируем вызов перерендера страницы через подписку на события.
deworker.pro
Хранилище состояния и подписка
Инкапсуляция состояния в объект-хранилище. Реализация автоматического рендеринга через подписку на изменение состояния.
Продолжаем исследование React. В предыдущем эпизоде мы придумали удобное хранилище состояния. А в этом эпизоде сделаем работу с ним более удобнее, доработав экшены. Отделим декларацию действия от его реализации, сделав код компонентным и тестируемым. И после этого рассмотрим и подключим библиотеку Redux.
Когда мы разобрались с действиями пришло время добавить интерактивность. Сегодня сделаем кнопки добавления лотов в избранное. И на них построим архитектуру Flux. Разберёмся с классическим MVC для фронтенда и с упрощённым Web-MVC для бэкенда.
deworker.pro
Интерактив по Flux и MVC
Добавление интерактивных элементов. Организация однонаправленного потока управления Flux. Анализ паттерна Model-View-Controller.
Продолжаем путь к совершенству нашего приложения. Сегодня решим проблему каскадной передачи состояния в виде props-ов через всё дерево. Напишем тесты и введём понятие презентационных и контейнерных компонентов. И переведём код на передачу состояния через контекст React. А в следующем эпизоде попробуем это отрефакторить для избавления от копипасты.
deworker.pro
Контекст и контейнерные компоненты
Проблема каскадного проброса параметров. Использование контекстов React для передачи состояния внутренним компонентам. Выделение контейнерных компонентов.
Мы нашли удобный способ подключать компоненты к хранилищу, передаваемому через контекст, через connected-компоненты. Теперь мы можем обобщить этот процесс, создав универсальный настраиваемый коннектор. Заодно избавимся от перерендера целого приложения. Доработаем метод dispatch, чтобы он умел работать с асинхронными экшенами. В итоге получим более аккуратный код.
deworker.pro
Привязка состояния и React-Redux
Унификация привязки состояния и действий к свойствам компонента. Автоматизация мэппинга через коннектор. Подключение React-Redux. Асинхронные экшены через Redux-Thunk.
Вот мы и сделали приложение на React. Но загрузка лотов производится даже когда мы не выводим их на странице. Использование Redux порой может быть лишним. И загрузка данных из API может быть сложнее.
Сегодня рассмотрим и сравним варианты хранения и изменения состояния внутри и снаружи компонента, а код побочных эффектов сделаем выполняемым только по требованию. Для этого исследуем устройство хуков и сильнее декомпозируем наш код.
Сегодня рассмотрим и сравним варианты хранения и изменения состояния внутри и снаружи компонента, а код побочных эффектов сделаем выполняемым только по требованию. Для этого исследуем устройство хуков и сильнее декомпозируем наш код.
deworker.pro
Локальное состояние и хуки
Размещение локального состояния внутри классовых и функциональных компонентов. Использование хуков для экономии кода.
Наш фронтенд почти готов. Сегодня закроем его эпичным эпизодом о разных способах маршрутизации. Дополним нюансами подгрузки цен, отрефакторим маршрутизатор и посмотрим, что в итоге у нас получилось.
И после исследования работы React уже можем продолжить проект аукциона на Slim.
И после исследования работы React уже можем продолжить проект аукциона на Slim.
deworker.pro
Маршрутизация и History API
Динамическая смена контента. Написание компонента Router для эмуляции многостраничности через использование хэшэй и History API браузера.