Web Overflow 🇺🇦
4.32K subscribers
388 photos
40 videos
3 files
519 links
Затишний блог про веб-розробку і не тільки 💛

Чат: @web_overflow_chat
Співпраця: @web_overflow_support
Автори: @lluchkaa & @anastasiia_tarasenko
Download Telegram
Lynx 🐈

Близько тижня тому компанія ByteDance представила новий JS-фреймворк Lynx, який дозволяє розробляти застосунки для iOS та Android.

Заявлено, що його продуктивність значно вища порівняно з React Native. Стилі можна писати навіть на CSS, що доволі зручно. А найцікавіше те, що Lynx не прив’язаний до конкретного фреймворку та підтримує React, Vue, Svelte та інші.

👉 Відкрити посилання
👉 Дивитися відео

#news
👍7🤯21😁1
5👍3
#todo написати функцію на будь-якій мові програмування, яка приймає два масиви чисел, відсортованих у порядку зростання, і повертає один відсортований масив, що містить усі елементи вхідних масивів. Заборонено використовувати вбудовані методи сортування.
2👍2
TypeScript port 🏎️

Цікавий факт: TypeScript написаний на ... TypeScript.

Щоб покращити продуктивність TypeScript (зокрема, type checker та компілятора), команда працює над портом на мову програмування Go. Перехід на нативну імплементацію та використання concurrency дозволили досягти приблизно 10-кратного прискорення, що вражає.

Здається, на нас чекають хороші зміни, але не найближчим часом — стабільний реліз очікується у TypeScript 7, який, ймовірно, з’явиться не раніше кінця цього року.

Детальніше про це можна дізнатися у відео за участі Anders Hejlsberg - провідного архітектора TypeScript, який пояснює, що саме робить команда та навіщо.

👉 Дивитися відео

#news
👍102
Welcome!

Let's practice our English! So...

👉 Do you think true privacy exists in today’s online world? What steps do you take to protect your privacy online?

Have a nice #english_friday 💛
😁113
#how_to перевантажити функції в TypeScript.

👉 Читати пост
4👍2
Як давно ви долучились до нашого каналу? 👀
Anonymous Poll
10%
2025
33%
2024
26%
2023
14%
2022
17%
Це було давно і неправда 😅
3👍3
TanStack Form 📋

Ми вже багато розповідали про продукти від TanStack — у них уже сформувалася ціла екосистема. Нещодавно вони представили ще один інструмент — TanStack Form.

Його створення мотивували відсутністю вбудованих засобів для роботи з формами у багатьох фреймворках. Через це розробникам доводиться або писати власні рішення, або використовувати сторонні бібліотеки. TanStack Form має на меті вирішити проблеми продуктивності (згадуємо redux-form), складної валідації та композиції форм.

Ось простий приклад використання TanStack Form:
const form = useForm({
defaultValues: { ... },
onSubmit: async ({ value }) => { ... },
})

...

<form.Field
name="firstName"
validators={{
onChange: ({ value }) => !value ? 'A first name is required' : undefined,
}}
children={(field) => (
<>
<label htmlFor={field.name}>First Name:</label>
<input
id={field.name}
name={field.name}
value={field.state.value}
onBlur={field.handleBlur}
onChange={(e) => field.handleChange(e.target.value)}
/>
<FieldInfo field={field} />
</>
)}
/>


Завдяки використанню form.Field тут є гарна підтримка TypeScript, а також можна пропускати деякі пропси (аналогічно до <Controller control /> у react-hook-form).

Валідація підтримується як для всієї форми (через useForm, зокрема зі схемами типу zod), так і для окремих полів.

Що одразу привертає увагу - підхід через children. Полю передається функція, а не JSX-елементи. Команда TanStack у коментарях зазначає, що render-пропси - "great". А що думаєте ви?

👉 Відкрити посилання

#library
👍81🔥1
Radashi ⚙️

Колись ми розповідали про Radash — легку й корисну бібліотеку, яка містила багато зручних методів і могла стати альтернативою Lodash. Вона була оптимізованою для TypeScript мала меншу вагу, що робило її привабливим вибором для багатьох розробників.

Проте з часом підтримку Radash припинили. На щастя, з’явилася її дочірня бібліотека, яка продовжує розвиток проєкту та зберігає ключові переваги попередника. Вона, як і раніше, пропонує безліч утиліт, які можуть стати в пригоді в будь-якому проєкті. Тому, якщо ви шукали сучасну й легку альтернативу Lodash, варто звернути на неї увагу.

👉 Відкрити посилання

#library
👍62
4👍2🤯1
#todo написати функцію на будь-якій мові програмування, яка приймає масив, що складається з чисел або символів операцій (+, -, *, /), інтерпретує його як вираз у префіксній нотації, обчислює значення та повертає числовий результат.

Наприклад:
['+', 10, 2] => 12
['*', 2, '+', 10, 2] => 24
['/', '*', 2, '+', 10, 2, 4] => 6
4🤯2
Spell Checker 🧙

Трішки про наболіле...

Жоден компілятор чи інтерпретатор не перевіряє ваш код на правопис. Але його читатимуть ваші колеги. Тому, щоб трішки полегшити життя собі та іншим, використовуйте spell check. Пів року тому ми вже писали про це, тож цей пост — ще одне нагадування.

👉 Читати пост

Тільки не відкривайте цю лінку - https://guthib.com/


#tips
4👍2😁2
Welcome!

Let's practice our English! So...

👉 If you had to explain your job to a 5-year-old, how would you do it?

Have a nice #english_friday 💛
👍7🔥3🎉2
This media is not supported in your browser
VIEW IN TELEGRAM
#how_to створити ефект набору тексту, як у терміналі 💻

👉 Відкрити посилання
👍61
Ховайте свої API-ключі 🎂

Починаємо тиждень із повчальних історій. Якщо ви вже давно з нами, то знаєте, що Настя — людина традицій. І кожного 21 березня вона збирає всіх наших друзів їсти київський торт. Ніхто його не любить, і вона сама теж, але це вже традиція. У мене є питання до її політичних поглядів, але то вже особисте.

Цього року ми хотіли запаритися й організувати різні інтерактиви. Одним із них була вікторина. Для цього є гарний вебзастосунок, тому вирішив його використати й почав складати список питань. Я хотів додати зображення та відео для інтерактивності, але виявилося, що ця функція доступна лише у PRO-акаунтах. Щоб отримати доступ, потрібно було одноразово сплатити певну суму $. Платити не дуже хотілося (київський торт сам по собі також не дешевий), тому я вже почав шукати безкоштовні альтернативи, але стало цікаво, як усе влаштовано на цьому сайті.

Перше, що помітив – весь вихідний код був відкритий (не мініфікований, не обфускований). У ньому знайшовся адмінський API-ключ для Supabase, який був доступний на клієнті. Обмежень по доменах не було, тому вдалося підключитися і отримати доступ.

Інформація про план акаунта зберігалася в базі даних. Для цього використовувався окремий бекенд, і не було очевидно, чи ця база на Supabase.

З вихідного коду також стало відомо, що існує адмінська сторінка, доступна лише для одного акаунта – розробника. На щастя, ID цього акаунта був захардкоджений. Завдяки доступу до Supabase вдалося створити magic link, який дозволяв увійти на будь-який акаунт без пароля. Після цього залишалося лише видати собі Pro-план через адмінську панель.

Висновок: Завжди перевіряйте, які дані ви відкриваєте публічно, щоб випадково не дати доступ до своїх ресурсів.

З етичних причин посилання не публікую – збираюсь повідомити розробника про вразливість. Але сподіваюсь, що PRO-акаунт мені залишать, бо створювати вікторини мені сподобалось.

То шо, я тепер хакер, получається, чи шо?

#localhost
🔥28😁72👍1
🙃
😁221
🔥 Next.js Interview Questions and Answers - 2025

Знайшли для вас круту шпаргалку про Next.js!

Стаття містить чудову підбірку питань і відповідей, включаючи основи SSR, SSG, ISR, а також маршрутизацію, API-роути та багато іншого. Ідеально підходить для підготовки до інтерв'ю!

Помітили, що немає питань про App Router. Тому, якщо вам буде цікаво, маякніть, спробуємо розкрити цю тему.

👉 Читати статтю

Зберігайте та користуйтесь 💛

#interview
👍10🔥5
Що виведе консоль?
Anonymous Quiz
37%
undefined true
41%
undefined false
11%
null true
11%
null false
👍8