Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
23.2K subscribers
2.2K photos
120 videos
38 files
4.61K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
加入频道
⚒️ Reatom — высокоэффективный logic/state manager, предлагающий простые абстракции и мощные инструменты для создания как маленьких виджетов, так и крупных SPA.

Недавно был выпущен reatomResource, новый API для простого и эффективного управления ресурсами. Совместим с другими асинхронными API: withDataAtom, withStatusesAtom, withRetry, withCache.
☝️🚀 Рейтинг JavaScript-библиотек для визуализации диаграмм с открытым исходным кодом за последние 28 дней

🔝Топ-5 в нашей подборке:

1️⃣ apache/echarts — мощная интерактивная библиотека, предлагающая простые способы добавления интуитивно понятных, интерактивных и легко настраиваемых диаграмм.
2️⃣ apexcharts/apexcharts.js — современная библиотека, которая позволяет создавать интерактивные визуализации данных с помощью простого API и более 100 готовых к использованию примеров.
3️⃣ chartjs/Chart.js — простые HTML5-диаграммы с использованием тега <canvas>.
4️⃣ d3/d3 — библиотека для визуализации данных с помощью SVG, Canvas и HTML.
5️⃣ recharts/recharts — библиотека для создания диаграмм, построенная на React и D3.

#инструменты
🤔 Сложно ли поменять стек разработки?

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

✔️Изучение нового языка
✔️Ознакомление с экосистемой языка
✔️Понимание инфраструктуры (сборка, доставка и т. д.)

💬 А вы меняли стек? Сколько времени это заняло?

#холивар
🤔 Какие выводы можно сделать после 500 юнит-тестов?

Именно столько написал Сергей Глазырин, JavaScript-разработчик в Тинькофф, для одного из внутренних Compliance-приложений.

После такого спринта тестовое покрытие продукта увеличилось на 30%, притом что бизнес-задачи продолжали выполняться. Результаты опыта — в статье.
Во время отладки JavaScript-кода иногда приходится устанавливать множество точек останова в разных функциях. Возможно, вы захотите сохранить эти точки останова, но не останавливаться на них.

📌В DevTools это можно сделать двумя способами:

1️⃣Принудительное выполнение, пропуск других точек останова (Chrome и Edge).

🔸Открываем инструмент Sources и устанавливаем необходимые точки останова.
🔸После паузы на первой точке останова нажимаем и удерживаем «Возобновить выполнение сценария», а затем «Принудительное выполнение сценария».

2️⃣Временное отключение точки останова (Chrome, Edge и Firefox).

🔸Открываем инструмент Sources в Chrome/Edge или Debugger в Firefox и устанавливаем необходимые точки останова.
🔸После приостановки на первой точке останова нажимаем «Деактивировать точки останова», а затем «Возобновить».

📌Выполнение сценария возобновляется и не приостанавливается ни в одной другой точке останова.

#devtool #tip
💡Работа с датами в JavaScript: шпаргалка для фронтенд-разработчика

#cheatsheet #javascript #easy by David Mraz
💪 Уровни в айти-индустрии обычно отличаются опытом, знаниями, навыками, ответственностью и зарплатой. Но в одной компании вас могут оценить как сильного мидла, а в другой — как среднего джуна.

💬 Как вы считаете, какими навыками должны обладать джуны, мидлы и сеньоры?

#холивар
⚒️ React Datasheet Grid: компонент для создания таблиц, подобных Airtable и Excel

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

import {
DataSheetGrid,
checkboxColumn,
textColumn,
keyColumn,
} from 'react-datasheet-grid'

import 'react-datasheet-grid/dist/style.css'

const Example = () => {
const [ data, setData ] = useState([
{ active: true, firstName: 'Elon', lastName: 'Musk' },
{ active: false, firstName: 'Jeff', lastName: 'Bezos' },
])

const columns = [
{
...keyColumn('active', checkboxColumn),
title: 'Active',
},
{
...keyColumn('firstName', textColumn),
title: 'First name',
},
{
...keyColumn('lastName', textColumn),
title: 'Last name',
},
]

return (
<DataSheetGrid
value={data}
onChange={setData}
columns={columns}
/>
)
}
🤩 Range media queries в CSS: на заметку фронтенд-разработчику

#css #tip by Shripal Soni
🎙JetBrains JavaScript Day 2023 — бесплатное мероприятие, посвященное современной разработке на JavaScript и TypeScript.

📺 Состояние Angular – v17 / Simona Cotin, Engineering Manager в Google
📺 Фреймворк с поддержкой искусственного интеллекта? «Использование LLM, чтобы поставить человека на первое место» / Daniel Roe, Framework Lead в Nuxt
📺 Ложь, которую мы говорим себе, используя TypeScript / Stefan Baumgartner, owner oida.dev
📺 TC39 — от предложения к ECMAScript — шаг за шагом / Romulo Cintra, веб-энтузиаст в Igalia
📺 React: самые распространенные ошибки в 2023 году / Cory House, системный архитектор и автор курсов на Pluralsight
📺 JavaScript должен идти с батарейками / Luca Casonato, Software Engineer в Deno
📺 Это больше не просто Node.js / James M Snell, Principal Software Engineer в Cloudflare Workers
📺 View Transitions: факты и выдумки / Fred K. Schott, соавтор Astro

#чтопроисходит
🤩 Обзор легковесных JavaScript-фреймворков

Обзор предназначен для разработчиков Python/Django, но если для вашей задачи не нужен тяжелый(-ая) фреймворк/библиотека вроде React/Vue/Svelte/Angular, почему бы не взглянуть на многочисленные облегченные альтернативы из различных стеков: от Stimulus и htmx до Laravel Livewire и Hotwire.

👉 Читать
💬Напишите функцию на JavaScript, которая принимает параметр со строкой и преобразовывает ее в следующий вид:

"Привет Мир" => "прИвЕт мИр"
"Азбука Вкуса" => "АзбУкА вкУсА"

💡 Подсказка — "а", "е", "ё", "и", "о", "у", "ы", "э", "ю", "я"

😎 Через пару часов опубликуем решение!

#вопросы_с_собесов
🔽 Решение простой задачи, представленной выше:


function stringChanger(str) {
let result = ""
let letters = ["а", "е", "ё", "и", "о", "у", "ы", "э", "ю", "я"]

for (let i = 0; i < str.length; i += 1) {
if (letters.includes(str[i].toLowerCase())) {
result = result + str[i].toUpperCase()
} else {
result = result + str[i].toLowerCase()
}
}
return result
}

console.log(stringChanger("Привет Мир")) // "прИвЕт мИр"
console.log(stringChanger("Азбука Вкуса")) // "АзбУкА вкУсА"

💬 Есть более оптимальное решение? Присылайте в комментарии👇
This media is not supported in your browser
VIEW IN TELEGRAM
💡Шум Перлина с помощью CSS: на заметку фронтенд-разработчику

Вы можете создать такой фон с помощью одного элемента, используя свойство mask-composite в сочетании с анимацией mask-position.
.canvas {
background: var(--gradient);
mask: var(--dots), var(--noise);
mask-composite: intersect /* source-in, xor */;
animation: flicker;
}
@keyframes flicker {
to { mask-position: 50% 50% , 0 50%; }
}

Особенность заключается в наложении масок и использовании значения intersect для mask-composite.

Intersect работает так же, как и в SVG, комбинируя маски и беря их пересечение.

Маска dots — это базовый radial-gradient, который повторяется по всему элементу. Маска noise — сгенерированное изображение шума Перлина.
mask: radial-gradient(circle at 50% 50%, white 2px, transparent 2.5px) 50% 50% / 40px 40px;

mask: url("noise.png") 50% 50% / 256px 256px;


➡️ Поиграть можно здесь

#css #tip by Jhey
396. Safari, Invoker, PiP, Adobe и Figma, Container Queries, веб…
Веб-стандарты
🎙Свежий выпуск подкаста «Веб-стандарты»: Никита Дубко, Алексей Симоненко, Юля Миоцен про Safari TP, Invoker, PiP без вопросов, Adobe и Figma S10E01, Container Queries, веб это Chrome, Stylelint, ESLint и Monaspace.

00:01:31 Safari TP 183
00:07:05 Invoker в Chrome и Firefox
00:17:49 PiP без вопросов
00:26:34 Новинки Figma
00:36:00 Adobe и Figma S10E01
00:50:06 Container Queries
00:59:45 Веб это Chrome?
01:10:18 Stylelint и ESLint
01:26:53 GitHub Monaspace
01:43:04 Ответы на вопросы

YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка | Сайт подкаста

#подкасты
📈Опубликованы результаты Octoverse 2023

📌Тезисно о тенденциях ежегодного опроса от GitHub, которые касаются фронтенд-разработчика:
🔝JavaScript снова занял первое место среди самых популярных языков
☝️Популярность TypeScript растёт. В этом году язык впервые обогнал Java как третий по популярности язык среди проектов OSS на GitHub с ростом пользовательской базы на 37%

📌Другие тенденции:
◆ Разработчики все больше экспериментируют с базовыми ИИ-моделями
◆ Использование облачных приложений и технологий с каждым годом растет
◆ В 2023 году зарегистрировано наибольшее количество разработчиков, впервые внёсших вклад в открытый исходный код
◆ И многое другое

👉 Читать отчет