VK Tech Talks для фронтенд-разработчиков
Формат гибридный: участники могут пройти регистрацию и попасть в питерский офис или подключиться к трансляции в сообществе VK Team уже 16 марта в 19:00.
В программе:
Михаил Крайнов, разработчик, команда фронтенд-инфраструктуры ВКонтакте: уменьшаем энтропию в монолите;
Валерия Колпакова, фронтенд-разработчик, Adv-team, ВКонтакте: как мы ускоряли релиз лендингов на Юле?
Константин Лебедев, фронтенд-архитектор, RnD, Почта Mail.ru: как не стать «слабым звеном».
👉 @seniorFront
Intersection Observer
Это браузерный API, который позволяет асинхронно отслеживать пересечение элемента с его родителем или областью видимости документа (viewport). В момент пересечения можно запустить какое-либо действие, например, подгрузить дополнительные посты в ленте новостей («бесконечный скролл») или сделать «ленивую» загрузку контента.
Пример
Для наглядности область наблюдения выделена жёлтой рамкой, а снизу показано как изображения прокручиваются к этой области. Видно, что изображения начинают загружаться при пересечении пунктира, то есть чуть раньше, чем они появляются в видимой области. Это возможно благодаря свойству rootMargin.
Ещё одна фишка — изображение Морти немного увеличивается, когда полностью оказывается в наблюдаемой области. Такой трюк делается с помощью свойств threshold и intersectionRatio, о которых будет рассказано ниже.
Упрощённый код для этого примера выглядит приблизительно так.
const lazyImages = document.querySelectorAll('.lazy-image')
const callback = (entries, observer) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
console.log('Пользователь почти докрутил до картинки!')
entry.target.src = entry.target.dataset.src
observer.unobserve(entry.target)
}
})
}
const options = {
// root: по умолчанию window, но можно задать любой элемент-контейнер
rootMargin: '0px 0px 75px 0px',
threshold: 0,
}
const observer = new IntersectionObserver(callback, options)
lazyImages.forEach((image) => observer.observe(image))
👉 @seniorFront
Function Cache
Создайте функцию, которая будет кешировать свой результат, в зависимости от входящих аргументов и будет выполнять сложные вычисления только тогда, когда у неё нет закешированного значения.
Примеры:
var complexFunction = function(arg1, arg2) { /* complex calculation in here */ };
var cachedFunction = cache(complexFunction);
cachedFunction('foo', 'bar');
// complex function should be executed
cachedFunction('foo', 'bar');
// complex function should not be invoked again, instead the cached result should be returned
cachedFunction('foo', 'baz');
// should be executed, because the method wasn't invoked before with these arguments
👉 @seniorFront
📌 Бесплатно освойте профессию дизайнера с нуля. Вместе сделаем вам портфолио из 4+ работ с личной поддержкой от наставника и расскажем как заработать на дизайне.
Что вы получите?
— Доступ к личному кабинету с уроками
— Личный разбор каждого ДЗ от куратора
— Портфолио из 4+ работ и сертификат
— Мастер-класс "Как заработать на дизайне в 2023 г."
— 12000 единомышленников в чате
Будем делать: веб-дизайн, графический дизайн, анимацию интерфейсов.
👉 Начать обучение бесплатноПрограмма бесплатного курса:
— Обучение по Figma с нуля и 4+ дз с личным разбором
— Изучение основ дизайна (контент, сетки, композиция т.д.)
— Создание анимации интерфейса
— Все о профессии и доходе дизайнера (как найти клиентов и сколько можно заработать)
👉 Первый урок уже сегодня, кликайте сюда и забирайте все бонусы
❓ С чего начать осваивать веб-разработку?
Приходите за новыми знаниями 1 марта в 20:00 мск на открытый урок специализации «Fullstack Developer» в OTUS.
👉 Вместе с Василием Ванчуком, руководителем онлайн-курса и опытным разработчиком, разберем одну из важных тем в JS-разработке — прототипное наследование в JavaScript.
🧠 На занятии мы разберемся, что такое прототипное наследование и как оно может помочь при разработке программ. В результате вы лучше поймете объектную модель Javascript и сможете писать ООП код с экономией памяти.
Урок рассчитан на тех, кто знает основы JavaScript, включая работу с объектами, и хочет лучше понимать тонкости разработки.
👉 Регистрируйтесь на занятие https://otus.pw/hia4/
📌 Используйте эту возможность, чтобы познакомиться с преподавателем и форматом обучения. Курс доступен в рассрочку.
Реклама. Информация о рекламодателе на сайте www.otus.ru
🚀Как JavaScript-разработчику использовать XState?
Узнаем 3 марта в 20:00 на открытом уроке онлайн-курса «JavaScript Developer. Professional» в OTUS.
😎Тема вебинара: «Управление сложным состоянием на основе XState». XState — это инструмент для создания и проверки диаграмм состояний для визуализации состояния ваших приложений. Вместе с преподавателем Арсением Высоцким, тимлидом в большой международной компании, научимся описывать бизнес-логику посредством конечных автоматов.
👉Пройдите вступительный тест, чтобы принять участие в занятииhttps://otus.pw/0b57/
Курс доступен в рассрочку.
Реклама. Информация о рекламодателе на сайте www.otus.ru
Зачем программистам комнатные растения
При появлении растений в офисе или дома пространство становится более живым и дружелюбным. Это полезно для здоровья программиста, хорошего настроения и роста производительности.
Комнатные растения оздоравливают пространство вокруг человека.
Растения очищают воздух помещений и повышают содержание в нем кислорода, что позволяет программистам дышать свежим воздухом и поддерживать хорошее здоровье.
Комнатные растения снимают стресс. В отличие от городской среды, на природе возникает ощущение полного спокойствия, расслабленности, умиротворения и наслаждения моментом. В стерильной среде природные элементы могут помочь собраться с мыслями и снять стресс.
Добавление естественной среды может помочь «восстановить» нашу способность к вниманию и концентрации. Исследователи обнаружили, что даже простое созерцание природы положительно влияет на человека.
Кроме того, уход за комнатными растениями может помочь программистам отдохнуть и отвлечься от работы.
👉 @seniorFront