Senior Frontend - javascript, html, css @seniorfront Channel on Telegram

Senior Frontend - javascript, html, css

@seniorfront


Senior Front - канал для frontend программистов, практические задачки, проверки знаний, интересные статьи

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Менеджер по рекламе: @Spiral_Yuri

Заявление о регистрации в РКН №5066166857

Senior Frontend - javascript, html, css (Russian)

Senior Front - это канал для frontend программистов, которые интересуются разработкой веб-приложений с использованием javascript, html и css. Здесь вы найдете практические задачки, проверки знаний, а также интересные статьи, которые помогут вам расширить свои профессиональные навыки. Администраторы канала всегда готовы ответить на ваши вопросы и помочь в решении возникших проблем. Если у вас есть предложения по сотрудничеству или вы хотите разместить рекламу на канале, вы можете связаться с администраторами по указанным контактам: @seniorFrontPromo, @maria_seniorfront. Также есть возможность обсудить рекламные вопросы с менеджером по рекламе: @Spiral_Yuri. Присоединяйтесь к Senior Front и вы всегда будете в курсе последних новостей и тенденций в мире frontend разработки!

Senior Frontend - javascript, html, css

20 Feb, 16:02


Blurred Gear Loader

Реализовано с использованием возможностей препроцессоров Pug и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

20 Feb, 09:02


"Боже, просто подай знак, могу ли я сегодня ничего не делать и списать 8 рабочих часов"

Бог:

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Feb, 17:02


Next Prev & Hover Effects in JavaScript

В этом видео создается эффект при наведении на блок и его соседние блоки на JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Feb, 09:05


Dropbox Color Picker

Вся сцена - это SVG картинка, анимируемая библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

18 Feb, 16:02


Windsurf vs Cursor IDE: кто лучший AI-редактор кода?

Две популярные IDE (среды разработки) с поддержкой искусственного интеллекта: Windsurf и Cursor. Оба инструмента заявляют, что ускорят процесс написания кода, но какой из них лучше подойдет именно вам? Я тщательно изучил обе, и в статье расскажу к каким выводам пришел.

👉 @seniorFront

Senior Frontend - javascript, html, css

18 Feb, 09:09


Как использовать японские подходы в IT. Часть 1: петля за петлей

В этом цикле статей мы поговорим о том, как устроены процессы «у них», почему они не всегда работают «у нас» и как их адаптировать для IT. Здесь не будет много душных цитат и ссылок на книги типа «Дао Toyota». Только кристаллизованный личный опыт: ошибки, наблюдения и выводы одного русского парня.

Разберись в корне проблемы (root cause, 5 why)
Как бы сделали на производстве раньше: связали нить и стали ткать дальше, будто ничего не было. Этот процесс уже стал привычным, порождая проблемы с возвратом. Проблема привела к простой мысли: если нить рвется, то станок надо остановить и сделать так, чтобы она не рвалась.

Если что-то идет не так — остановись (дзидока)
Нить — это совокупность волокон, сплетенных между собой. Мы можем не заметить, если одно из волокон надорвется, но нить станет более хрупкой. Что говорить о том, когда рвется сама нить.

Дзидока (jidoka) — принцип «целой нити», когда, например, процесс создания ткани продолжается до тех пор, пока все подпроцессы функционируют корректно. Если что-то идет не так — работа останавливается. Наша задача — сделать так, чтобы производство не останавливалось (только если мы этого не хотим) в целом, как целая нить.

Но как сделать, чтобы нить не рвалась? Усовершенствовать станок!

Постоянно совершенствуй (kaizen)
Тоёда-сан шел по циклу Деминга:
- Замечал проблему.
- Придумывал решение.
- Записывал, что идет не так.
- Менял это.
Однако он не мог знать этого, так как до разработки цикла оставались еще десятки лет. Годы жизни Сакити Тоёда — 1867–1930 годы.

Обменивайся опытом и учи (nemawashi)
Тоёда-сан пытался запустить производственный процесс, путешествовал по миру, учился, но долгое время ощутимых результатов не было. Однако все изменилось позже благодаря двум «воспитанникам» системы — Тайити Оно и Сигэо Синго, которые были в Toyota почти с самого начала.

Оно-сан, путешествуя по США, был поражен устройством работы супермаркетов: все точно находилось на полках тогда, когда это было нужно, и никакой суеты — в отличие от производства Toyota. Помня об идеях Тоёда-сан (Киитиро), он разработал концепцию Just-in-Time (JIT). Если по-простому — все должно быть на своих местах ровно в тот момент, когда это требуется, и только тогда. Если рабочему нужен ключ — он должен быть под рукой. Нужен компонент для монтажа — он тоже должен быть доступен.

Для реализации принципа были построены процессы внутренней доставки по системе Kanban — с использованием карточек-инструкций. Как в супермаркете: у покупателя есть список покупок, он наполняет корзину и доставляет ее куда нужно. Profit!

Точно вовремя (JIT)
Синго-сан, сотрудничая с Оно-сан, углубился еще дальше и заметил, что помимо нехватки материалов производство теряет время из-за дефектов оборудования и ошибок сотрудников. Можно ли устранить дефекты с минимальными временными затратами? Можно, если ремонтировать оборудование во время работы и знать, когда оно сломалось. Это называется быстрой переналадкой или Single-Minute Exchange of Dies (SMED).

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

Узнавай о проблеме и не давай делать ошибки (andon и poka-yoke)
После наладки механической части производства Синго-сан и Оно-сан поняли, что нужно обучать персонал. Но как объяснить процесс неподготовленному рабочему? Очень просто — с помощью Kanban-доски. Как и карточки на производстве, Kanban-доска наглядно показывает, из чего состоит процесс и какие операции нужно выполнить. Это упростило контроль и сделало обучение сотрудников более быстрым.

Показывай наглядно (Kanban)
Как видите, история сделала круг и система Kanban стала применяться повсеместно. Сегодня ее «заимствуют» все, делая вид, что в этом есть что-то сложное. Смешной факт: на нескольких собеседованиях интервьюеры утверждали, что я не знаю, как работать с Kanban. Наивные!

👉 @seniorFront

Senior Frontend - javascript, html, css

17 Feb, 16:05


Secret Project

Концепт приложения с множеством функций на HTML, CSS и JS

👉 @seniorFront

Senior Frontend - javascript, html, css

17 Feb, 10:07


Зачем придумали async/await?

Ключевой целью введения async/await в JavaScript было упростить написание и чтение асинхронного кода, сделать его более линейным и похожим на синхронный.

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

Пример с промисами:

function fetchData() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("some data");
}, 1000);
});
}

fetchData().then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});


Пример с async/await:
async function fetchData() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("some data");
}, 1000);
});
}

async function main() {
try {
const data = await fetchData();
console.log(data);
} catch (error) {
console.error(error);
}
}

main();


Избегание "ада коллбеков"
Когда асинхронные операции вложены друг в друга, код становится трудным для чтения и сопровождения. Это называется "адом коллбеков" (callback hell). async/await позволяет писать асинхронный код последовательно, без вложенности.

Пример с промисами:
getData((data) => {
processData(data, (processedData) => {
saveData(processedData, (result) => {
console.log(result);
});
});
});


Пример с async/await:
async function main() {
try {
const data = await getData();
const processedData = await processData(data);
const result = await saveData(processedData);
console.log(result);
} catch (error) {
console.error(error);
}
}

main();


Снижение вероятности ошибок
Когда используется async/await, ошибки могут быть обработаны с использованием привычного try/catch блока, что снижает вероятность пропуска ошибок.

Пример с промисами:
fetchData().then((data) => {
return processData(data);
}).then((processedData) => {
return saveData(processedData);
}).catch((error) => {
console.error(error);
});


Пример с async/await:
async function main() {
try {
const data = await fetchData();
const processedData = await processData(data);
const result = await saveData(processedData);
console.log(result);
} catch (error) {
console.error(error);
}
}

main();


👉 @seniorFront

Senior Frontend - javascript, html, css

17 Feb, 08:07


😡 Устал от нудных уроков на YouTube, где половина — вода?

Хватит это терпеть) Автор канала Формошлёп убрал воду и оставил только суть:

Мини-гайды по HTML, CSS и JavaScript, которые легко читать и сразу применять.
➧ Шпаргалки, лайфхаки и полезные советы с ноткой юмора.
➧ Всё чётко, лаконично и по делу.

Неважно, новичок ты или фронтендер на опыте — у нас всегда найдётся что-то полезное!

Присоединяйся: @frontbox будем вместе шлёпать формы и красить кнопки)

Senior Frontend - javascript, html, css

16 Feb, 16:02


Я делаю рефакторинг ежечасно» или как за пять минут улучшить приложение

История этой статьи началась с того, что я вспомнил о довольно известном высказывании Мартина Фаулера, автора книг и статей по архитектуре ПО, которое нередко вызывает недопонимание (во всяком случае так было у меня) — «Я делаю рефакторинг ежечасно». Первая мысль, которая логично возникает после этого высказывания — уважаемый публицист просто лукавит. Вторая — что, наверное, кроме рефакторинга он в своей жизни ничем больше не занимается. Но так ли это?

👉 @seniorFront

Senior Frontend - javascript, html, css

16 Feb, 09:03


Counting Duplicates

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

Пример:
"abcde" -> 0 # no characters repeats more than once
"aabbcde" -> 2 # 'a' and 'b'
"aabBcde" -> 2 # 'a' occurs twice and 'b' twice (`b` and `B`)
"indivisibility" -> 1 # 'i' occurs six times
"Indivisibilities" -> 2 # 'i' occurs seven times and 's' occurs twice
"aA11" -> 2 # 'a' and '1'
"ABBA" -> 2 # 'A' and 'B' each occur twice

Senior Frontend - javascript, html, css

15 Feb, 16:04


Filter on image vs gradient backgrounds

Слева находится анимированная SVG картинка, а справа блок с множеством градиентов, наложенных через CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

15 Feb, 09:02


Scroll To Text Reveal Effect

В этом видео создается эффект проявления текста при прокрутке на JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Feb, 09:02


Fluid Simulation With Your Text

Реализовано на canvas и чистом JS с использованием технологии WebGL

👉 @seniorFront

Senior Frontend - javascript, html, css

13 Feb, 16:05


Sticky Navigation

Свёрстано с использованием препроцессоров Pug и SCSS. Функционал плавной прокрутки реализован в JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

13 Feb, 09:02


Программист показывает своё решение:

👉 @seniorFront

Senior Frontend - javascript, html, css

12 Feb, 17:02


Keyboard

В этом видео создается реалистичная клавиатура на CSS и чистом JS, которая отображает нажатые клавиши в данный момент.

👉 @seniorFront

Senior Frontend - javascript, html, css

12 Feb, 09:05


Logo Factory

Свёрстано на HTML и SCSS. Функционал рисования лого, а также скачивание результата реализованы в JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

11 Feb, 15:00


Сделай удобно: подборка UI/UX-кейсов из цифровых и нецифровых продуктов

Продолжаю изучать различные UI/UX/CX кейсы в мобильных приложениях, веб-сайтах и в реальном мире. Дизайнерам и менеджерам по продукту, чтобы вдохновиться и добавить в заметки.

Под катом: N26, Glovo, Flowwow, Intsargam.

👉 @seniorFront

Senior Frontend - javascript, html, css

11 Feb, 09:02


Как стоит оценивать задачи, чтобы улучшить прогнозирование сроков?

Одной из самых частых проблем, с которыми сталкиваются команды, является неточность планирования сроков выполнения задач.
Разработчик говорит: «Это на пару часов». Проходит день, потом два, и выясняется, что в процессе работы всплыли интеграционные проблемы, тестировщики нашли баги, а кто‑то еще ждет согласования. В итоге задача, которую оценили в несколько часов, затягивается на несколько дней или недель.

Почему так происходит? Потому что абсолютные оценки в часах не работают. Они не учитывают неопределенности, возникающие в процессе работы:

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

Как же тогда планировать и прогнозировать сроки выполнения задач?

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

Как это сделать:

- Фиксируйте, когда задача была взята в работу и когда она реально была завершена (включая тестирование и релиз).
- Отслеживайте не только время разработки, но и задержки, связанные с ожиданием ответов, согласованиями и релизами.
- Разделите задачи по размеру (например, S, M, L, XL) и собирайте статистику по каждому типу.

2. Оценивать задачи не в часах, а в относительных единицах
Когда команда оценивает задачи в часах, это создает иллюзию точности, которая на самом деле приводит к ошибкам. Вместо этого лучше использовать относительные оценки, например:

- Story Points (по ряду Фибоначчи: 1, 2, 3, 5, 8 и так далее).
- Оценку в «футболках» (XS, S, M, L, XL).

Как это работает:
- Находим в бэклоге самую маленькую задачу, принимаем ее за 1 SP (или XS).
- Сравниваем другие задачи с ней и оцениваем их относительно друг друга.
- Планируем спринт и смотрим, сколько SP команда реально завершает за итерацию.
- Через 3–5 спринтов накапливается статистика, на которую можно опираться при планировании.

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

3. Использовать статистику выполнения прошлых спринтов
Если вы работаете по Scrum, можно анализировать, сколько Story Points команда выполняла в прошлых спринтах.

Как это сделать:
- Фиксируйте скорость команды (Velocity) — среднее количество выполненных SP за спринт.
- Учитывайте тенденции — если команда стабильно делает 30 SP за спринт, то планировать на следующий спринт 50 SP бессмысленно.
- Анализируйте вариативность — насколько часто сроки отклонялись от запланированных, какие были причины.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

10 Feb, 16:02


CSS infinite scroll gallery

Бесконечная галерея картинок, анимированная в CSS. В JS реализован функционал перезапуска положения прокрутки при достижении определенной точки.

👉 @seniorFront

Senior Frontend - javascript, html, css

10 Feb, 09:06


Какая есть важная особенность у pipe?

Это популярная концепция в программировании, особенно в функциональных языках и библиотеках вроде RxJS (в контексте реактивного программирования). Она используется для последовательного применения функций к данным.

Почему это важно?

Чистота
pipe работает с чистыми функциями, которые не изменяют исходные данные и возвращают новый результат. Это повышает предсказуемость кода.

Композиция
Вместо вложенных вызовов функций (когда результат одной функции передается в другую) pipe упрощает цепочку, делая её линейной.

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

Легкость модификации
Можно легко добавлять или удалять шаги в цепочке, не меняя структуру кода.

Как работает pipe?

pipe принимает несколько функций в качестве аргументов и применяет их слева направо к переданным данным. То есть результат одной функции передается как вход в следующую.

Пример реализации простого pipe

const pipe = (...functions) => (input) => 
functions.reduce((acc, fn) => fn(acc), input);

// Пример функций
const multiplyByTwo = (num) => num * 2;
const addThree = (num) => num + 3;
const square = (num) => num ** 2;

// Использование pipe
const processNumber = pipe(multiplyByTwo, addThree, square);

console.log(processNumber(5)); // ((5 * 2) + 3) ** 2 = 169


Использование в RxJS
В контексте RxJS pipe используется для работы с потоками данных, где через него можно передавать операторы, такие как map, filter, mergeMap и другие.
import { of } from 'rxjs';
import { map, filter } from 'rxjs/operators';

// Создаем поток данных
const numbers$ = of(1, 2, 3, 4, 5);

// Используем pipe для применения операторов
numbers$
.pipe(
filter((num) => num % 2 === 0), // Оставляем только четные
map((num) => num * 10) // Умножаем их на 10
)
.subscribe((result) => console.log(result));
// Вывод: 20, 40


👉 @seniorFront

Senior Frontend - javascript, html, css

09 Feb, 16:05


Пишем идеальную mobile-first галерею

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

👉 @seniorFront

Senior Frontend - javascript, html, css

09 Feb, 09:03


Highest and Lowest

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

Примеры:
highAndLow("1 2 3 4 5");   // return "5 1"
highAndLow("1 2 -3 4 5"); // return "5 -3"
highAndLow("1 9 3 4 -5"); // return "9 -5"


👉 @seniorFront

Senior Frontend - javascript, html, css

08 Feb, 16:02


Cylinders Grid

Это компонент из библиотеки Three.js, реализованный на canvas.

👉 @seniorFront

Senior Frontend - javascript, html, css

08 Feb, 09:04


CSS Liquid Effects

В этом видео создается эффект жидкости на HTML, CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

07 Feb, 10:30


Bounce Delay Loader

Оригинальный загрузчик, реализованный с использованием препроцессоров Haml и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

06 Feb, 17:10


Hover Effect

Параметры анимации задаются через JS при наведении.

👉 @seniorFront

Senior Frontend - javascript, html, css

02 Feb, 16:02


Почему перфоманс ревью это круто?

Какая-то когорта людей, услышав о внедрении перфоманс ревью, отреагирует резко негативно из‑за предубеждений о том, что это инструмент для увольнения неугодных. Кто‑то подумает об этом как о системе доносов на коллег, а сами доносчики будут еще и в числе «хороших полицейских» у руководства. А кто‑то не верит в эту инициативу и не тратит время. Я с этими убеждениями в корне не согласна и приведу ряд причин, по которым сама люблю перфоманс ревью.

👉 @seniorFront

Senior Frontend - javascript, html, css

02 Feb, 09:01


Find the odd int

В массиве целых чисел найдите то, которое встречается нечетное количество раз. Всегда найдется только одно целое число, которое встречается нечетное количество раз.

Пример:

[7]

Должно вернуть 7, потому что оно встречается 1 раз (что нечетно).
[0]

Должно вернуть 0, потому что оно встречается 1 раз (что нечетно).
[1,1,2]

Должно вернуть 2, потому что оно встречается 1 раз (что нечетно).
[0,1,0,1,0]

Должно вернуть 0, потому что оно встречается 3 раза (что нечетно).
[1,2,2,3,3,3,4,3,3,2,2,1]

Должно вернуть 4, потому что оно встречается 1 раз (что нечетно).

👉 @seniorFront

Senior Frontend - javascript, html, css

01 Feb, 16:02


Pokemon Slide Gallery

Реализовано без использования JS. Каждый покемон - это радио -кнопка, при нажатии на которую изменяется значение CSS переменной.

👉 @seniorFront

Senior Frontend - javascript, html, css

01 Feb, 09:03


How To Create Text Typing Effect

В этом видео создается эффект ввода текста на CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

31 Jan, 12:00


Check Spinner

Это SVG картинка, анимируемая в SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

30 Jan, 16:05


Crazy Fireworks

Создано и анимировано на canvas и чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

30 Jan, 09:03


IT-технологии в деле

👉 @seniorFront

Senior Frontend - javascript, html, css

29 Jan, 17:02


Smoke Cursor Effects

В этом видео создается эффект дыма, следующего за курсором на CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

29 Jan, 09:04


Nav icons with sliding indicator

При наведении задействуются CSS трансформации. При нажатии на элемент, на него навешивается класс active через JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

28 Jan, 16:05


Кэш. Теория кэширования. Устройство и разновидности кэша

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

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

👉 @seniorFront

Senior Frontend - javascript, html, css

28 Jan, 11:30


Уволился с позиции тимлида и снова стал разработчиком

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

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

+50% к нагрузке, +5% к зарплате
Тимлид постоянно держит в голове множество различных направлений: люди в команде, процессы, ресурсы, цели, бэклог — и это только часть. При этом иногда нужно ещё находить время на написание кода. На практике такая многозадачность полностью тебя поглощает: ты просыпаешься с мыслями о работе, гуляешь в парке — и снова думаешь о работе, ложишься спать — и в голове всё ещё крутятся цели команды и какое повышение попросить для разработчика из твоей команды.

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

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

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

А как же карьера?
Напрашивается очевидная мысль: тимлидство — это про карьерный рост. Сначала ты работаешь разработчиком, затем становишься тимлидом, потом кластер-лидом и прочими CTO. Я тоже раньше так думал, но какой процент тимлидов становится CTO? Думаю, что очень небольшой. У меня складывается ощущение, что этот путь далеко не так прост, как кажется. Чаще из тимлида ты можешь перейти только на аналогичную позицию в другую компанию с ЗП побольше в лучшем случае.

Что в итоге
Если ты работаешь разработчиком, то в твоей жизни всё гораздо проще. Нужно держать фокус только на нескольких задачах. Выполнил их — и сразу же выкинул из головы. Всё. Да, это менее многогранно, но, что самое забавное (или печальное), оплачивается такая работа примерно так же, а иногда даже выше.

👉 @seniorFront

Senior Frontend - javascript, html, css

27 Jan, 16:02


Image Slider Effect Website

Создано и анимировано в HTML и CSS. Логика переключения слайдов реализована в чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

27 Jan, 09:03


Что такое ООП?

Объектно-ориентированное программирование (ООП) — это парадигма, основанная на концепции "объектов", которые могут содержать данные (в виде полей или атрибутов) и код (в виде методов). Предоставляет структуру для организации программного кода в форме объектов, которые могут взаимодействовать друг с другом.

Основные концепции:

Классы и объекты
Это шаблон или "чертеж" для создания объектов. Класс определяет свойства (данные) и методы (функции), которые будут у объектов.
Объект: это экземпляр класса, который содержит реальные значения для свойств и может вызывать методы, определенные в классе.
class Animal {
constructor(name, species) {
this.name = name;
this.species = species;
}

speak() {
console.log(`${this.name} издает звук.`);
}
}

const dog = new Animal('Рекс', 'Собака');
dog.speak(); // Рекс издает звук.


Инкапсуляция

Это принцип скрытия внутреннего состояния объекта и предоставление доступа к нему только через методы. Это помогает защитить данные от некорректного использования и улучшает модульность кода.
class Person {
constructor(name, age) {
this.name = name;
let _age = age; // Приватное свойство

this.getAge = function() {
return _age;
}

this.setAge = function(newAge) {
if (newAge > 0) {
_age = newAge;
} else {
console.log('Возраст должен быть положительным числом.');
}
}
}
}

const person = new Person('Иван', 30);
console.log(person.getAge()); // 30
person.setAge(35);
console.log(person.getAge()); // 35


Наследование

Позволяет одному классу наследовать свойства и методы другого класса, что способствует повторному использованию кода и улучшает его организацию.
class Animal {
constructor(name) {
this.name = name;
}

speak() {
console.log(${this.name} издает звук.);
}
}

class Dog extends Animal {
speak() {
console.log(${this.name} лает.);
}
}

const dog = new Dog('Рекс');
dog.speak(); // Рекс лает.


Полиморфизм
Позволяет методам выполнять разные действия в зависимости от объекта, который вызывает этот метод. Это достигается через переопределение методов в классах-наследниках.
```javascript
class Animal {
speak() {
console.log('Животное издает звук.');
}
}

class Dog extends Animal {
speak() {
console.log('Собака лает.');
}
}

class Cat extends Animal {
speak() {
console.log('Кошка мяукает.');
}
}

const animals = [new Dog(), new Cat()];
animals.forEach(animal => animal.speak());
// Собака лает.
// Кошка мяукает.


Преимущества
- Улучшенная модульность: Классы и объекты позволяют разбивать код на отдельные, независимые части.
- Повторное использование кода: Наследование и полиморфизм способствуют повторному использованию кода.
- Упрощенное управление сложностью: Инкапсуляция помогает скрыть сложность реализации и предоставляет простой интерфейс для взаимодействия с объектами.
- Повышенная гибкость и расширяемость: Легко добавлять новые функции и изменять существующие без значительного переписывания кода.

👉 @seniorFront

Senior Frontend - javascript, html, css

26 Jan, 16:03


Архитектура фронтенд-приложений на React. (Нам не нужен FSD)

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

👉 @seniorFront

Senior Frontend - javascript, html, css

26 Jan, 09:02


Create Phone Number

Напишите функцию, которая принимает массив из 10 целых чисел (от 0 до 9) и возвращает строку этих чисел в виде номера телефона

Пример:

createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) // => returns "(123) 456-7890"


👉 @seniorFront

Senior Frontend - javascript, html, css

25 Jan, 16:05


Howl's Moving Castle

Создано и анимировано в JS, при помощи библиотеки TweenMax.

👉 @seniorFront

Senior Frontend - javascript, html, css

25 Jan, 09:09


Text Scramble

В этом видео создается эффект "перемешивания" текста при наведении на JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

24 Jan, 09:01


Travel Deal Card Hover Rotation Effect

Оригинальные карточки, реализованные на HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

23 Jan, 16:07


Slider UI Interaction

Слайдер, реализованный на Vue, стилизованный в SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

23 Jan, 09:09


Лучше б я сам

👉 @seniorFront

Senior Frontend - javascript, html, css

22 Jan, 17:09


Button Hover Animation

В этом видео создается кнопка с эффектом при наведении в стиле Netflix

👉 @seniorFront

Senior Frontend - javascript, html, css

22 Jan, 09:09


Wiggly Squiggly

Реализовано на TypeScript, анимировано при помощи библиотеки TweenMax.

👉 @seniorFront

Senior Frontend - javascript, html, css

20 Jan, 17:22


Falling Confetti

Реализовано на canvas и CoffeeScript.

👉 @seniorFront

Senior Frontend - javascript, html, css

20 Jan, 15:22


📱Просто Python — ваш верный спутник в мире IT

Канал senior-разработчика, где он на протяжении двух лет помогает специалистам из мира IT, публикуя слитые материалы и полезные практики:

Python - ( 170 уроков)
Flask - (122 уроков)
Git - (74 уроков)
OpenCV - (144 уроков)
Flask - (59 уроков)
GameDev - (137 уроков)
Pyramid - (96 уроков)
AIOgram - ( 34 уроков)
Ruff - (82 уроков)
HTTPX - (57 уроков)
Pyramid - (72 урока)
Django - (132 урока)
NumPy - (46 урока)
Pillow - (74 урока)
PyTorch - (32 урока)
Pymorphy2 - (42 урока)


Сохраняй канал, который сэкономит твое время на поиск информации🟫

Senior Frontend - javascript, html, css

20 Jan, 09:02


В чём разница между классической функцией и стрелочной?

Классические функции (объявленные через ключевое слово function) и стрелочные функции (введённые в ES6 через => синтаксис) являются двумя способами объявления функций, но между ними есть несколько важных различий:

Синтаксис

Классическая функция:
function add(a, b) {
return a + b;
}


Стрелочная функция:
const add = (a, b) => a + b;

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

Контекст this
В классических функциях контекст определяется тем, как функция была вызвана. В стрелочных функциях контекст наследуется из окружающего контекста (лексический контекст this), где функция была объявлена.

Пример с классической функцией:
const obj = {
id: 42,
counter: function() {
setTimeout(function() {
console.log(this.id); // this ссылается на глобальный объект или undefined в строгом режиме, а не на obj
}, 1000);
}
};


Пример со стрелочной функцией:
const obj = {
id: 42,
counter: function() {
setTimeout(() => {
console.log(this.id); // this корректно ссылается на obj, так как стрелочная функция наследует this из окружения
}, 1000);
}
};


Конструктор

Классические функции могут использоваться с помощью ключевого слова new. Стрелочные функции не могут быть использованы как конструкторы, и попытка это сделать приведет к ошибке.

Пример с классической функцией:
function Person(name) 
{
this.name = name;
}
const person = new Person("Alice");


Попытка использовать стрелочную функцию как конструктор:
const Person = (name) => {
this.name = name;
};
// const person = new Person("Alice"); // Ошибка: Person не является конструктором


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

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Jan, 16:02


Type VS Interface: разница есть, но не всегда

Эта статья — попытка дать максимально объективный взгляд на выбор между интерфейсами и типами, рассматривая их с точки зрения практики, возможностей и ограничений TypeScript.

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Jan, 09:02


count '9's from 1 to n

Я хочу сосчитать от 1 до n. Сколько раз встретится цифра "9"?

9, 19, 91... будут использовать по одной "9",
99, 199, 919... будут использовать по две "9"... и т.д.

Примечание: n всегда будет целым положительным числом.

Пример:
8  -> 0
9 -> 1
10 -> 1
98 -> 18
100 -> 20


👉 @seniorFront

Senior Frontend - javascript, html, css

18 Jan, 16:05


Simple switch with led indicator

Переключатель - это input type="checkbox", стилизованный в CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

18 Jan, 09:05


Stacked Cards

В этом видео создается стопка карточек, анимируемая при наведении на чистом CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

17 Jan, 09:06


Virtual Card

Банковские карты, свёрстанные на HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

16 Jan, 16:02


moon toggle

Оригинальный переключатель темы, реализованный на HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

16 Jan, 09:05


Фаундер стартапа с 7-ю подписчиками готовит свой сайт к одному миллиону посещений:

👉 @seniorFront

Senior Frontend - javascript, html, css

15 Jan, 17:03


Animated Text Background

В этом видео создается текст, следующий за курсором. Буквы генерируются в JS, а затем анимируются в CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

15 Jan, 09:09


Custom Slider

Оригинальный слайдер, анимированный библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Jan, 14:00


Как превратить свой пет проект из хобби в карьеру

В этой статье я хочу рассказать почему и как ваши pet-проекты могут стать ключом к развитию вашей карьеры и почему нельзя недооценивать важность pet-проектов.

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Jan, 09:02


Как перестать отвлекаться по мелочам, избавиться от прокрастинации и стать продуктивнее как минимум в 2 раза?

Если ты не можешь долго сконцентрироваться на одной задаче и часто отвлекаешься на что-то другое - то эта статья специально для тебя!

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

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

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

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

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

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

👉 @seniorFront

Senior Frontend - javascript, html, css

13 Jan, 16:03


Holiday Experiment

Анимация снега реализована в JS. Свёрстано на HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

13 Jan, 09:09


Как взаимодействуют frontend и backend ?

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

Архитектура взаимодействия
Фронтенд: Это часть веб-приложения, с которой взаимодействует пользователь. Она включает HTML, CSS и JavaScript, а также фреймворки и библиотеки, такие как React, Vue.js и Angular. Фронтенд отвечает за отображение данных, обработку событий и обеспечение интерактивности.

Бэкенд: Это серверная часть веб-приложения, которая управляет бизнес-логикой, обработкой данных и взаимодействием с базой данных. Бэкенд может быть написан на разных языках программирования, таких как C#, Python, Ruby, Java, PHP и других. Он включает веб-серверы, базы данных и API.

HTTP-запросы и ответы
Фронтенд и бэкенд взаимодействуют через HTTP-запросы и ответы. Фронтенд отправляет запросы на сервер (бэкенд), который обрабатывает их и отправляет ответы обратно на фронтенд.

Запрос данных:
- Фронтенд отправляет HTTP GET-запрос на сервер, чтобы получить данные.
- Бэкенд получает запрос, извлекает данные из базы данных и отправляет их обратно в виде JSON-ответа.
// Фронтенд (JavaScript с использованием Fetch API)
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log(data); // Обработка данных на фронтенде
})
.catch(error => {
console.error('Error:', error);
});


Отправка данных:
- Фронтенд отправляет HTTP POST-запрос на сервер с данными для создания нового ресурса.
- Бэкенд получает запрос, обрабатывает данные и сохраняет их в базе данных, затем отправляет ответ о статусе операции.
// Фронтенд (JavaScript с использованием Fetch API)
fetch('https://api.example.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ key: 'value' })
})
.then(response => response.json())
.then(data => {
console.log(data); // Обработка ответа на фронтенде
})
.catch(error => {
console.error('Error:', error);
});


WebSocket
Для взаимодействия в реальном времени между фронтендом и бэкендом используется WebSocket. Он позволяет устанавливать постоянное двустороннее соединение между клиентом и сервером, что полезно для приложений с обновлениями в реальном времени, таких как чаты или онлайн-игры.
// Фронтенд (JavaScript с использованием WebSocket API)
const socket = new WebSocket('ws://example.com/socket');

socket.onopen = () => {
console.log('WebSocket is open now.');
socket.send(JSON.stringify({ message: 'Hello Server!' }));
};

socket.onmessage = (event) => {
console.log('Received:', event.data);
};

socket.onclose = () => {
console.log('WebSocket is closed now.');
};


RESTful API и GraphQL

RESTful API: Это стиль архитектуры API, который использует стандартные HTTP методы (GET, POST, PUT, DELETE) для взаимодействия с ресурсами. Каждый ресурс идентифицируется уникальным URL, а данные передаются в формате JSON или XML.

GraphQL: Это язык запросов для API, который позволяет клиенту запрашивать именно те данные, которые ему нужны. В отличие от REST, где каждый ресурс имеет свой URL, в GraphQL есть единая точка доступа (endpoint), и запросы могут быть более гибкими и оптимизированными.

👉 @seniorFront

Senior Frontend - javascript, html, css

12 Jan, 16:08


Как я разрабатываю конвертер в 2024 (Frontend часть)

Меня зовут Руслан и я fullstack разработчик, я работаю над заказами и разрабатываю свои digital продукты. На данный момент я разрабатываю конвертер файлов, например картинок, png в webp, jpg в png и так далее. Итак, я решил поделиться этапами своей разработки, рассказать о своем опыте и показать, как шаг за шагом создаются собственные продукты. Именно в данной статье я буду писать только про frontend часть, так как, к разработке бэкенда еще не приступил.

👉 @seniorFront

Senior Frontend - javascript, html, css

12 Jan, 16:05


Backspaces in string

Предположим, что символ "#" - это как обратный пробел в строке. Это означает, что строка "a#bc#d" на самом деле является "bd" Ваша задача - обработать строку с символами "#".

Примеры
"abc#d##c" ==> "ac" 
"abc##d######" ==> ""
"#######" ==> ""
"" ==> ""


👉 @seniorFront

Senior Frontend - javascript, html, css

11 Jan, 12:30


Circular Navigation

Оригинальное меню, реализованное на HTML и CSS. Логика раскрытия создана в JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

11 Jan, 11:30


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

🤖 Ответы через топовые модели GPT-4o и GPT-4o-mini
🎨 Генерация изображений
📷 Распознавание фото
🗣️ Распознавание голосовых
🎙️ Озвучивание текстов

А еще...

🚫 Никакой рекламы и подписок на другие каналы
🆓 Бесплатная версия доступна всегда
🌟 Премиум-доступ на 7 дней всем новым пользователям

Начать пользоваться👉: @chatgpt

erid: 2W5zFJefG9v

Senior Frontend - javascript, html, css

11 Jan, 09:02


Glowing Gradient Border

В этом видео создается анимированная градиентная граница блока на CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

10 Jan, 09:04


Mouse animation

Реализовано на canvas и JS. Частицы генерируются и анимируются по событию mousemove.

👉 @seniorFront

Senior Frontend - javascript, html, css

09 Jan, 16:02


wavePercent

Это svg картинка, анимированная в SCSS. Число и параметры анимации задаются в JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

09 Jan, 09:02


Жизненно?

👉 @seniorFront

Senior Frontend - javascript, html, css

08 Jan, 17:02


Snowfall Animation Effects

В этом видео создается анимация снега на CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

08 Jan, 09:02


Snowflakes

Создано на canvas и JS. Анимировано библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

07 Jan, 16:05


JavaScript: Удобство или Угроза? Размышления о Приватности и Вебе

Интернет проник во все сферы жизни, вклад этой технологии в прогресс невозможно переоценить. Интернет-браузеры (Chrome, Firefox, Safari, Opera и т.д.) занимают топ среди инструментов "использования интернета", а сайты, которые посещают через эти браузеры — самый распространенный способ для обмена информацией.

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

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

👉 @seniorFront

Senior Frontend - javascript, html, css

07 Jan, 09:02


Почему ваш мозг нуждается в «даунтайме»: история одного разработчика

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

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

Как мы это решили
Причиной всего вышеперечисленного оказался хронический недосып. Первое, что мы сделали, это начали отслеживать его распорядок дня, записывая, сколько времени уходит на работу, отдых, еду и сон. На первый взгляд это может показаться скучным упражнением, но результаты оказались шокирующими: сну он уделял всего 4 часа в сутки — меньше, чем он тратил на чтение комментариев в чужом коде.

Через неделю юноша вернулся с электронным отчетом, где были таблицы и графики.
Вот тут началась настоящая трансформация. Мы разобрали его график, как код — построчно. Он заметил, что на бессмысленные задачи уходит уйма времени: бездумный скроллинг соцсетей, обсуждение мемов в рабочих чатах, бесконечный «еще один баг, и точно спать».

Мы начали с небольших, но значимых шагов: сначала убрали из его дня 2 часовой скроллинг соцсетей, затем заменили обсуждение мемов в рабочих чатах полноценным сном. Постепенно его распорядок стал меняться, как будто мы оптимизировали код — строка за строкой, убирая лишнее и добавляя важное.

Главное правило, которое мы внедрили: сон — это не роскошь, а необходимость. Минимум 7 часов сна, и не важно, как горят дедлайны. «Лучше выспаться и решить проблему за час, чем работать всю ночь и полдня разбираться в собственных ошибках», — эта фраза стала для него девизом.

Сон — это не потерянное время, а вложение в вашу эффективность и качество жизни. Дайте своему «процессору» возможность работать на полную мощность, регулярно выключая его на ночной «даунтайм». Ведь в мире, где всё автоматизируется, даже айтишники остаются людьми, которым нужен отдых.

👉 @seniorFront

Senior Frontend - javascript, html, css

06 Jan, 14:40


Happy Christmas!

Карточка-поздравление с Рождеством, свёрстанная на HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

06 Jan, 12:40


⚡️ В сети начали массово сливать курсы и книги известных онлайн школ

Вот отсортированная база с тонной материала(постепенно пополняется):

БАЗА (4687 видео/книг):

(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(174 видео, 91 книги) — DevOps
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL/БД
(163 видео, 29 книги) — Linux
(107 видео, 43 книги) — СисАналз
(181 видео, 32 книги) — Go
(167 видео, 43 книги) — Kotlin/Swift
(112 видео, 24 книги) — Flutter
(137 видео, 93 книги) — DS/ML
(113 видео, 82 книги) — GameDev
(183 видео, 37 книги) — UI/UX
(129 видео, 73 книги) — QA
(213 видео, 63 книги) — Rust
(121 видео, 24 книги) — Ruby

Скачивать ничего не нужно — все выложили в Telegram

Senior Frontend - javascript, html, css

06 Jan, 09:04


В чём разница в работе eventloop на сервере и в браузере?

Это механизм, используемый для обработки и выполнения асинхронных операций. Он позволяет JavaScript выполнять неблокирующие операции, несмотря на то, что JavaScript является однопоточным. Хотя принципы работы Event Loop в браузере и на сервере (например, в Node.js) схожи, есть некоторые важные различия в их реализации и окружении.

Event Loop в браузере
В браузере Event Loop отвечает за обработку событий, выполнение асинхронного кода и обновление пользовательского интерфейса.

DOM и рендеринг
Браузер должен обновлять и перерисовывать пользовательский интерфейс. Это включает в себя обработку изменений в DOM и применение стилей. Рендеринг обычно происходит между итерациями Event Loop.

Очередь макрозадач
Включает такие задачи, как обработка пользовательских событий (нажатие кнопок, ввод текста), setTimeout, setInterval, сетевые запросы (XHR, fetch) и другие. Эти задачи обрабатываются в порядке их поступления.

Очередь микрозадач
Включает такие задачи, как промисы (Promise), MutationObserver. Микрозадачи выполняются перед макрозадачами в рамках одной итерации Event Loop.

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

Event Loop в Node.js
Node.js, как серверная платформа, использует Event Loop для обработки асинхронных операций, таких как I/O, таймеры и сетевые запросы.

Фазы Event Loop
Node.js Event Loop состоит из нескольких фаз, каждая из которых обрабатывает определённые типы задач: timers, I/O callbacks, idle, poll, check, и close callbacks.

- Timers - Эта фаза обрабатывает колбэки от setTimeout и setInterval.
- I/O callbacks - Обрабатывает почти все колбэки от асинхронных операций ввода-вывода, за исключением close callbacks, таймеров и setImmediate.
- Poll Извлекает новые I/O события; выполняет I/O-колбэки (почти все, за исключением тех, которые закроют сервер); и если ничего не происходит, ждет в этой фазе.
- Check - Обрабатывает колбэки от setImmediate.
- Close callbacks - Обрабатывает колбэки от закрытия всех I/O операций.
- Microtasks (process.nextTick и Promises) - Выполняются после каждой фазы Event Loop, перед переходом к следующей фазе

Различия

Окружение
В браузере Event Loop управляет как асинхронными задачами, так и обновлением пользовательского интерфейса. В Node.js Event Loop больше ориентирован на обработку I/O операций и серверных задач.

Фазы Event Loop
В браузере Event Loop менее детализирован по фазам по сравнению с Node.js. В Node.js Event Loop разделён на более детализированные фазы для обработки различных типов асинхронных задач.

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

Рендеринг

В браузере Event Loop включает в себя шаги, связанные с рендерингом и обновлением DOM. В Node.js этого аспекта нет, так как он работает на сервере и не имеет дела с рендерингом пользовательского интерфейса.

👉 @seniorFront

Senior Frontend - javascript, html, css

05 Jan, 16:01


Чистая архитектура фронтенд приложений.

За свою карьеру я встречал достаточно много проектов, крупных и малых, которые страдали от огромной и запутанной кодовой базы с высоким уровнем зацепления и малой связностью, непонятной структурой, в которую весьма сложно погрузиться (на онбродинг нового сотрудника может уходить до трех месяцев) и большим количеством непонятных и громоздких компонентов, которые являются god object'ами. Стоит ли говорить, что у таких проектов имеются большие проблемы с поддержкой и развитием.

Зачастую, в ответ на вопрос "почему так?" можно услышать разнообразные оправдательные ответы, которые, в основном, ссылаются на сжатые сроки, частые продуктовые изменения и первичность продукта перед качеством кодовой базы. И большая доля правды в этом есть, но, что, если я скажу, что можно усидеть сразу на нескольких стульях и от этого выиграют все, от менеджеров до разработки? И это гораздо проще, чем кажется. Естественно, универсального решения нет, но можно существенно облегчить жизнь в будущем себе или своим потомкам.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

05 Jan, 09:07


Проверка объединенных строк

На собеседовании вам предстоит написать алгоритм, проверяющий, может ли строка(s), быть сформирована из двух других строк, part1 и part2.

Ограничение состоит в том, что символы в part1 и part2 должны располагаться в том же порядке, что и в s.

Пример:
'xcyc', 'xc', 'yc' —> // true
'xcyc', 'yc', 'xc' —> // true
'codewars', 'code', 'wars' —> // true
'codewars', 'cdwr', 'oeas' —> // true
'codewars', 'code', 'code' —> // false


👉 @seniorFront

Senior Frontend - javascript, html, css

04 Jan, 16:03


Pure CSS Playing Card

Реализовано без использования картинок и JS, задействованы только HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

04 Jan, 09:02


Modern Javascript Button Hover Animation Effects

В этом видео создается кнопка, анимированная при наведении. В JS генерируются полосы, которые анимируются в CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

03 Jan, 09:03


Био-кнопка

Кнопки с оригинальным эффектом при наведении на HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

02 Jan, 16:02


Page flip

Создано и анимировано на HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

02 Jan, 09:02


Муд в понедельник: «продуктивные» зумы с коллегами на пару часов.

Ну не работать же после выходных!

👉 @seniorFront

Senior Frontend - javascript, html, css

01 Jan, 17:02


CSS Transforming Circle Loader

В этом видео создается анимированный загрузчик на чистом CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

01 Jan, 09:03


Text Fade In

Стилизовано и анимировано в HTML и SCSS. При скроле активируются определенные CSS классы через JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

31 Dec, 16:02


Почему ИИ-инструменты для разработчиков не оправдывают ожиданий

«Искусственный интеллект сделает разработчиков ненужными», — говорили они. И вот мы в 2 часа ночи занимаемся отладкой кода, сгенерированного искусственным интеллектом. Что пошло не так?

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

Итак, в чём же эти ИИ-инструменты для разработчиков оказываются неэффективными? Почему написание кода с использованием искусственного интеллекта оказалось не тем, чем мы все ожидали? И, что важнее всего: как мы можем его использовать, чтобы на самом деле облегчить свою работу?

👉 @seniorFront

Senior Frontend - javascript, html, css

31 Dec, 09:06


Корпоративный револьвер: как айтишнику выживать в корпорации

С одной стороны корпорации желают от IT выполнения целей и соблюдения планов, обложенных OKR, KPI и другими словами. С другой — работы с влетами. Здесь мы и достаем револьвер. Команда — это револьвер. Емкость барабана — емкость команды в спринте. Или в квартале, это как договоритесь. Патроны — задачи. Задачи делятся на классы. Заряжаете в команду задачи разных классов в разных пропорциях и стреляете. Например, для восьмиразрядного револьвера вы берете пять целевых задач, одну поддержку, один техдолг, один влет.

Внедрение метода — подготовка
Со второго квартала разработки приходите к бизнесу и говорите: вот квартальная емкость команды, вот оценка предполагаемых целей. Давайте договоримся, какие цели берем.
Почему со второго? Потому что в первом во многих корпорациях нет статистики производительности, нет понимания, кто из бизнеса решает. Требования могут постоянно меняться. А также есть масса других сюрпризов. Первый квартал — это путь воина. В промежутках между атаками проявляются цели второго квартала.

Действие
Допустим, к концу первого квартала команда вышла на плато производительности. Это не всегда так, но допустим. Тогда легко прикинуть емкость второго квартала для целевых задач.
Как известно, прозрачность коммуникаций, конструктивная обратная связь, сотрудничество и гибкость — ключ к успеху. Так оно и есть, ну вы поняли. Поэтому приходите к бизнесу, приносите фактуру по первому кварталу и показываете расклад по второму: всего шесть патронов: четыре выстрела — по целям, один — в поддержку. Последний — на влеты.

Пули вылетели. А что в итоге?
Получите плюсики в карму за цели, потому что вы придерживаетесь плана, как атомные часы. А также плюсики за влеты.

Ведь несмотря на постоянный цейтнот, вы в итоге всегда выполняете обещанное. Да, иногда могут быть задержки. Но именно они спасут вас от подозрений, что вы перезаложились по времени или взяли «недостаточно амбициозные» цели.

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

В общем, именно так в корпорации можно пользоваться револьвером.

👉 @seniorFront

Senior Frontend - javascript, html, css

30 Dec, 16:03


Invitation

Сверстано на HTML и SCSS. Логика переключения экранов реализована на чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

30 Dec, 09:02


Как сделать анимацию бесконечно повторяющейся?

Чтобы создать бесконечно повторяющуюся анимацию в CSS, используется свойство animation вместе с параметром infinite, который указывает, что анимация должна повторяться бесконечно.

Основные шаги
1. Определение ключевых кадров анимации
с помощью @keyframes.
2. Применение анимации к элементу с использованием свойства animation и указанием параметра infinite.

Пример использования

Сначала создайте анимацию с ключевыми кадрами. Допустим, мы хотим, чтобы элемент плавно изменял цвет и возвращался к исходному состоянию.
@keyframes changeColor {
0% {
background-color: lightblue;
}
50% {
background-color: lightgreen;
}
100% {
background-color: lightblue;
}
}


Теперь применим эту анимацию к элементу и укажем, что она должна повторяться бесконечно.
.animated-box {
width: 100px;
height: 100px;
background-color: lightblue;
animation: changeColor 3s infinite;
}


Зачем это нужно

- Эффекты на сайте
Бесконечные анимации могут использоваться для создания привлекательных визуальных эффектов на сайте, таких как мерцание, изменение цвета или вращение элементов.
- Интерактивность
Такие анимации могут сделать пользовательский интерфейс более динамичным и интересным.

👉 @seniorFront

Senior Frontend - javascript, html, css

29 Dec, 16:03


Архитектура фронтенда, к которой мы пришли

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

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

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

👉 @seniorFront

Senior Frontend - javascript, html, css

29 Dec, 09:03


Extract the domain name from a URL

Напишите функцию, которая при задании URL-адреса в виде строки анализирует только имя домена и возвращает его в виде строки

Пример:
"http://google.com" //  "google"
"http://google.co.jp" // "google"
"www.xakep.ru" // "xakep"
"https://youtube.com" // "youtube"


👉 @seniorFront

Senior Frontend - javascript, html, css

28 Dec, 16:02


Search Bubbles

Реализовано на canvas, анимировано библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

28 Dec, 09:02


Floating Menu

В этом видео создается "парящее" меню на HTML, CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

27 Dec, 09:04


Menu Transition

Подборка анимированных бургер-кнопок, реализованных с использованием препроцессоров Slim и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

26 Dec, 16:05


Interactive Christmas Tree

Вся сцена - это SVG картинка, анимированная библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

26 Dec, 09:03


Любой проджект, объясняющий задачу

👉 @seniorFront

Senior Frontend - javascript, html, css

25 Dec, 17:02


Stack Card Hover Effect

В этом видео создается эффект стопки карт на чистом CSS при помощи свойства box-shadow с множеством значений.

👉 @seniorFront

Senior Frontend - javascript, html, css

25 Dec, 09:02


<pixel-canvas>

При наведении отображается Web Component, реализованный на чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

24 Dec, 16:02


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

Хотите создать резюме, которое не только выделится среди сотен других, но и успешно пройдёт ATS-системы, приведя вас к собеседованиям и лучшим офферам? Эта статья покажет, как раскрыть ваши сильные стороны и уверенно преодолеть этап скоринга. А в завершение вас ждут полезные бонусы — готовые шаблоны!

👉 @seniorFront

Senior Frontend - javascript, html, css

24 Dec, 12:00


Хотели узнать больше про инженерную команду Selectel?
Спешим познакомить вас с новым проектом ребят!

На этой страничке вы найдете:

— Ключевые принципы, на которые инженеры Selectel опираются в работе
— Подробную информацию о жизни ребят в компании: как устроены процессы и какие технологии используются
— Чем живут технические комьюнити

А также познакомитесь с базой знаний инженеров: докладами и статьями на Хабре!

Скорее переходите и читайте😉

Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqwiYM4W

Senior Frontend - javascript, html, css

24 Dec, 09:02


Карьера в ИТ: выгорание, потолок и ожидания рынка

Где потолок развития в IT?
Для IT-специалистов момент, когда становится сложно понять, куда расти дальше, наступает довольно часто. Потолок развития ощущается, когда специалист перестает видеть четкую траекторию дальнейшего роста или не знает, какие именно навыки нужно развивать для перехода на следующий уровень.
На практике потолок чаще всего не внешний, а внутренний. Люди боятся брать на себя новые задачи, которые требуют навыков, выходящих за рамки их опыта. Это как шаг в неизвестность: никогда не знаешь, насколько успешно ты справишься, пока не попробуешь. Но именно это испытание позволяет по-настоящему расти.

Что делать, если уткнулся в потолок?
Когда я сам сталкивался с вопросами профессионального роста, мне помогало расширение кругозора. На мой взгляд, лучший способ преодолеть профессиональные ограничения — погрузиться в смежные области. Это позволяет взглянуть на работу с новой стороны.
Запуск собственных небольших проектов — еще один способ выйти за рамки. Когда ты ведешь проект от идеи до реализации, ты буквально чувствуешь на себе всю цепочку: анализ рынка, продумывание концепции, построение MVP, тестирование гипотез, сбор обратной связи.

Главные вызовы IT-специалистов сегодня
Для IT-специалистов сегодня особенно актуальны два вызова.

1. Быстрое обучение. Технологии меняются настолько стремительно, что навыки, актуальные год назад, могут устареть уже сегодня. Чтобы оставаться на гребне волны, нужно не просто учиться, но делать это осмысленно: понимать, как применять новые знания в реальных проектах.
2, Умение оптимизировать свою работу. Современный рынок не терпит неэффективности. Сегодня важно минимизировать рутину, грамотно использовать готовые инструменты, будь то open-source решения или платформа low-code.

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

Что будет с IT-рынком в обозримом будущем?
В ближайшие годы IT-рынок будет развиваться под влиянием трех ключевых трендов:

1. Локализация. На первый план выйдут решения, адаптированные под локальные рынки, что потребует от специалистов глубокого понимания специфики различных стран.

2. Суперприложения. Продукты, объединяющие разные функции в одном интерфейсе, становятся все популярнее. Сегодня есть потребность в «палочка-выручалочке» – одном приложении, которое саккумулировало бы в себе максимум сервисов. Спрос стоит на гибкость — клиенты ожидают универсального решения на стыке технологий, бизнеса и психологии.

Создание таких приложений требует высокой гибкости в проектировании и интеграции технологий.

3. Искусственный интеллект. AI станет не просто инструментом, а неотъемлемой частью большинства процессов. Умение интегрировать его в рабочие процессы будет ключевым навыком.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

23 Dec, 16:02


Interactive sunny-side pattern

Реализовано на canvas, анимировано библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

23 Dec, 09:06


Что такое цепочка прототипов?

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

Основные концепции:

Прототипы
Каждый объект в JavaScript имеет свойство __proto__ (или скрытое свойство [[Prototype]]), которое указывает на его прототип. Прототип — это другой объект, от которого объект наследует свойства и методы. Объекты могут быть созданы с использованием конструктора, и все объекты, созданные одним и тем же конструктором, наследуют от одного и того же прототипа.

Цепочка прототипов
Если свойство или метод не найдено у объекта, JavaScript будет искать его в прототипе объекта. Этот процесс продолжается вверх по цепочке прототипов до тех пор, пока не будет найдено свойство или не будет достигнут конец цепочки (обычно это Object.prototype). Если свойство не найдено в цепочке прототипов, результатом будет undefined.

Рассмотрим простой пример, чтобы проиллюстрировать, как работает цепочка прототипов: В этом примере myDog наследует метод speak от Animal.prototype и метод bark от Dog.prototype. Когда вызывается myDog.speak(), JavaScript сначала ищет метод speak в myDog. Поскольку его там нет, он переходит к Dog.prototype, где тоже его не находит, и затем переходит к Animal.prototype, где метод speak найден и выполняется.
// Создаем объект Animal
function Animal(name) {
this.name = name;
}

Animal.prototype.speak = function() {
console.log(`${this.name} издает звук.`);
};

// Создаем объект Dog, который наследует от Animal
function Dog(name, breed) {
Animal.call(this, name); // Вызов конструктора Animal
this.breed = breed;
}

Dog.prototype = Object.create(Animal.prototype); // Наследование прототипа Animal
Dog.prototype.constructor = Dog; // Восстановление конструктора Dog

Dog.prototype.bark = function() {
console.log(`${this.name} лает.`);
};

const myDog = new Dog('Рекс', 'Лабрадор');

myDog.speak(); // Рекс издает звук.
myDog.bark(); // Рекс лает.


Особенности

Прототипы по умолчанию
Все объекты, созданные с использованием литерала объекта {}, имеют в качестве прототипа Object.prototype. Все функции, включая функции-конструкторы, имеют свойство prototype, которое указывает на прототип объектов, созданных этой функцией.

Изменение прототипа объекта
Прототип объекта можно изменить с помощью метода Object.setPrototypeOf(), но это не рекомендуется из-за потенциальных проблем с производительностью.
const cat = {
meow() {
console.log('Мяу!');
}
};

const myCat = Object.create(cat);
myCat.name = 'Мурка';
myCat.meow(); // Мурка мяукает.

Object.setPrototypeOf(myCat, {});
myCat.meow(); // Ошибка, так как метод больше не существует в цепочке прототипов


👉 @seniorFront

Senior Frontend - javascript, html, css

22 Dec, 16:02


JavaScript-фреймворки и библиотеки, на которые стоит обратить внимание в 2025 году

Сегодня поделюсь подборкой фреймворков и библиотек, которые могут быть полезны JavaScript-разработчику. О самых известных, вроде React, Vue.js, Next.js, говорить не буду, о них и так все знают. Вместо этого предлагаю посмотреть менее популярные инструменты. Если вы пользуетесь другими фреймворками и библиотеками, которые не вошли в подборку — пишите о них в комментариях. Поехали!

👉 @seniorFront

Senior Frontend - javascript, html, css

22 Dec, 09:03


Найдите гласные

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

Пример:
Mmmm  => []
Super => [2,4]
Apple => [1,5]
YoMama -> [1,2,4,6]


👉 @seniorFront

Senior Frontend - javascript, html, css

21 Dec, 16:03


Swiper

Логика работы карусели реализована библиотекой Swiper. Анимации созданы библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

21 Dec, 09:02


Simple Radial Menu

В этом видео создается круговое меню на CSS и чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

20 Dec, 09:01


Switch Day and Night - Cat

Реализовано на чистом CSS. При активации переключателя задаются стили по псевдо-классу :checked

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Dec, 16:05


Navigation Cursor Effect

Логика перемещения курсора реализована в JS. Стилизовано в CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Dec, 09:04


Ответ был найден быстро

👉 @seniorFront

Senior Frontend - javascript, html, css

18 Dec, 17:02


Custom Checkbox Design

В этом видео создаются реалистичные переключатели на чистом CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

18 Dec, 09:02


Day and Night

Свёрстано на HTML и SCSS. Анимировано библиотекой TweenMax.

👉 @seniorFront

Senior Frontend - javascript, html, css

17 Dec, 16:07


Начало работы с тестированием производительности на TypeScript с использованием K6

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

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

👉 @seniorFront

Senior Frontend - javascript, html, css

06 Dec, 12:00


Вы уже работаете с JavaScript?
А вы сможете пройти тест для PRO?
https://otus.pw/3Xxr/

📚Получите актуальные навыки на практике,
используя привычные подходы.
— Node.js, Angular, React.js и Vue.js уже ждут вас на онлайн-курсе «JavaScript Developer. Professional» от OTUS.

🔥Пройдите тестирование, чтобы:
- Оценить свои навыки
- Получить курс по специальной цене после успешного прохождения теста
- Получить доступ к бесплатным урокам курса от OTUS

👉Ссылка на тест: https://otus.pw/3Xxr/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 erid 2SDnjcq5GZh

Senior Frontend - javascript, html, css

06 Dec, 09:02


Super charger

Реализовано и анимировано на HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

05 Dec, 16:02


Background Line Animation

Реализовано при помощи библиотеки slick-carousel. Свёрстано на чистых HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

05 Dec, 10:30


Отправляй своему руководителю

👉 @seniorFront

Senior Frontend - javascript, html, css

05 Dec, 06:30


Требуются парни и девушки в возрасте 19–40 лет, желающие работать в сфере IT.

Опыт в программировании не нужен.

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

За 7 дней обучения ты:


1. Создашь полноценный веб-сайт на HTML и CSS;
2. Оживишь страницу с помощью JavaScript;
3. Используешь фронтенд-фреймворк Angular;
4. Подключишь Backend и загрузишь сайт на хостинг;
5. Получишь советы по доработке своего проекта;
6. Узнаешь сколько можно зарабатывать и как работать;
7. Получишь в подарок чек-лист «45 мест для поиска работы».

А главное, ты увидишь, что разрабатывать сайты и приложения не так сложно, как кажется. И поймёшь, как тебе развиваться в этой профессии, чтобы уже в следующем году зарабатывать от 1000$ на вёрстке сайтов.

👉 Проскочить на интенсив бесплатно

🔥 С нас обучение, практика и помощь с выходом на фриланс.

Senior Frontend - javascript, html, css

04 Dec, 16:01


Animated Click Effect

В этом видео создается анимация, запускаемая по клику на CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

04 Dec, 12:00


Как подготовиться к собеседованию и переехать в другую страну? Что делать, если выгорание близко и работа совсем не радует? Как вкатиться в IT за полгода, если тебе уже за 30?

Ответы на эти вопросы — в канале «Люди и код». Команда канала беседует с опытными и начинающими разработчиками и программистами, находит интересные и неожиданные темы и помогает влюбиться в IT. Про мемы и конкурсы тоже не забываем :) А ещё у нас есть подкаст, послушать его можно по этой ссылке.

Наши любимые материалы:

1. Как грамотно начать свой путь в IT в России в современных условиях?
2. Кто такой DevRel? Чем он занимается и сколько зарабатывает?
3. Какие игры помогут прокачаться в программировании? Подборка.
4. Как транзисторы перевернули наш мир: большой спецпроект
5. Как программисту пройти собеседование. 6 советов.
Подписывайтесь на канал «Люди и код»: @skillbox_media_code

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880 erid:2VtzqwECa4f

Senior Frontend - javascript, html, css

04 Dec, 09:09


SVG Animation Using Animation Element

Вся сцена - это SVG картинка, анимируемая при помощи SVG animate.

👉 @seniorFront

Senior Frontend - javascript, html, css

03 Dec, 16:07


Отцы и дети: как привычки пользователей из разных поколений влияют на ваш продукт

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

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

👉 @seniorFront

Senior Frontend - javascript, html, css

03 Dec, 09:01


Как общаться с руководителем

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

Первое. Не теряйте ответственности по дороге
Всю дорогу стараюсь донести до своих разработчиков мысль, что задача (таск в Джире) — это их зона ответственности вплоть до попадания кода в прод. Хотя деплоит в прод за редким исключением не разработчик.

Антипример.
— (на дэйлике) Разработчик Васенька, скоро уж страшный зим катит глаза, в смысле, окончание спринта, что у тебя вот с тобой задачкой на 6 человеко-часов?
— Ой, а я же тебе на позапрошлом дэйлике сказал, что Луна в Третьем доме, поэтому на неё забил…
— (немая сцена)

Что пошло не так? Исполнитель неявно спихнул ответственность за свою часть работы на руководителя: пусть Папа Римский помолится за всех нас! Не произошло явной передачи (это когда обе стороны понимают, кто теперь тащит задачу, и фиксируют договорённость где-то, хоть в той же Джире). У подчинённого возникла иллюзия, что если он проговорил вслух о своей проблеме, то добрая фея уже прилетела и всё решила за него.

Второе. Старайтесь не общаться с марсианами
Этот пункт развивает мысль, начатую в первом. Иногда, особенно при разборе какого-то факапа, разработчик начинает говорить о задаче отстранённо: «в коде появилось...», «в ветку влилось...», «в прод залили...». Мой руководитель иногда перебивает такое повествование вопросом: «Кто, марсиане залили?»

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

Третье. Вместе с жалобой приносите проект решения
Конечно, эмоции важны, и совершенно естественно прийти к руководителю со словами «да конём оно...», в смысле «мсье, я обескуражен наметившейся тенденцией». Но ведь вы не только хотите спустить пар, но и, как ответственный исполнитель, решить проблему? — Тогда помогите своему руководителю (самые хитрые тут даже начинают направлять его усилия в нужную им сторону не только по поводу одной задачи, но это отдельное искусство)!

Четвёртое. Руководитель — ваш рычаг, ваш бустер, ваш джинн из бутылки
Частенько люди пишут, мол, я что, нанимался ещё и требования писать, и код тестировать? Я хочу, чтобы мне просто приносили ТЗ, а я просто пилил код, отстаньте от меня все!

Я уважаю такую позицию: есть много людей, которые не хотят развиваться, выходить за однажды установленные кем-то рамки. Им нужно дать возможность работать согласно договора / контракта с фирмой, и поставить нормальный рабочий процесс — прямейшая обязанность руководителя.

Однако, если вы задумываетесь над саморазвитием, ростом куда-то вверх, вбок или вглубь, вам просто интересно что-то поменять, то ваш первый и главный союзник — не курсы по прокачиванию чакр, не джобхоппинг и не личная суперхаризма, а именно ваш руководитель. Поднесите ему идею, заразите сомнением, дайте намёк на решение, наконец, сделайте так, чтобы он подумал, что это его собственная идея (задача со звёздочкой для самых хитрых подчинённых) — и всё, теперь он играет за вас, а влияния в компании у него больше!

Пятое. Доверие — основа общения
И наконец, пункт, который говорит о базе, на которой строится взаимодействие. Тут не про его осуществление, а про подготовку. Люди, как и все другие социальные существа, постоянно «обнюхивают» друг-друга, то есть стараются построить более-менее точную картину насчёт того человека, с кем они имеют дело.

👉 @seniorFront

Senior Frontend - javascript, html, css

02 Dec, 16:01


Supercharged CSS with Anchor Positioning

Реализовано при помощи CSS anchor. Анимировано библиотекой gsap. Перемещения созданы библиотекой Draggable.

👉 @seniorFront

Senior Frontend - javascript, html, css

02 Dec, 12:00


Хотите создать свою первую веб-страницу с нуля? Без магии и кодерских заклинаний — только HTML, CSS и ваши идеи!

👉 На открытом вебинаре «Создаем свою первую страницу: HTML и CSS» вы узнаете, как работают основные элементы веб-разработки: от структуры HTML до современной стилизации с CSS.

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

💪 Это ваш шанс научиться веб-разработке, используя простой и мощный инструментарий. Уже на вебинаре вы создадите свою первую веб-страницу — с текстом, картинками и уникальным дизайном!

Регистрируйтесь на открытый урок 3 декабря в 19:00 мск! Урок проходит в преддверии старта курса «Fullstack Developer», участники вебинара получат скидку на обучение.

👉 Для участия зарегистрируйтесь: https://vk.cc/cFAkcC

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru erid 2SDnjeQxUcb

Senior Frontend - javascript, html, css

02 Dec, 09:02


Какие бывают utility types в TypeScript ?

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

Partial
Делает все свойства типа T необязательными.
interface User {
id: number;
name: string;
email: string;
}

const updateUser = (id: number, userUpdates: Partial<User>) => {
// Обновление пользователя
};

updateUser(1, { name: 'Alice' }); // Можно передать только часть свойств


Required
Делает все свойства типа T обязательными.
interface User {
id?: number;
name?: string;
email?: string;
}

const user: Required<User> = {
id: 1,
name: 'Alice',
email: '[email protected]'
}; // Все свойства должны быть указаны


Readonly

Делает все свойства типа T только для чтения.
interface User {
id: number;
name: string;
email: string;
}

const user: Readonly<User> = {
id: 1,
name: 'Alice',
email: '[email protected]'
};

user.id = 2; // Ошибка: свойство id доступно только для чтения


Pick

Создает тип с набором свойств K из типа T.
interface User {
id: number;
name: string;
email: string;
}

const user: Pick<User, 'id' | 'name'> = {
id: 1,
name: 'Alice'
}; // Только свойства id и name


Omit

Создает тип, исключающий свойства K из типа T.
interface User {
id: number;
name: string;
email: string;
}

const user: Omit<User, 'email'> = {
id: 1,
name: 'Alice'
}; // Все свойства, кроме email


Record
Создает тип объекта, ключи которого из K, а значения типа T.
type Roles = 'admin' | 'user' | 'guest';

const roles: Record<Roles, string> = {
admin: 'Admin User',
user: 'Regular User',
guest: 'Guest User'
};


Exclude

Создает тип, исключая из T те типы, которые находятся в U.
type T = 'a' | 'b' | 'c';
type U = 'a';

type Result = Exclude<T, U>; // 'b' | 'c'


Extract

Создает тип, включающий только те типы из T, которые также находятся в U.
type T = 'a' | 'b' | 'c';
type U = 'a' | 'c';

type Result = Extract<T, U>; // 'a' | 'c'


NonNullable
Исключает null и undefined из типа T.
type T = string | number | null | undefined;

type NonNullableT = NonNullable<T>; // string | number


ReturnType

Получает тип возвращаемого значения функции T.
function getUser() {
return { id: 1, name: 'Alice' };
}

type User = ReturnType<typeof getUser>; // { id: number, name: string }


👉 @seniorFront

Senior Frontend - javascript, html, css

01 Dec, 16:03


Ты — ненастоящий айтишник / Дедовщина в IT

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

Гейткиперы — самопровозглашённые эксперты, уверенные в своем эксклюзивном праве делить людей на достойных и неугодных. Мешая новичков с грязью, они пытаются доказать, что те — нежелательные пассажиры. И в высшую касту настоящих инженеров им вход закрыт. В этой статье я вычленил из недовольного бухтения конкретные претензии и показал их несостоятельность.

👉 @seniorFront

Senior Frontend - javascript, html, css

01 Dec, 09:02


Remove the parentheses

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

Примечания
Кроме круглых скобок в строке могут встречаться только буквы и пробелы. Не беспокойтесь о других скобках, таких как "[]" и "{}", так как они никогда не появятся. Круглых скобок может быть несколько. Круглые скобки могут быть вложенными.

Пример:
removeParentheses("a (bc d)e") => "a e"
removeParentheses("a(b(c))") => "a"


👉 @seniorFront

Senior Frontend - javascript, html, css

30 Nov, 16:03


Navigation Button Interaction

Анимация переключения между кнопками реализовано при помощи библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

30 Nov, 09:02


Cursor Move Effects

В этом видео создается эффект проявления картинки при наведении курсора на чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

29 Nov, 13:00


CSS Illustration - Bicycle

Анимированная иллюстрация на HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

28 Nov, 16:02


Music App Interaction

Свёрстано на HTML и CSS. Анимировано библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

28 Nov, 09:03


Когда разработчик видит своё приложение у кого-то на телефоне:

👉 @seniorFront

Senior Frontend - javascript, html, css

27 Nov, 17:02


Amazing Button Hover Effect

В этом видео создается эффект при наведении на кнопку на CSS и чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

27 Nov, 09:02


Nav Buttons

Оригинальные кнопки меню, реализованные на HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

26 Nov, 15:00


Словарь программисткого жаргона без англицизмов

Часто можно встретить словари «программистского жаргона», однако они как правило на 90% состоят из англицизмов. Это не так интересно, поскольку англицизмов можно создать бесконечное количество и они появляются новые каждый день пачками.

Мне интересно было составить «чисто русский словарь», состоящий в основном из омонимов, то есть слов, использующихся в ином значении.

Дополнения и правки приветствуются )

👉 @seniorFront

Senior Frontend - javascript, html, css

26 Nov, 11:00


🇷🇸 Теперь можно стать гражданином Сербии всего за 8 месяцев. Помимо безвизового посещения всей Европы, этот паспорт даёт возможность вести международный бизнес и осуществлять трансграничные платежи из России. Подробности — тут.

Есть юристы, которые помогают с оформлением гражданства в короткие сроки: например, с полным сопровождением Bespalov Finance стать гражданином Сербии можно всего за 8 месяцев (у них хорошие отзывы и сотни довольных клиентов).

Бесплатная консультация доступна прямо в Telegram: @AleksandrBespalovFinance

Senior Frontend - javascript, html, css

26 Nov, 06:00


Мои Red-Flags при устройстве в IT-компании: Как не стать гребцом

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

Опоздание или переносы собеседования
Если компания начинает переносить собеседование в последний момент или опаздывает — это первый красный флаг. Конечно, форс-мажоры случаются, но если это регулярность, задумайся. Это может быть признаком плохой организованности и неуважения к твоему времени. Если на собеседовании к тебе не относятся серьезно, что будет потом?

Как реагировать: Один раз — ну ок. Два раза — в мусорку. Цените свое время.

Вакансия = тайна
Когда в вакансии нет подробностей о проекте, задачах или требованиях — это уже настораживает. Если всё держат в секрете, есть вероятность, что что-то не так. Может, проект в кризисе, или просто нет четкого понимания, что они вообще хотят. Если они не могут честно рассказать, с чем работать, скорее всего, тебе не расскажут и о проблемах, с которыми придется столкнуться.

Как реагировать: Иногда во всем виноват слабый HR-отдел. Стоит пробиться до реальных членов команды и узнать у них. Я часто встречал нормальную разработку и никудышный HR-отдел.

Пальцем в небо
Если тебе на собеседовании начинают говорить о «больших возможностях» и «супер крутых проектах», но без конкретики — насторожись. Вряд ли проект такой крутой, если команда даже не может рассказать, что конкретно нужно будет делать. А может, тебе вообще предложат работать на проекте, который "только что начался", а по факту он лежит в архиве.

Как реагировать: Требуем конкретики и четких показателей. Не стоит пытаться узнать все устроившись и поработав. Лучше рассмотреть вариант получше.

У нас все честно!
Если на собеседовании тебе говорят "У нас все честно!" или "У нас все прозрачно" — насторожись. Это чаще всего сигнал, что тебя собираются обмануть. Настоящая честность не требует громких заявлений. Если компании приходится так настойчиво уверять, что они "честные", скорее всего, скрывается что-то неприятное. Не доверяй пустым обещаниям, лучше ищи реальные факты и конкретику — это поможет избежать неприятных сюрпризов в будущем.

Как реагировать: Большой красный флаг. Любой обман начинается с риторики а-ля "Я бы мог тебя обмануть как остальные, но я не такой, я честный"... Ага, "не бита, не крашена, в гараже стояла". Избегайте таких собесов.

Технический процесс? Вижу впервые!
Когда спрашиваешь, как у них организован процесс разработки, а в ответ получаешь: «Мы просто кодим, а потом все собираем» — это уже красный флаг. Неудивительно, что баги в продакшне появляются как кораблики в море, а с деплоем — полная неразбериха.

Как реагировать: Это повод задуматься, но можно попробовать внедрить порядок и развить процессы. Пробовать только если это единственный флаг. В остальных случаях, бежим!

👉 @seniorFront

Senior Frontend - javascript, html, css

25 Nov, 16:02


Temperature line chart

Реализовано на canvas с использованием библиотеки Chart.js

👉 @seniorFront

Senior Frontend - javascript, html, css

25 Nov, 09:04


BigInt в JavaScript

Тип большого целого BigInt — примитивный тип, который представляет целые числа больше 253-1. Эти числа уже не помещаются в стандартный примитив «число».

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

Создать BigInt можно двумя способами:

1. Добавить суффикс n в конец записи числа
const biggy = 9997000254740991n


2. Вызвать конструктор BigInt
const alsoBig = BigInt(9997000254999999)


BigInt поддерживает, например, операции сложения +, вычитания -, умножения *, взятия остатка от деления %, возведения в степень **.
Операция деления / также работает, но дробная часть отбросится:
const seven = 7n
const five = 5n

console.log(seven / five)
// 1


BigInt не сериализуется в JSON, то есть не переводится в последовательность битов. Это усложняет использование данного типа данных в задачах взаимодействия с сервером.

Преобразование типов
В операциях BigInt невозможно использовать напрямую с обычными числами типа number: это приведёт к ошибке.
const biggy = 10n
const number = 5

console.log(biggy + number)
// Uncaught TypeError: Cannot mix BigInt and other types,
// use explicit conversions


Чтобы провести операции между BigInt и обычными числами, их нужно явно преобразовать. Например:
const biggy = 10n
const number = 5

console.log(biggy + BigInt(number))
// 15n

console.log(Number(biggy) + number)
// 15


Ограничения
Нет поддержки дробных чисел. BigInt работает только с целыми числами. Дробные числа нельзя использовать с этим типом данных.

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

В BigInt не поддерживаются операции унарного плюса и сдвига битов вправо.

👉 @seniorFront

Senior Frontend - javascript, html, css

24 Nov, 16:08


Гайд: как попасть с докладом на крупную конференцию и на что обратить внимание при подготовке

Меня зовут Лиза, я ex-программный координатор конференции HighLoad++ и в этой статье расскажу базовые шаги, которые помогут спикерам дойти до программы крупной (а то и крупнейшей) профильной конференции страны.

👉 @seniorFront

Senior Frontend - javascript, html, css

24 Nov, 09:03


Descending Order

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

Пример:
Ввод: 42145     —>  вывод: 54421
Ввод: 145263 —> вывод: 654321
Ввод: 123456789 —> вывод: 987654321


👉 @seniorFront

Senior Frontend - javascript, html, css

23 Nov, 16:05


Anxious dots

Реализовано на canvas и чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

23 Nov, 09:02


Our Services Box

В этом видео создаются карточки с оригинальным эффектом при наведении на CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

22 Nov, 09:02


envelope with animation

Свёрстано на чистых HTML и CSS. При наведении запускаются CSS трансформации.

👉 @seniorFront

Senior Frontend - javascript, html, css

21 Nov, 16:05


Editor Canvas

Вся сцена - SVG картинка, анимированная библиотекой TweenMax.

👉 @seniorFront

Senior Frontend - javascript, html, css

21 Nov, 09:02


Главное чтобы задача была интересная

👉 @seniorFront

Senior Frontend - javascript, html, css

20 Nov, 17:12


Tooltip Text

В этом видео создается текстовая подсказка, которая следует за курсором пользователя на чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

20 Nov, 13:12


Открытый урок «Эффективная работа с Next.js и TypeScript»

🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Практический курс по TypeScript» от Otus.

На вебинаре:

разберем, как создавать масштабируемые и производительные приложения с помощью Next.js и TypeScript;
поговорим об использовании статической и серверной генерации, работе с маршрутизацией и оптимизации производительности;
обсудим типизацию компонентов и интеграцию с внешними API для создания надежных приложений.

🔗 Ссылка на регистрацию: https://vk.cc/cF1SP8

🎁 Только в "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 erid 2SDnjeEFjP1

Senior Frontend - javascript, html, css

20 Nov, 06:07


Interactive Lit LLaMA

Это SVG картинка, анимированная в CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Nov, 18:00


Разработай прорывное решение для автоматического Code Review с помощью ИИ на хакатоне ЕВРАЗа 3.0🔥

🦾 Создай будущее Code Review с ИИ! 

Участвуйте в нашем уникальном хакатоне по созданию ИИ-чатбота, который станет незаменимым помощником для разработчиков ЕВРАЗа! Выберите одно из направлений — Python, TypeScript или C#, и разработайте решение для анализа кода на соответствие нашим стандартам. 

Дата: 29 ноября – 1 декабря 2024.
Формат: гибридный (онлайн и офлайн).
Призовой фонд: 500.000 рублей.

🧑‍💻 Присоединяйся к хакатону, если ты:
– AI-специалист;
– Frontend / Backend-разработчик;
– Студент или выпускник технического вуза.

⚡️ Зачем участвовать?
– Прокачаешь скиллы и получишь обратную связь от ведущих экспертов отрасли.
– Прикоснешься к ИТ в ЕВРАЗе.
– Получишь возможность стать частью масштабной и амбициозной команды ЕВРАЗа.

🔸 Регистрация уже открыта! Подай заявку до 25 ноября 23:59 МСК по ссылке.

Senior Frontend - javascript, html, css

14 Nov, 17:00


Ивент для тех, кто хочет узнать больше об открытом коде — Яндекс проведет «Ночь опенсорс библиотек»

Вы сможете понетворкать с разработчиками крупных опенсорс проектов и узнать от мейнтейнеров, как коммитить так, чтобы ваш код всегда принимали. А еще познакомитесь с созданием интерфейсов в Gravity UI, научитесь кодить в HTML/CSS на emmet и автоматизируете рутинные задачи с zx.

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

Ночь опенсорса пройдет 14 декабря в московской Библиотеке иностранной литературы. Регистрация открыта до 4 декабря.

Senior Frontend - javascript, html, css

14 Nov, 16:03


Lotsa Notifications

Логика работы уведомлений реализована на чистом JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Nov, 10:00


Нет у меня никакого выгорания, наверное

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Nov, 09:00


В жизни каждого разработчика однажды наступает момент, когда перед ним возникает оно… ЛЕГАСИ 👻

Что такое легаси код и откуда он берется? Как обнаружить легаси в проекте? Какую ошибку постоянно совершают лиды? Как предупредить проблему в будущем? Когда стоит отказаться от рефакторинга?

Обо всем этом расскажет лид frontend-разработки Мерка, Никита Шальнев, на онлайн-митапе «Как лиду работать с легаси?»

Встречаемся с вами в 19:00 МСК в канале @merkteam ⬅️

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

Senior Frontend - javascript, html, css

13 Nov, 17:01


Cursor in & Out Ripple Effects

В этом видео создается анимация при наведении на карточку, зависящая от положения курсора пользователя. Параметры анимации задаются в JS при срабатывании события mousemove.

👉 @seniorFront

Senior Frontend - javascript, html, css

13 Nov, 09:02


Responsive app switcher or carousel

Реализовано на чистом CSS при помощи CSS animation-timeline.

👉 @seniorFront

Senior Frontend - javascript, html, css

12 Nov, 16:02


Как убить самоорганизацию в команде: вредные советы для лидера

Сегодня многие компании переходят на гибридный формат работы, где команды нуждаются в особом подходе для поддержания самоорганизации — процесса, при котором люди выполняют задачи без постоянного контроля руководителя. Я поделюсь своими наблюдениями, почему в современных условиях самоорганизация не происходит «магически» и что должен делать тимлид, чтобы помочь команде достичь этой цели.

👉 @seniorFront

Senior Frontend - javascript, html, css

12 Nov, 09:02


Почему программисты никогда не вымрут

Буквально 20 минут назад прочел статью - Сгенерированный ИИ код сделает вас плохим программистом. И у меня созрела мысль, которую я до этого нигде не читал.

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

Почему нельзя писать код с помощью нейросетей:
- Вы станете тупым
- Вас никто не будет уважать
- Это вообще не дело

Лично я вообще не переживаю насчет того, что скоро скайнет захватит мир, потому что:
- Зачем зря переживать
- У меня есть работа
- Я уверен, что ближайшие десять лет моих знаний хватит, чтобы не оказаться в нищете.

В комментариях большая часть аудитории разделились на два лагеря:
- Первые: да с этим чатом гпт у вас сгниют мозги!
- Вторые: пусть гниют, мы то хотя бы не умрем в нищете!

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

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

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

Тоже самое, что сказать - "код на C++ говно, на python гораздо лучше. Кто пишет на python, за тем будущее". Ах, да... Такой тезис периодически звучал последние несколько лет.

Хороший программист - это профессионал, финальный продукт деятельности которого удовлетворяет заказчика. Если тебе надо выбивать дырки на перфокарте и написание "hello, world!" отнимает у тебя неделю, то это не удовлетворит ни одного заказчика. Если вносить правки в систему умеет 2 человека в мире, такой продукт ни одного вменяемого человека также не устроит.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

11 Nov, 16:02


Looping words

Стилизовано в CSS и анимировано библиотекой gsap.

👉 @seniorFront

Senior Frontend - javascript, html, css

11 Nov, 09:02


В чём разница между event.preventDefault и event.stopPropagation?

event.preventDefault() и event.stopPropagation() — это два метода, которые используются для управления поведением событий в JavaScript. Они выполняют разные задачи и полезны в различных сценариях.

event.preventDefault()
Предотвращает поведение браузера по умолчанию для события. Это может быть полезно, когда вы хотите отменить действие, которое обычно происходит при определенном событии.

Примеры:

Отмена отправки формы:
document.querySelector('form').addEventListener('submit', function(event) {
event.preventDefault();
console.log('Форма не отправлена!');
});


Отмена перехода по ссылке:
document.querySelector('a').addEventListener('click', function(event) {
event.preventDefault();
console.log('Переход по ссылке отменен!');
});


event.stopPropagation()
Предотвращает дальнейшее распространение события по дереву DOM. Это полезно, когда вы хотите остановить событие от всплытия (bubbling) или захвата (capturing) к родительским элементам.

Примеры:

Остановка всплытия события:
document.querySelector('.child').addEventListener('click', function(event) {
event.stopPropagation();
console.log('Клик на child');
});

document.querySelector('.parent').addEventListener('click', function() {
console.log('Клик на parent');
});


В этом примере клик на .child элемент не вызовет обработчик клика на .parent элементе.

👉 @seniorFront

Senior Frontend - javascript, html, css

10 Nov, 18:07


SOLID на котиках

Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.

👉 @seniorFront

Senior Frontend - javascript, html, css

10 Nov, 09:09


Пивомида

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

Пирамида пивных банок возводит в квадрат количество банок на каждом уровне: 1 банка на верхнем уровне, 4 на втором, 9 на следующем, 16, 25...

Завершите функцию beeramid, чтобы получить количество полных уровней пирамиды из пивных банок, которую вы можете построить, учитывая параметры:
ваш реферальный бонус и цена банки пива

Пример:
beeramid(1500, 2); // should === 12
beeramid(5000, 3); // should === 16


👉 @seniorFront

Senior Frontend - javascript, html, css

09 Nov, 16:02


Business Card

Карточка - визитка web разработчика, реализованная на HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

09 Nov, 09:02


Image Trails Effects

В этом видео создается эффект проявления картинок при движении мыши на чистом CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

08 Nov, 15:41


Закрытый клуб для айтишников

FAANG School, чьи выпускники работают в Яндексе, СБЕРЕ и других гигантах, запустили бесплатное сообщество для всех, кто изучает Java.

Общайся в ламповом чате с такими же людьми «в теме», получай фидбек у опытных разрабов и черпай практические рекомендации от экспертов школы.

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

– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков

Вступай сейчас. Открыли доступ всего на 24 часа!

Senior Frontend - javascript, html, css

08 Nov, 09:03


Social Card Hove

Карточки, свёрстанные на HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

07 Nov, 16:02


Lightweight Water Distortion Effect

Реализовано на canvas и чистом JS. Можно изменять параметры анимации, а также подгружать свою картинку.

👉 @seniorFront

Senior Frontend - javascript, html, css

07 Nov, 13:00


Реакция разраба на дизайнера, который презентует концепт сайта с анимациями и эффектами

👉 @seniorFront

Senior Frontend - javascript, html, css

06 Nov, 14:00


Background Animation

В этом видео создается анимация при движении мыши на CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

06 Nov, 09:02


3D Image Carousel

Карусель реализована на HTML и CSS, без использования JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

05 Nov, 16:03


Как сделать React Server Components в Electron с помощью Next.js и без открытых портов

С появлением React Server Components и Server Actions разработка веб-приложений стала проще, чем когда-либо. Удобно когда у разработчика есть все серверные API прямо внутри веб-приложения, нативно, с типами и полной поддержкой от фреймворка, например Next.js (и других фреймворков, поддерживающих RSC, конечно).

В то же время, Electron является де-факто стандартом для современных настольных приложений, написанных с использованием веб-технологий, особенно когда приложению нужен доступ к файловой системе и другим системным API, и девелопер знает только JS (Tauri заслуживает почётного упоминания, если вы знаете Rust или если вам нужен только простой WebView2 shell).

Я задался вопросом: почему бы не объединить лучшее из обоих миров и не запустить обычное приложение Next.js прямо внутри Electron, чтобы насладиться всеми преимуществами React Server Components?

👉 @seniorFront

Senior Frontend - javascript, html, css

05 Nov, 09:06


Performance review

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

1. Система закрыта для сотрудников. Вы не можете посмотреть результаты ревью ваших коллег, вы не можете влиять на итоговую оценку. Нередки ситуации, когда вы получаете большинство положительных отзывов от коллег, но достаточно одного негативного отзыва и руководитель принимает «объективное решение» снизить вам оценку. Иногда достаточно и просто мнения вашего руководителя, чтобы он снизил вам итоговую оценку независимо от положительных отзывов. PR только создаёт видимость коллективной оценки вашего труда, но по факту её результат формируется вашим руководителем, который вынужден преследовать собственный KPI, и у вас нет никаких способов влияния на это.

2. Не существует объективных способов оценки. Процесс, в котором вы рассказываете руководству, что вы сделали за отчётный период, парадоксален. Весь период руководство занималось какими-то своими делами, а теперь вам надо рассказать, что вы сделали ценного для компании. И основная проблема тут — показать видимый для руководства результат работы. Это значит, что ваш коллега, что написал новый сервис с нуля, находится в гораздо более выигрышной ситуации, чем ваши правки легаси сервисов, код которых поддерживается ещё с 1990-х годов. Даже в том случае, если они помогут сохранить бизнесу кучу денег на длинной дистанции. Можно, конечно, предположить, что ваше руководство объективно и достаточно в теме, чтобы понять сложность и необходимость вашей работы с легаси кодом и по достоинству вас оценить. Но тогда зачем такому руководству PR, если оно и так в курсе вашего вклада в общее дело?

3. PR занижает вашу рыночную стоимость. Вот вы хотите увеличить себе зарплату. Компания предлагает решение — для этого надо показать оценку выше средней на следующем PR. Если ваши рабочие задачи к этому располагают, то это может быть неплохим вариантом. Но получить оценку выше средней, как правило, тяжелее, чем оффер в другой компании на ту сумму, что вы хотите. Существуют и политики компании, что вам не могут повысить зарплату выше определённого порога, как, например, в «Озоне». В итоге, если вы выбираете путь PR, вы выполняете больше работы за меньшую оплату. Если вы верите в справедливость PR, то для компаний это очень эффективный инструмент снижения вашей стоимости, а значит, собственных издержек.

4. PR часто используют для обоснования сокращений. Поскольку процесс закрытый, вы вполне можете получать из года в год хорошие оценки, но внезапно получить плохую, потому что компании нужно провести сокращения. Нам известно о таких случаях в «Додо» и «Авито», например. Самое мерзкое в этом то, что компания может не признавать факт сокращений, а все увольнения будет оправдывать неэффективностью увольняемых.

👉 @seniorFront

Senior Frontend - javascript, html, css

04 Nov, 16:01


Noise Abstraction

Реализовано на canvas с использованием библиотеки simplex-noise.

👉 @seniorFront

Senior Frontend - javascript, html, css

04 Nov, 09:02


Как работает браузер ?

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

Запрос ресурса:
Когда пользователь вводит URL в адресную строку и нажимает Enter, браузер начинает с определения адреса ресурса. Если это URL-адрес, начинающийся с http:// или https://, браузер отправляет запрос на сервер.
        GET /index.html HTTP/1.1
Host: example.com


DNS-разрешение:
Браузер преобразует доменное имя (например, example.com) в IP-адрес с помощью DNS-сервера.

Установка соединения:

Браузер устанавливает TCP-соединение с сервером, а если используется https, то устанавливает также SSL/TLS-соединение для безопасной передачи данных.

Отправка HTTP-запроса:
Браузер отправляет HTTP-запрос к серверу, чтобы получить содержимое веб-страницы.
        GET /index.html HTTP/1.1
Host: example.com


Получение HTTP-ответа:
Сервер отвечает с кодом состояния (например, 200 OK) и возвращает HTML-документ.
        HTTP/1.1 200 OK
Content-Type: text/html

<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>


Разбор (парсинг) HTML:
Браузер начинает разбор HTML-документа. Он создает DOM (Document Object Model) — иерархическую структуру узлов, представляющую содержимое страницы.
        <html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>


Обработка CSS:
Браузер обрабатывает CSS-стили. Он загружает CSS-файлы и применяет стили к соответствующим элементам DOM, создавая CSSOM (CSS Object Model).
       h1 {
color: blue;
}


Построение рендер-дерева:
DOM и CSSOM объединяются для создания рендер-дерева. Рендер-дерево представляет собой структуру, содержащую визуальные элементы, которые должны быть отображены на странице.

Визуализация (рендеринг):

Браузер вычисляет положение каждого элемента на экране (расчет компоновки) и рисует их (отрисовка).

Обработка JavaScript:
Браузер загружает и выполняет JavaScript-код. Если скрипт модифицирует DOM или CSSOM, процесс может повториться с повторным расчетом и перерисовкой.
document.querySelector('h1').textContent = 'Hello, JavaScript!';


Асинхронные операции:
Браузер обрабатывает асинхронные операции, такие как AJAX-запросы и таймеры, что может также вызвать повторное обновление страницы.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

03 Nov, 16:02


Как использовать менеджер состояний NgRx для Angular-проектов

Итак, начнем с определения. В контексте веб-разработки менеджер состояний NgRx — это инструмент, который управляет глобальным для всего приложения состоянием. Согласно документации, он является инструментом изоляции побочных эффектов для создания более чистой архитектуры компонентов. Также с введением NgRx появляются инструменты для разработки и отладки, расширяющие возможности создания различных типов приложений.

В этой статье разбираются особенности применения, плюсы и минусы NgRx.

👉 @seniorFront

Senior Frontend - javascript, html, css

03 Nov, 09:02


1's, 0's and wildcards

Верните массив, содержащий все возможные значения, которые можно получить, заменяя '?' нулём или единицей.

Пример:
'101?' -> ['1010', '1011']
'1?1?' -> ['1010', '1110', '1011', '1111']


👉 @seniorFront

Senior Frontend - javascript, html, css

02 Nov, 16:04


action button with checkbox trick

Реализовано на HTML и Less, без использования JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

02 Nov, 09:02


Ghost Text

В этом видео создается эффект исчезновения текста при помощи CSS blur и transform при наведении.

👉 @seniorFront

Senior Frontend - javascript, html, css

01 Nov, 09:02


CSS Info Cards

Карточки, свёрстанные на HTML и SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

31 Oct, 16:03


Shy Ghost

Создано и анимировано в HTML и SCSS. Логика запуска анимаций реализована в JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

31 Oct, 09:02


Как работает API:

👉 @seniorFront

Senior Frontend - javascript, html, css

30 Oct, 17:01


Creative Banner Hover Effects

В этом видео создается эффект "проявления" картинки при наведении на CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

30 Oct, 13:12


range slider hamster

В зависимости от выбранной скорости запускаются различные CSS анимации.

👉 @seniorFront

Senior Frontend - javascript, html, css

29 Oct, 16:05


14 инструментов для генерации изображений с кодом

В этой статье мы рассмотрим 14 крутых инструментов, которые помогают превращать код в красивые картинки. Каждый из них имеет свои фишки и подойдёт для разных задач. Кто-то любит минимализм, кому-то важна возможность кастомизации, а кто-то вообще хочет делать анимации с кодом — для всех найдётся свой вариант. Эта подборка точно поможет вам найти инструмент, который сделает ваши фрагменты кода не только понятными, но и визуально привлекательными.

👉 @seniorFront

Senior Frontend - javascript, html, css

29 Oct, 09:01


Вот вам вопросы для прокрастинации

Вопросы разные, все они присланы пользователями.

Если бы 8-битного бога спросили, какое самое большое число, что он ответил?
255

Как понять, что проект нужно переписывать заново?
Когда время на рефакторинг кода для внедрения изменений (фичи) больше, чем время для написания кода самого изменения (фичи). Зачёт по смыслу.

Согласно легенде ОН — глаз небесного белого орла, который после битвы с черным колдуном упал на Землю и стал камнем. Другой ОН стоил около 4000 рублей и для многих стал первым проводником в мир программирования.
Агат

Что появилось раньше, print(), или 'Hello world!' как фраза, с которой сталкивался каждый программист?
print(), т.к. без него не было бы и 'Hello world!'

В чём отличие геймера от тестировщика игр?
Один тратит деньги, а другой зарабатывает. Зачёт по смыслу.

Одна из татуировок иронично символизирует разделение одного с другим и одновременно неотделимость одного от другого. В коде и одно, и другое так же часто неотделимы. Назовите одно и другое на любом языке.
</head> <body> Зачёт по смыслу.

На одной забавной картинке в интернете собрались вместе театр, лиса, лев, старый грязный унитаз и ЦВЕТ, который есть в лисе, во льве и в театре. Какое слово автор заменил словом «ЦВЕТ»?
Хром (Chrome)

Если камень — это 0, бумага — это 31 а ножницы — 6, то какими числами сказать «отлично», «наберу»?
1, 17. В кулаке согнутые пальцы нули, а выпрямленные единицы рассматриваем как двоичную систему счисления

Нельзя сказать, чтобы их подбрасывало в 6 раз сильнее на таких же по высоте кочках. Но сидеть им было явно неудобно и фактически они стояли при езде. Так что пришлось всё же сделать для них нечто, чтобы их не выбросило вовсе. А что именно сделали для них?
«Ремни безопасности». Их установили на четырёхколёсных транспортных планетоходах для передвижения людей по поверхности Луны.

МРТ, рентген, «дышите‑не‑дышите», простукивание. Подумайте о том, что был же тот, кто первый начал стучать и — назовите тару.
Бочка. В 1761 году в Вене вышла книга молодого врача Ауенбруннера, посвященная распознаванию болезней. Она начиналась словами благодарности отцу врача, потомственному пивовару, за оригинальную идею — выстукивание грудной клетки пациента, по аналогии с выстукиванием пивных бочек. Вот так проверка пивных бочек привела к врачебному способу исследования.

Еще больше вопросов в статье

👉 @seniorFront

Senior Frontend - javascript, html, css

28 Oct, 16:02


Rotating text, falling letters

В JS создана логика запуска CSS трансформаций для каждой буквы слова.

👉 @seniorFront

Senior Frontend - javascript, html, css

28 Oct, 09:04


Как использовать useEffect ?

Это хук, введённый в React 16.8, который позволяет выполнять побочные эффекты в функциональных компонентах. Побочные эффекты включают в себя операции, которые выходят за рамки возвращаемого результатом рендеринга, такие как работа с сетью (запросы к API), подписки, изменение документа и так далее. Он заменяет собой жизненные циклы классовых компонентов, такие как componentDidMount, componentDidUpdate и componentWillUnmount.

Синтаксис:
useEffect(() => {
// Ваш код для побочного эффекта
return () => {
// Очистка (необязательно)
};
}, [зависимости]);

Функция побочного эффекта: Это его основное тело, где вы помещаете код, который должен выполняться после каждого рендеринга (по умолчанию) или когда изменяются определённые зависимости.
Очистка: Функция очистки выполняется перед тем, как компонент будет удалён, а также перед следующим выполнением эффекта. Это идеальное место для отмены подписок, таймеров и других ресурсов, чтобы избежать утечек памяти.
Массив зависимостей: Определяет, при изменении каких значений должен повторно выполняться эффект. Если массив пуст ([]), эффект выполнится один раз после первого рендеринга. Если массив не указан, эффект будет выполняться после каждого рендеринга.

Примеры использования:

Запуск эффекта один раз
Чтобы выполнить эффект один раз после первого рендеринга (аналог componentDidMount в классовых компонентах), используйте пустой массив зависимостей:
useEffect(() => {
// Код здесь будет выполнен один раз после инициализации компонента
}, []);


Выполнение при изменении зависимостей
Чтобы выполнить эффект при изменении определённых значений:
const [count, setCount] = useState(0);

useEffect(() => {
// Код здесь будет выполнен каждый раз, когда изменяется значение count
document.title = Вы нажали ${count} раз;
}, [count]); // Зависимости


Очистка эффекта
Пример использования функции очистки:
useEffect(() => {
const timerID = setInterval(() => {
// Ваша логика здесь
}, 1000);

return () => {
clearInterval(timerID); // Очистка при размонтировании компонента
};
}, []); // Эффект выполнится один раз


👉 @seniorFront

Senior Frontend - javascript, html, css

27 Oct, 16:02


Психологический тупик в ИТ-карьере: как я преодолевал «выгорание» и почему сопротивлялся изменениям

В этой статье я хочу поделиться личным опытом и рассказать о том, как я оказался в «психологическом тупике». Расскажу на что это было похоже, с какими трудностями столкнулся, какие варианты перепробовал и что мне действительно помогло.

👉 @seniorFront

Senior Frontend - javascript, html, css

27 Oct, 09:02


Write Number in Expanded Form

Вам будет дан номер, и вам нужно будет вернуть его в виде строки в расширенной форме
Все числа будут целыми числами больше 0

Пример:
expandedForm(12); //  '10 + 2'
expandedForm(42); // '40 + 2'
expandedForm(70304); // '70000 + 300 + 4'


👉 @seniorFront

Senior Frontend - javascript, html, css

26 Oct, 16:02


Glitching Text

Анимация искажения текста, реализованная в SCSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

26 Oct, 09:02


Cursor Move + Card Hover Effects

В этом видео создается эффект при наведении на карточку, привязанный к курсору пользователя на CSS и JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

25 Oct, 16:01


👉 @seniorFront

Senior Frontend - javascript, html, css

25 Oct, 09:02


CSS3 loading animations

Подборка анимаций загрузки, реализованных на HTML и Less.

👉 @seniorFront

Senior Frontend - javascript, html, css

24 Oct, 16:01


PIXI Displacement Map

Реализовано при помощи библиотек Pixi.js и TweenMax.

👉 @seniorFront

Senior Frontend - javascript, html, css

24 Oct, 09:02


Хочешь знать откуда эти шрамы?

👉 @seniorFront

Senior Frontend - javascript, html, css

23 Oct, 17:01


CSS + SVG Animation Effects

В этом видео создается анимированная SVG картинка - loader.

👉 @seniorFront

Senior Frontend - javascript, html, css

23 Oct, 09:01


Star Ratings

В JS созданы обработчики события click для каждой звезды. При нажатии изменяются определенные стили.

👉 @seniorFront

Senior Frontend - javascript, html, css

22 Oct, 20:00


Почему вам лучше не работать проджектом

Часто слышу от людей, которые только хотят войти в IT, что “если ты гуманитарий, а в QA идти не хочется, то есть один путь – в менеджеры проектов”. Им кажется, что рабочий день выглядит так: провел 2-3 встречи, выпил 3 чашки кофе, построил Гант, промотивировал команду и можно идти домой.

Я уже больше 10 лет работаю менеджером проектов и видел много коллег, которые бросали профессию и уходили заниматься всем чем угодно, только лишь бы потушить вечно горящую задницу. Я утешал рыдающих коллег-проджектов, меня выгоняли охранники из офисного здания заказчика с фонариками, потому что оно закрывалось в 11 вечера, а мне надо было еще работать.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

22 Oct, 16:00


Забирай пошаговую roadmap по JAVA

FAANG School в течение 24 часов отдают бесплатно свою библиотеку знаний. Вы можете получить доступ:

– Redis - 5 улучшений для твоего пет-проекта
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков

Из свежих пополнений – Инструкция по работе с Git (ключевой навык для любого разработчика!)

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

Senior Frontend - javascript, html, css

22 Oct, 13:00


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

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

1. Невербальный негатив
Это всё, что не озвучено явно — мимика, жесты, позы тела, взгляды, эмоции, тембр и громкость голоса. Довольно большой и богатый спектр, чтобы выразить почти любые чувства. Не все такое умеют считывать, так как не обладают достаточной степенью эмпатии или просто равнодушны к собеседникам. На мой взгляд, это на самом деле ключевой маркер поведения, который даёт больше информации, чем слова.

2. Троллинг
Это различные шуточные подколы или фотожабы на что-либо. Не все понимают, как на них реагировать, в том числе, например, на злобные комменты к текстам в социальных сетях. В последнее время люди привыкли к таким действиям и уже даже выработали какой-то иммунитет — не обращают внимания. Но тролли бывают разные и мастера манипуляций в тонком стиле способны довести неподготовленного человека до остервенения.

3. Токсичность
Пожалуй, самое затасканное понятие, которое часто неверно понимают. Токсичность — это не «плохое поведение», а действия, которые отравляют окружение при контакте. К примеру, собеседник вполне себе вежлив, но капля сарказма тут, усмешка там и вот уже с ним нет желания говорить даже в чате, не то, что в реале.

4. Пассивная агрессия
Как ни странно, иногда самый действенный метод для того чтобы пробить тупость людей) Не советую злоупотреблять, но в некоторых случаях можно использовать, чтобы разрулить ситуацию без доведения до открытого конфликта — это лучше, чем допустить драку. В рабочих отношениях будет вызывать раздражение, но если директор не хочет решать какие-то трудности менеджмента, то именно такое отношение он и получит в результате.

5. Хамство
Одна из самых старых форм выражения эмоций, которую на фоне остального негатива почти уже не обращают внимания, так как просто привыкли и очерствели от окружающего. Один послал на другого, тот в ответ сказал то же самое — все «довольные» разошлись. В коллективе же такое поведение медленно разъедает команду, люди перестают доверять друг другу и просто общаться.

👉 @seniorFront

Senior Frontend - javascript, html, css

21 Oct, 16:02


Photo Filter With Range Sliders

Значение для CSS фильтров задаются через JS по событию input.

👉 @seniorFront

Senior Frontend - javascript, html, css

21 Oct, 10:00


Что такое inline block в отличии от inline элемента ?

Есть несколько значений для свойства display, которые определяют, как элемент будет отображаться на странице. Два из этих значений — inline и inline-block — имеют некоторые сходства, но и значительные отличия.

Inline элементы - элементы с display: inline; ведут себя как часть текста. Это значит, что:
- Они располагаются на одной строке с другими инлайн-элементами или текстом, если только ширина родительского элемента не заставляет их обтекать.
- У инлайн-элементов нельзя задать ширину (width) и высоту (height), так как размеры определяются содержимым.
- Вертикальные отступы (margin-top и margin-bottom) и вертикальные внутренние отступы (padding-top и padding-bottom) не влияют на расстояние между инлайн-элементами вертикально, хотя могут влиять на фоновое изображение или цвет.
- Горизонтальные отступы и внутренние отступы применяются нормально.

Inline-block элементы - элементы с display: inline-block; комбинируют некоторые свойства инлайн и блочных элементов:
- Как и инлайн элементы, эти элементы располагаются на одной строке с другими инлайн-элементами или текстом.
- В то же время, у них можно задать ширину и высоту, как у блочных элементов.
- Вертикальные и горизонтальные отступы (margin и padding) работают как у блочных элементов, влияя на расстояние вокруг элемента во всех направлениях.
- Элементы могут содержать другие блочные или инлайн элементы.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

21 Oct, 09:00


Успей принять участие в хакатоне Т1.Самара

На хакатоне участникам будут предложены 2 кейса:
1. DataCraft. Конструктор отчётов по проекту;
2. Документы 2.0: Умная автоматизация с LLM.
Призовой фонд: 600 000 рублей.

Почему тебе нужно принять участие:
*️⃣Фирменный мерч в подарок всем офлайн-участникам;
*️⃣Питание — обед и снэк-бар на протяжении всего дня;
*️⃣Обратная связь от топовых менторов и техлидов Т1.

И еще один крутой бонус!
- Участники, попавшие в ТОП-8 по итогам оценки решений, получат разряд по спортивному программированию.
- Победители будут награждены кубками и грамотами.
🤝Партнёр хакатона: Федерация Спортивного Программирования Самарской области.

Даты проведения хакатона:
— 25-26 октября — онлайн
— 27-28 октября — офлайн
📍г. Самара

➡️ Регистрация на хакатон открыта до 23 октября, 23:59 МСК по ссылке.

#реклама
О рекламодателе

Senior Frontend - javascript, html, css

20 Oct, 16:02


Как матрица компетенций помогает развитию команды

Использование матрицы компетенций даст возможность членам команды прокачать имеющиеся скилы, научиться новому у коллег и в целом улучшить взаимодействие в коллективе. Это исключает ситуацию зависимости работы всей команды от какого‑либо одного участника проекта и дает возможность расти всем специалистам. Подробнее про матрицу компетенций в статье.

👉 @seniorFront

Senior Frontend - javascript, html, css

20 Oct, 10:20


Unique In Order

Реализуйте функцию, которая принимает в качестве аргумента последовательность и возвращает массив элементов, в котором нет ни одного элемента с одинаковым значением, расположенного рядом друг с другом и сохраняющего исходный порядок элементов

Пример:
uniqueInOrder('AAAABBBCCDAABBB')  //   ['A', 'B', 'C', 'D', 'A', 'B']
uniqueInOrder('ABBCcAD') // ['A', 'B', 'C', 'c', 'A', 'D']
uniqueInOrder([1,2,2,3,3]) // [1,2,3]


👉 @seniorFront

Senior Frontend - javascript, html, css

20 Oct, 08:20


Идеальная страна в Европе для программистов?

Это та, где за окном океан, ритм жизни расслабленный, климат мягкий и солнечный, а по выходным все ездят на серфинг.
Европейская Калифорния – Португалия🇵🇹

Здесь уже сформировалось отличное русскоязычное комьюнити. А Лиссабон быстро превращается в точку притяжения инноваций и стартапов.

Нашли для вас интересный канал Португалия и мы.
Автор переехал из Петербурга в Лиссабон и рассказывает обо всех тонкостях жизни релокантов в Португалии.

Из интересного:
▫️Пути получения ВНЖ после мая 2024
▫️Подготовка к переезду по шагам
▫️Где жить в Лиссабоне. Обзор районов города

Переходите в @portugal_and_me, здесь много ценной информации из первых рук.

Senior Frontend - javascript, html, css

19 Oct, 16:02


Product card

Вёрстка реализована на HTML и SCSS. Логика смены классов при нажатии на кнопки реализована в JS.

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Oct, 10:30


Split Slider

В этом видео создается слайдер картинок на чистом CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

19 Oct, 06:30


Успей ухватить 7 дней бесплатного обучения фронтенд-разработке!

🔥 С нас обучение, практика и помощь с выходом на фриланс.

Скоро Роман Чернов, веб-разработчик с 10-летним стажем, проведёт онлайн-интенсив с практикой и обратной связью.

На эти 7 дней план такой:
- Сверстаешь веб-сайт на HTML + CSS;
- Реализуешь функционал на JavaScript;
- Используешь фронтенд-фреймворк Angular;
- Подключишь Backend и загрузишь сайт на хостинг;
- Получишь советы по доработке своего проекта.

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

👉 Забрать бесплатно 7 дней обучения frontend-разработке

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

Senior Frontend - javascript, html, css

18 Oct, 15:00


Gallery Hover Effect

Карточки с CSS трансформациями, которые запускаются при наведении.

👉 @seniorFront

Senior Frontend - javascript, html, css

18 Oct, 09:00


Хотите узнать, как реализовать идеальную хэш-таблицу, которая работает за О(L) время?

Ждем вас на открытом вебинаре 21 октября в 20:00 мск, где мы разберем:

- как создать алгоритм ассоциативного массива на основе идеальной хэш-таблицы;
- как исключить коллизии с помощью двухступенчатой хэш-таблицы;
- как выполнить визуальное тестирование с англо-русским словарем на 2.000 слов.

👨‍💻🛠👨🏻‍💻 Урок для Junior-разработчиков на любых языках программирования.

Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.

Встречаемся в преддверии старта курса «Алгоритмы и структуры данных».
Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cCMIqM

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 erid 2SDnjdBtMco

Senior Frontend - javascript, html, css

17 Oct, 17:10


Color Palette Generator

Оригинальное приложение - генератор цветовых палитр, созданное на angular.

👉 @seniorFront

Senior Frontend - javascript, html, css

17 Oct, 09:03


Когда используешь <div> как <button>:

👉 @seniorFront

Senior Frontend - javascript, html, css

16 Oct, 17:02


Creative Radio Buttons

В этом видео создаются кастомные анимированные радио-кнопки на HTML и CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

16 Oct, 09:02


Scroll-driven animated card stack with scroll snap events.

Свёрстано на HTML и SCSS. Переключение реализовано при помощи события "scrollsnapchange".

👉 @seniorFront

Senior Frontend - javascript, html, css

15 Oct, 16:16


Какой он, отличный день для Frontend-разработчиков? 🤔

21 сентября на A?.Frontend Day мы вместе с сотней IT-специалистов создали именно такую атмосферу! Офлайн в Москве и онлайн это событие собрало тех, кто готов делиться опытом и узнавать новое.

🌟 Что было:
Вадим Царегородцев из Ostrovok.ᅠru представил Valibot — инновационный инструмент для гибкой и безопасной валидации данных в JavaScript.
Сергей Попов из Skillbox раскрыл методы преодоления проблем внедрения изменений в компаниях.
Никита Мамизеров рассказал о сложностях и успехах внедрения BDUI в Альфа-Онлайн.
Никита Ульшин из Т-Банка поделился паттернами отказоустойчивости, помогающими минимизировать риски.
Андрей Смирнов из X5 Tech рассмотрел карьерные ловушки для тимлидов и объяснил, как их избежать.
Евгений Смирнов из Альфа-Банка провёл дискуссию о том, как ИИ и Copilot меняют разработку и что ждёт программирование в будущем.

И это только часть того, что происходило на A?.Frontend Day! А ещё были квизы, розыгрыши подарков и афтепати с нетворкингом.

Хотите увидеть, как это было? Переходите по ссылке и смотрите подробный отчёт с мероприятия!❤️

Senior Frontend - javascript, html, css

15 Oct, 16:02


Как понять продукт и зачем это нужно разработчику

Если вы не понимаете бизнес своей компании, вы не сможете полностью реализовать свои технические навыки. Крутой технарь на позиции СТО, который знает нюансы TOGAF и отличия Raft от Paxos — это хорошо, но мало. Вы должны принимать решения не только исходя из технических деталей задачи, но и с учётом реалий бизнеса, его потребностей и направления развития.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Oct, 16:12


Почему все неправы в споре «Стартап или бизнес»?

Если попробовать найти определение что такое стартап, а что такое бизнес в интернете, то можно совершенно и полностью запутаться. Начнем с того, что главной характеристикой стартапа все будут выделять разное, кто‑то скажет, что стартап должен быть технологичным, кто‑то скажет, что обязательно нужно быть убыточным, а кто‑то что нельзя быть стартапом долго, так как только новая компания — стартап. Но все эти определения неверны и им можно показать огромное количество примеров, опровергающих эти доводы:

- Новый? Udemy и AirBnb искали ProductMarketFit (Состояние продукта достойное рынка, считается что начинать продажи стоит только при его достижении) более 2-х лет, а Roblox заявляют почти о 10-ти годах.

- Технологичный? Скажите это стартапу, который придумал добавить кармашек на кросовки, чтобы во время бега не носить ключи (оборот 158 млн), а также Российскому «Бери заряд!», который сдает павербанки в аренду. Там нет сложных технологий, но это стартапы.

- Убыточный? Startupplanner стали прибыльными на 2-й месяц, при продаже второго заказа. Или Zappos, который торговал обувью сразу в прибыль, не сразу но достаточно быстро стал прибыльным и GitHub — сервис для управления версионностью программного кода.

- Маленький? На своем старте Tesla сразу нанимала сотни сотрудников, как и стриминговый сервис Quibi, стартовал с инвестициями в 1,75 миллиарда и несколькими сотнями сотрудников.

Что же тогда отличает стартап от бизнеса? Отсутствие рабочей бизнес-модели.
Стартап — это временная организация по поиску работающей бизнес‑модели. Когда вы придумали новую бизнес‑модель и нет уверенности, что это все будет работать, то это стартап. Как только вы ее проверили и поняли, что это рабочая схема — вы бизнес. Граница между стартапом и бизнесом весьма размыта, но это все равно самое точное и верное определение из всех доступных.

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Oct, 13:06


Todo card stack

Реализовано на React и стилизовано в чистом CSS.

👉 @seniorFront

Senior Frontend - javascript, html, css

14 Oct, 09:06


Ищем автора эталонного кода! 💎

Если вы уверены, что вашему коду подходит звание «Эталонный», а вам — звание «Автор самого красивого кода», то приглашаем принять участие в Конкурсе красоты кода 2.0 и выиграть классные призы от Сбера: iPhone 16 и умную колонку SberBoom.

Опытные эксперты определят победителей в пяти категориях: Backend, Frontend, DevOps, AI и Mobile, — а награждение пройдёт на ключевом IT-событии HighLoad в Москве, 2 и 3 декабря.

Больше 40 участников прошлого конкурса стали частью команды Сбера. Возможно, следующим станете именно вы — переходите по ссылке и изучайте подробности!

Senior Frontend - javascript, html, css

14 Oct, 09:02


.isSupersetOf()

Метод isSupersetOf() сравнивает текущую коллекцию с другой и возвращает true, если текущая коллекция включает в себя все элементы другой коллекции, и false — если нет.

Пример
У Софии и Надежды большие личные библиотеки. София хочет доказать, что её коллекция включает все романы Набокова, которые есть в коллекции Надежды. В этом ей поможет метод isSupersetOf().

У нас есть два массива строк. Определим, входят ли все элементы второго массива также в первый. Для решения задачи создадим Set-объекты из массивов и сравним их, используя метод isSupersetOf():

const booksOfSonya = [ 'Дар', 'Подвиг', 'Защита Лужина', 'Отчаяние' ]
const booksOfNadya = [ 'Подвиг', 'Защита Лужина', 'Дар' ]

const set1 = new Set(booksOfSonya)
const set2 = new Set(booksOfNadya)

console.log(set1.isSupersetOf(set2))
// true
console.log(set2.isSupersetOf(set1))
// false


Сравнение коллекций — часто встречающаяся задача. Метод isSupersetOf() упрощает её решение и избавляет от необходимости писать код обхода и сравнения.

Не путайте метод isSupersetOf() с методом isSubsetOf(), который решает обратную задачу и проверяет, что все элементы текущей коллекции содержатся в другой. Поддержка isSupersetOf() в основных браузерах и в Node.js появилась в 2024 году. Если попробуете использовать метод в более ранних версиях, получите ошибку.

👉 @seniorFront

Senior Frontend - javascript, html, css

13 Oct, 16:02


Что нового в React 19

React 19 на подходе. Команда React анонсировала предрелизную версию React 19 в апреле. Это крупное обновление принесет с собой ряд улучшений и новых паттернов, нацеленных на повышение производительности, удобство использования и опыта разработки.

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

👉 @seniorFront

Senior Frontend - javascript, html, css

13 Oct, 09:02


Найдите гласные

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

Пример:
Mmmm  => []
Super => [2,4]
Apple => [1,5]
YoMama -> [1,2,4,6]


👉 @seniorFront

Senior Frontend - javascript, html, css

12 Oct, 16:01


Collection of animated loaders

Подборка анимированных загрузчиков, реализованных на HTML и SCSS.

👉 @seniorFront