tproger_web | Unsorted

Telegram-канал tproger_web - Веб-страница

26007

Всё по фронтенду, бэкенду и девопсу в одном месте Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/64ai

Subscribe to a channel

Веб-страница

Как искать работу в IT в 2025, не вызывая подозрений у санитаров

В отборе в IT страсти кипят не меньше, чем в хайлоаде. Вместе с Proglib мы провели исследование и спросили сотни айтишников: что реально выводит из себя в найме?

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

Надеемся, материал хоть и немного, но изменит процессы найма к лучшему. Поэтому сохраняйте, делитесь и прожимайте ❤️

Читать полностью…

Веб-страница

Присоединяйся к хакатону года в сфере travel-tech - О!Хакатону от Островка ❤️

Островок приглашает Go и Python разработчиков, а также аналитиков и продакт-менеджеров попробовать свои силы в реальных бизнес-задачах и побороться за денежный приз.

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

Призовой фонд: 1 000 000 ₽
Регистрация открыта до 18 сентября.
Старт 26 сентября! ❤️

Подробности и регистрация

Реклама. ООО "БРОНИРОВАНИЕ ГОСТИНИЦ", ИНН 7703389880, erid: 2W5zFJuGSKr

Читать полностью…

Веб-страница

Зачем нужен BFF: архитектура, которая избавит фронтенд от боли

Когда у вас один API сразу для разных платформ, это усложняет логику, удлиняет ответы и вообще делает отладку и работу с кодом сложнее. Здесь на помощь приходит BFF — Backend For Frontend — прослойка между клиентскими приложениями и основным API.

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

🤔 А как у вас организован диалог фронта и бэка?

#бэкенд #фронтенд #bff

Читать полностью…

Веб-страница

Упрощаем работу с регулярками в JavaScript

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

#фронтенд #javascript #regexp

Читать полностью…

Веб-страница

Не понимаю, как я это упустил: Microsoft раскатила расширение, которое превращает VS Code в полноценную IDE для работы с PostgreSQL, без переключений между тулзами 👍

Внутри всё, что нужно:
• Визуализация схемы базы прямо в IDE.
• IntelliSense с автокомплитом и подсветкой и форматированием SQL-запросов.
• Запуск PostgreSQL в Docker.
• Быстрое подключение к любой базе (локально, в облаке).
• История запросов для быстрого повторного запуска.
• Просмотр и управление объектами БД.
• История запросов и запуск psql прямо из VS Code.
• Интеграция с GitHub Copilot — AI пишет и объясняет SQL

Поставить можно тут

Читать полностью…

Веб-страница

Наглядный совет, как создавать простые анимации с помощью CSS

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

#совет #css

Читать полностью…

Веб-страница

Команда Google Chrome выпустила бесплатный учебник по веб-разработке

В нём собраны курсы по разным темам, нужным любому веб-разработчику: HTML, CSS, JS, PWA, Формы, тестирование и так далее. Главное, что платить ни за что не нужно.

Переходите по ссылке и стартуйте с любого курса: https://web.dev/learn?hl=ru

#курс

Читать полностью…

Веб-страница

#простымисловами: Что такое srcset и зачем он нужен

Обычный атрибут src в теге <img> указывает одну-единственную картинку. Но что делать, если пользователи заходят с телефонов, ретина-экранов и 4K мониторов? Показывать одну и ту же версию — значит терять в качестве или перегружать страницу.

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

<img 
src="image-400.jpg"
srcset="
image-400.jpg 400w,
image-800.jpg 800w,
image-1200.jpg 1200w
"
sizes="(max-width: 600px) 400px,
(max-width: 1000px) 800px,
1200px"
alt="Пример адаптивного изображения">


🔍 Что здесь происходит:

src — запасной вариант на случай, если браузер не поддерживает srcset.
srcset — список изображений с их шириной.
sizes — помогает браузеру понять, сколько пикселей реально нужно на экране.

В результате:

📱 На телефоне загрузится лёгкое изображение.

💻 На ноутбуке — среднее.

🖥 А на 4K-мониторе — чёткое и большое.

❗️ Важно: src обязателен, так как в браузере пользователя может отсутствовать поддержка srcset.

#фронтенд #html

Читать полностью…

Веб-страница

Совет для тех, кто любит сглаживать углы

Речь о вёрстке, разумеется. Если у вас есть элемент с внешним и внутренним радиусом углов, то они будут выглядеть лучше, если на внешний радиус поставить сумму внутреннего + размер отступа.

На картинке наглядно это показано.

#советы

Читать полностью…

Веб-страница

Mobile‑first или Desktop‑first? Как выбрать с чего начать вёрстку

При запуске проекта важно определить: что приоритетнее — мобильный или десктопный интерфейс? Эта статья объясняет:

— Почему mobile‑first = UX для пальцев: удобство планшетов и смартфонов, индексирование Google.
— Когда desktop‑first выигрывает: дашборды, CRM, интерфейсы с насыщенным взаимодействием.
— Простые примеры медиазапросов (@media (min-width) vs max-width) и практические советы по написанию адаптивного CSS.

С чего обычно начинаете вы?

#фронтенд #css #адаптивность

Читать полностью…

Веб-страница

Cloudflare призналась, что не может вернуть нормальную скорость работы в РФ

С начала июня сайты на Cloudflare начали открываться через раз или вообще не грузятся. Сегодня сама компания подтвердила: трафик в России упал на ~30%, страницы «обрезаются» после 16 КБ, а сделать с этим ничего нельзя...

По версии Cloudflare, трафик режут крупные провайдеры. Почему — неизвестно. Официальных писем от госструктур не было.

Так и живем.

@your_tech

Читать полностью…

Веб-страница

Как переносить «висячие» слова с помощью JavaScript

Тексты, в которых на новой строке одиноко торчит «в», «на» или «и», сразу теряют в читаемости. В этой статье — короткий, но полезный приём: как с помощью JavaScript автоматически заменять пробелы после коротких слов на неразрывные и избавляться от висячих слов. Работает и для HTML-содержимого, и для Markdown. Минимум кода — максимум пользы для интерфейса и редактурной чистоты.

#фронтенд #javascript #ux

Читать полностью…

Веб-страница

Первый сайт «своими руками»: пошаговая инструкция без фреймворков

Начало не всегда должно быть сложным. В этом гайде поэтапно разбирается создание сайта на чистом HTML и CSS — от структуры папок до стилей, адаптивного меню и внедрения Google Fonts. Полезно как новичкам, так и тем, кто хочет освежить фундамент перед переходом на современные фреймворки.

А вы когда последний раз вручную писали сайт без сборщиков?

#фронтенд #html #css

Читать полностью…

Веб-страница

Для чего используется stopPropagation()

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

При клике по вложенному контейнеру в консоль выводится сообщение «Внутренний контейнер». Если убрать event.stopPropagation(), то при клике по вложенному контейнеру, в консоль будут выведены оба сообщения.

#основы #javascript

Читать полностью…

Веб-страница

Один вечер + GPT → адаптивный SPA-сайт на Next.js без кода

Представьте, что вы описываете сайт в текстовом поле — и через пару минут получаете готовый SPA на Next.js с адаптивной вёрсткой, Tailwind, формой подписки и даже аналитикой. Без HTML, без CSS, без сборки руками. Это не будущее, а рабочий кейс: в статье показано, как GPT и Vercel V0 позволяют разработчику сэкономить часы, а то и дни, на типовых задачах.

#фронтенд #nextjs #ии

Читать полностью…

Веб-страница

Сайт-рулетка для фильмов: создаём интерактивный развлекательный проект на Vue и TMDb

srd97635/movie-roulette-website-e2ed8c544db3">Рулетка для выбора случайного фильма по жанру — отличный способ попрактиковаться в работе со Vue, API и адаптивной верстки.

Это не просто урок — это реальный портфолио-проект, который вы можете повторить и улучшить.

#фронтенд #vue #петпроект

Читать полностью…

Веб-страница

Добавляем питомцев прямо в редактор кода

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

Устанавливается просто, как обычный плагин. Инструкция тут: https://marketplace.visualstudio.com/items?itemName=tonybaloney.vscode-pets

#vscode #плагины

Читать полностью…

Веб-страница

Кнопка «удаления» с продуманной анимацией

Отличный вариант для вашего проекта. Конечно, если у вас есть в нём кнопка для удаления чего-либо.

Посмотреть код можно здесь: https://codepen.io/aaroniker/pen/BaNzEWe

#codepen

Читать полностью…

Веб-страница

Для амбициозных бакалавров и молодых специалистов

Хочешь развиваться осознанно и расти в профессии и доходе? Выбирай высшее образование у сильных экспертов.

Центральный университет ведет набор на пять программ магистратуры по популярным ИТ-направлениям. Обучение с фокусом на практике: студенты используют актуальный софт и решают реальные задачи от бизнес-заказчиков.

Партнеры — ведущие компании на рынке РФ: ВТБ, Сбер, Т-Банк, Яндекс, Avito, Ozon, Х5 Tech и другие. 62% магистрантов ЦУ находят новую работу с ростом зарплаты в 1,6 раза уже на первом курсе. Средняя зарплата — 195 тысяч рублей.

Обучение можно совмещать с работой, а поступить — уже с третьего курса.

Выбери свое направление:
— Онлайн-магистратура по ML.
— Продуктовая аналитика.
— Машинное обучение.
— Продуктовый менеджмент.
— Backend-разработка.

И подавай заявку на поступление уже сейчас.

Реклама. АНО ВО "Центральный университет", ИНН 7743418023, erid:2Ranymrgjuj

Читать полностью…

Веб-страница

Коллеги, записываем и применяем в работе

Читать полностью…

Веб-страница

Сайт-портфолио нового уровня

Следите за мыслью. Что будет, если сделать интерактивный 3D-офис, в котором стоит с ЭЛТ-монитором, в который встроено нечто напоминающее Windows 95, в которой есть игры и браузер, в который встроен реальный сайт с портфолио? А получится проект Генри Хеффернана, созданный с использованием React, Three.js и WebGL.

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

Заценить и оценить можно тут: https://henryheffernan.com

#фронтенд #webgl #threejs #портфолио

Читать полностью…

Веб-страница

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

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

<System>
You are a Senior Software Engineer with 10+ years of full-stack development experience. You specialize in clean code practices, debugging, peer reviews, documentation, test-driven development (TDD), and performance optimization. Your responses should reflect industry best practices and clear, well-structured reasoning.
</System>

<Context>
The user is working on a software project and requires support with one or more of the following:
- Writing new code
- Debugging existing code
- Reviewing submitted code
- Explaining how a section of code works
- Refactoring inefficient or outdated code
- Writing or improving documentation
- Writing or improving test coverage

The user's goal is to improve code quality, maintainability, and performance.
</Context>

<Instructions>
1. Identify the specific type of task (write/debug/review/explain/refactor/document/test) based on the user's input.
2. Ask clarifying questions only if essential information is missing.
3. Provide detailed output with inline comments where helpful.
4. Suggest improvements aligned with modern best practices.
5. Include reasoning behind each major action or recommendation.
6. When writing or refactoring code, ensure it is modular, readable, and efficient.
7. When reviewing code, provide a bullet-point summary of observations and a suggestion section.
8. For documentation, write in clear, beginner-friendly language while also addressing intermediate-level concepts.
9. For testing, use the most suitable testing framework based on the programming language.
</Instructions>

<Constraints>
- Maintain readability and clean code principles.
- Avoid third-party libraries unless absolutely necessary.
- Prefer simplicity and clarity over clever or overly complex solutions.
- When unsure of the tech stack, ask the user to confirm.
- Keep each function under 50 lines unless context demands otherwise.
</Constraints>

<Output Format>
<TaskType> Write | Debug | Review | Explain | Refactor | Document | Test </TaskType>
<Language> Python | JavaScript | TypeScript | Java | C++ | Other (confirm with user) </Language>
<File/FunctionName> Specify target file or function name </File/FunctionName>

<Output>
[Insert code, explanation, or documentation as per task here, formatted with markdown-style code blocks]
</Output>

<Suggestions>
[List of improvements, next steps, or alternate methods the user may explore]
</Suggestions>
</Output Format>

<Reasoning>
Apply Theory of Mind to analyze the user's request, considering both logical intent and emotional undertones. Use Strategic Chain-of-Thought and System 2 Thinking to provide evidence-based, nuanced responses that balance depth with clarity.
</Reasoning>

<User Input>
Reply with: "Please enter your code request (e.g., Write, Debug, Review, Explain, Refactor, Document, or Test) and provide the code snippet or context, and I will start the process," then wait for the user to provide their specific task and code context.
</User Input>


Сохраняйте себе и учитесь с кайфом.

Читать полностью…

Веб-страница

Внимание, пересчёт пожилых программистов.

🫡 — мне 25+
🗿 — мне меньше 25, но я не готов стареть так рано

Читать полностью…

Веб-страница

SSE vs WebSocket: разобрались, что где лучше работает

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

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

#sse #websocket

Читать полностью…

Веб-страница

Деплоим свой React-сайт, или что делать на сервере

Когда ваш первый сайт готов, и VPS арендован, появляются закономерные вопросы: как развернуть проект на домене? Пост подойдет новичкам, которые впервые привязывают что-то свое к домену.


Шаг 1. Стягиваем код

Сначала клонируем репозиторий проекта на VPS:


git clone https://github.com/username/repo-name.git
cd repo-name/


Если для запуска понадобится Node.js определенной версии, установим через официальный скрипт:


curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs


После этого установим зависимости проекта (их указываем в package.json):


npm install


Если на сервере маловато оперативной памяти (например, минималка на 1-2 ГБ RAM) — может помочь добавление swap-файла:


sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile


Шаг 2. Настраиваем переменные окружения

Создаем файл .env в корне проекта. Админ использует условно бесплатную БД Supabase, потому шаблон состоит из таких средовых переменных:


NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=


Обратите внимание на префикс NEXT_PUBLIC_ — он необходим, чтобы переменные стали доступны на клиенте в приложениях, построенных на Next.js.


Шаг 3. Собираем проект

Для деплоя нужна готовая сборка с оптимизированными файлами в папке build/


npm run build



Шаг 4. Автоматический запуск с PM2

pm2 — удобный менеджер процессов для Node.js, с его помощью каждый новый коммит будет «усвоен» автоматически. Устанавливаем глобально:


sudo apt install -y curl
sudo npm install -g pm2


Запускаем приложение через конфигурационный файл:


pm2 start ecosystem.config.js
pm2 save
pm2 startup


Последняя команда создаст автозапуск после перезагрузки сервера.


Шаг 5. Установка и настройка Nginx

nginx будет выступать обратным прокси и обеспечит работу по доменному имени. Устанавливаем:


sudo apt update
sudo apt install -y nginx


Создаём конфигурацию сайта:


sudo vim /etc/nginx/sites-available/helenkapatsa


Это стартовая версия конфиги. Адаптировать ее под свои нужды помогут документация и нейронки:


server {
listen 80;
server_name example.com www.example.com;

location / {
proxy_pass http://localhost:3000; # порт вашего React-приложения или PM2 процесса
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}


Активируем сайт и проверяем конфигурацию:


sudo ln -s /etc/nginx/sites-available/domain/etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx



Шаг 6. Получаем SSL-сертификат Let's Encrypt

Для безопасной работы сайта нужен сертификат. Установим certbot:


sudo apt install -y certbot python3-certbot-nginx


Добавим в доменном регистраторе (например, reg.ru) ресурсные записи:
A - @ - [IP-адрес сервера без портов]
А - www - [IP-адрес сервера без портов]

«Усвоение» записей обычно занимает не больше получаса.

Запустим получение сертификата:


sudo certbot --nginx -d example.com -d www.example.com


Certbot автоматически настроит Nginx на использование HTTPS. Его, правда, придется перегенерировать раз в 4 месяца. Но можно настроить и автообновление.

Бывает, что, несмотря на отсутствие правил файервола, блокирующих порты 80 и 443, генерация SSL-сертификата через Let's Encrypt падает. Это может быть связано с политиками хостинг-провайдера, NAT, или другими непрозрачными ограничениями.

Если столкнулись с такой проблемой, попробуйте сменить хостинг-провайдера — чаще всего это решает вопрос с выдачей сертификата.

Это последний шаг, теперь ваш сайт на домене, и у вас в копилке новая ачивка :)

#бэкенд #react
@tproger_web

Читать полностью…

Веб-страница

Естественно, Liquid Glass

Нашел интересный CodePen-проект: Apple со своим обновлением заставили сообщество переосмыслять Liquid Glass, не без этого. Автор реализовал такое с помощью пользовательского шейдера (shaderMaterial) на WebGL с помощью three.js.

Посмотреть код можно здесь: https://codepen.io/supah/pen/dPodbrX

#codepen #css #javascript
@tproger_web

Читать полностью…

Веб-страница

ИИ должен помогать, а не мешать: почему техлиды разочарованы

Кажется, что AI-инструменты — это сплошной буст для команд: код подскажет, баги найдёт, документацию напишет. Но на деле всё сложнее.

Согласно опросу, больше половины техлидов недовольны результатами:
— ИИ экономит время, но снижает качество кода;
— разработчики начинают «думать по шаблону»;
— растёт нагрузка на лидов — проверять, править, дообъяснять.

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

#ии #новости

Читать полностью…

Веб-страница

Что не так с var — и почему его всё реже используют

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

Да, var — не устарел и не запрещён. Он по-прежнему часть JavaScript. Но в современной разработке ему предпочитают let и const. Не потому что это модно, а потому что так безопаснее и предсказуемее.

✅ Почему let и const — лучше:

— работают в пределах блока, а не всей функции;
— защищают от доступа до инициализации (TDZ);
— не позволяют случайно переобъявить переменную;
— делают поведение кода очевидным — особенно в условиях и циклах.

🚫 Почему var — неудачный выбор по умолчанию:

— всплывает с undefined, даже если объявлен ниже;
— работает во всей функции, а не в том месте, где его видно;
— легко переопределяется и ведёт себя неожиданно в асинхронных сценариях и циклах.

⚙️ А как же производительность?

На уровне сборки (Vite, esbuild, Webpack) весь ваш let и const может быть скомпилирован в var, если это действительно ускоряет загрузку.

Вы пишете безопасно, а сборщик сам оптимизирует.

📌 Когда var всё-таки уместен?

Если вы работаете со старым кодом, пишете под очень старые браузеры, или используете особые трюки с hoisting — var может быть оправдан. Но это редкость, а не рекомендация.

Всё ещё не согласны? Делитесь вашим мнением в комментариях.

#простымисловами #javascript

Читать полностью…

Веб-страница

10 телеграм-каналов, которые реально читают сеньоры

Ваша лента — это поле битвы за ваше внимание. Мы опросили опытных айтишников и в этой подборке собрали 10 каналов, которые действительно читают и обсуждают профессионалы Middle/Senior — где разбирают архитектуру, непростые кейсы, масштабируемость и производительность. Без воды и хайпа — только реальные разборы и экспертные идеи.

Мы упустили какой-то важный канал? Поделитесь им в комментариях.

Читать полностью…

Веб-страница

Почему ваше приложение тормозит: архитектурные bottlenecks, которые никто не замечает

Как найти и устранить архитектурные bottleneck'и: причины тормозов, типовые ошибки и пошаговая методика диагностики.

— Читать дальше «Почему ваше приложение тормозит: архитектурные bottlenecks, которые никто не замечает»

#nodejs

@backend_tproger | Другие наши каналы

Читать полностью…
Subscribe to a channel