Git rebase — мощный инструмент, помогающий перенести или объединить один, или несколько коммитов в новый базовый коммит, переписав историю проекта так, чтобы ваша ветка выглядела созданной из другого коммита. Он помогает поддерживать более чистую и линейную историю.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Если ошибка «маловероятна», значит, она обязательно случится — в самый неподходящий момент.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Статья объясняет, как с помощью Proxy в ванильном JavaScript реализовать реактивные сигналы, упрощая управление состоянием. Рассматриваются основные принципы и примеры применения.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья объясняет, как gRPC упрощает переход от монолита к микросервисам в приложениях на основе Domain Driven Design. Рассматриваются преимущества: прямые вызовы, типизация, децентрализация и автоматизация методов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Как в приложении Node.js происходит обработка клиентских запросов? Какая функция помогает обрабатывать тот или иной запрос? Чтобы ответить на эти вопросы, заглянем в "закулисье" маршрутизации фреймворка Express.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите скрипт, который принимает название города и выводит текущую температуру в этом городе, используя бесплатный API OpenWeatherMap.
Пример использования:
node weather.js London
Текущая температура в London: 15°C
Решение задачи
const https = require('https');
const city = process.argv[2];
const apiKey = 'your_openweathermap_api_key'; // Замените на свой API-ключ
if (!city) {
console.error('Пожалуйста, укажите город.');
process.exit(1);
}
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiKey}` ;
https.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
const weather = JSON.parse(data);
if (weather.main) {
console.log(`Текущая температура в ${city}: ${weather.main.temp}°C`);
} else {
console.error(`Не удалось получить данные о погоде для города: ${city}`);
}
});
}).on('error', (err) => {
console.error('Ошибка:', err.message);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Хотите интегрировать ShakaPlayer в приложение Lightning для управления воспроизведением? Изучите краткое руководство по расширению стандартного медиаплеера в Lightning и использованию его с ShakaPlayer.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Детальный разбор того, как простой анализ производительности помог обнаружить неэффективность WebSocket и оптимизировать передачу данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Давайте уделим немного времени рассмотрению Dialog API, Popover API и остальных. Рассмотрим, когда лучше использовать каждый из них в зависимости от требований. Модальные или немодальные? JavaScript или чистый HTML/CSS? Не уверены? Не волнуйтесь, мы разберёмся во всём этом.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите скрипт, который принимает путь к папке и выводит количество файлов каждого расширения в этой папке.
Пример:
node fileExtensions.js ./example-folder
txt: 3
js: 5
json: 2
Решение задачи
const fs = require('fs');
const path = require('path');
const folderPath = process.argv[2];
if (!folderPath) {
console.error('Укажите путь к папке.');
process.exit(1);
}
fs.readdir(folderPath, (err, files) => {
if (err) {
console.error('Ошибка чтения папки:', err.message);
return;
}
const extensionCount = files.reduce((acc, file) => {
const ext = path.extname(file).slice(1); // Получаем расширение без точки
if (ext) {
acc[ext] = (acc[ext] || 0) + 1;
}
return acc;
}, {});
console.log('Расширения файлов:');
for (const [ext, count] of Object.entries(extensionCount)) {
console.log(`${ext}: ${count}`);
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья исследует концепцию потоков в Node.js, объясняя их ключевую роль в модулях, таких как fs и http. Рассматриваются основные концепции и ментальная модель, помогающая понять и эффективно использовать потоки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Статья объясняет технику делегирования событий в веб-разработке, показывая, как использование одного слушателя на родительском элементе упрощает управление событиями и повышает производительность.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#вакансия #удаленка #fulltime #backend
Backend Engineer (Nodejs + Python) — сначала быстро, потом
Мы делаем продукт для BTC-майнинга. Пишем веб-бэкенды на Node.js + Python, гоняем клиентский трафик и телеметрию, храним метрики в Clickhouse, биллинг в Postgres. Нам нужен человек, который быстро доставляет ценность, не боится грязных MVP и умеет превращать их в чистые, наблюдаемые сервисы.
Формат:
- Full-time, remote-friendly (UTC±2 ок).
- Язык: RU на уровне команды.
- Техническая команда: веб-фулстэк, Rust-бэкенд, CTO.
- Решения принимаем быстро, мерджим часто, катим сразу, рефакторим планово.
- Вилка: $3000-$6000
Чем заниматься:
- Проектировать и делать веб-API (REST/WebSocket) для кабинета и админки: биллинг, выплаты, нотификации, вспомогательные сервисы.
- Интеграции: Clerk (auth, impersonation), Postgres (RLS, миграции), ClickHouse (агрегаты статистики), Redis (кэш/lock), R2/S3 (CDN).
- Наблюдаемость: метрики/логи/трейсинг, дашборды и алерты (Prometheus/Grafana/Loki).
- Производительность: индексы, EXPLAIN, профилирование, backpressure.
Технологии (основное):
- Node.js (TypeScript, Express/Nest/Fastify), Python (FastAPI/aiohttp), async I/O.
- Postgres (SQL, триггеры и хранимки, индексы, планировщик), ClickHouse, Redis
- Docker, GitHub Actions.
- Линтеры/тайпчекеры: ESLint/Prettier, ruff/black/mypy, pyright.
Как мы работаем («быстро на костылях → потом нормально»):
- Спринт 1–3 дня: узкий MVP, минимум слоёв, прямые SQL/SDK, фича-флаг, happy-path e2e.
- Дожим после релиза: типизация, валидация (Pydantic/Zod), идемпотентность, ретраи с backoff, метрики, алерты, интеграционные тесты, миграции и docs (короткие ADR).
- В PR ждём: чёткие таймауты, поведение при ошибках, метрики и лог-ключи для дебага.
Требования (must-have):
- 4+ лет в бэкенде, реально продуктивен в Node.js и/или Python, готов работать в обоих.
- Сильный SQL/Postgres: индексы, EXPLAIN, блокировки, миграции; понимаешь, где узкие места.
- Асинхронщина, очереди, кэш, идемпотентные API, ретраи/таймауты/backoff, at-least-once/дедуп.
- Наблюдаемость как привычка: метрики до кода, лог-корреляция, дешёвые SLO.
- Умение быстро «прибить костыль» и потом довести до прод-качества.
Будет плюсом:
- ClickHouse, высоконагруженная телеметрия.
- Понимание домена: финтех, крипто.
- Pulumi, Prometheus/Grafana/Loki.
- Supabase (RLS), Clerk, R2/S3.
Что считаем успехом (30/60/90):
- 30 дней: 3–4 фичи в проде, метрики/алерты на свои сервисы, первое снятие узкого места (индекс/кэш).
- 60 дней: закрыт e2e «регистрация → начисления → баланс», выплаты в sandbox, стабилизирован оффлайн-детект.
- 90 дней: берёшь end-to-end зону (Billing или Notifications), выжигаешь технический долг v0, покрытие интеграционными тестами ≥60% на своём коде, минус 3 главных перф-бутылочных горлышка.
Кому точно к нам:
- Ты делаешь PR в тот же день, не ждёшь идеального ТЗ.
- Тебя не пугает переписывать свой код через неделю, если так быстрее для бизнеса.
- Любишь цифры: latency, error-rate, p95, RPS — не «где-то там», а в твоём дашборде.
Кому лучше не к нам:
- Нужен «архсовет на 6 встреч» перед Hello World.
- Болит от временных решений и фича-флагов.
- Не готов брать на себя поддержку того, что выкатил.
Процесс найма:
- Выполнение тестового задания.
-60 мин созвон: разбираем тестовое задание, короткий deep-dive по одному твоему проекту (где ты сначала сделал «как попало», а потом правильно).
Финальное собеседование с CEO.
-Как откликнуться: пришлите 1–2 ссылки на репо/PR + 3–5 предложений про ваш «костыль → нормальное решение» (какие компромиссы, какие метрики улучшили).
— Готовы «возить углём» и шипить быстро? Поговорим.
Telegram: @dishsh
Backend Engineer (Nodejs + Python) — сначала быстро, потом
Мы делаем продукт для BTC-майнинга. Пишем веб-бэкенды на Node.js + Python, гоняем клиентский трафик и телеметрию, храним метрики в Clickhouse, биллинг в Postgres. Нам нужен человек, который быстро доставляет ценность, не боится грязных MVP и умеет превращать их в чистые, наблюдаемые сервисы.
Формат:
- Full-time, remote-friendly (UTC±2 ок).
- Язык: RU на уровне команды.
- Техническая команда: веб-фулстэк, Rust-бэкенд, CTO.
- Решения принимаем быстро, мерджим часто, катим сразу, рефакторим планово.
- Вилка: $3000-$6000
Чем заниматься:
- Проектировать и делать веб-API (REST/WebSocket) для кабинета и админки: биллинг, выплаты, нотификации, вспомогательные сервисы.
- Интеграции: Clerk (auth, impersonation), Postgres (RLS, миграции), ClickHouse (агрегаты статистики), Redis (кэш/lock), R2/S3 (CDN).
- Наблюдаемость: метрики/логи/трейсинг, дашборды и алерты (Prometheus/Grafana/Loki).
- Производительность: индексы, EXPLAIN, профилирование, backpressure.
Технологии (основное):
- Node.js (TypeScript, Express/Nest/Fastify), Python (FastAPI/aiohttp), async I/O.
- Postgres (SQL, триггеры и хранимки, индексы, планировщик), ClickHouse, Redis
- Docker, GitHub Actions.
- Линтеры/тайпчекеры: ESLint/Prettier, ruff/black/mypy, pyright.
Как мы работаем («быстро на костылях → потом нормально»):
- Спринт 1–3 дня: узкий MVP, минимум слоёв, прямые SQL/SDK, фича-флаг, happy-path e2e.
- Дожим после релиза: типизация, валидация (Pydantic/Zod), идемпотентность, ретраи с backoff, метрики, алерты, интеграционные тесты, миграции и docs (короткие ADR).
- В PR ждём: чёткие таймауты, поведение при ошибках, метрики и лог-ключи для дебага.
Требования (must-have):
- 4+ лет в бэкенде, реально продуктивен в Node.js и/или Python, готов работать в обоих.
- Сильный SQL/Postgres: индексы, EXPLAIN, блокировки, миграции; понимаешь, где узкие места.
- Асинхронщина, очереди, кэш, идемпотентные API, ретраи/таймауты/backoff, at-least-once/дедуп.
- Наблюдаемость как привычка: метрики до кода, лог-корреляция, дешёвые SLO.
- Умение быстро «прибить костыль» и потом довести до прод-качества.
Будет плюсом:
- ClickHouse, высоконагруженная телеметрия.
- Понимание домена: финтех, крипто.
- Pulumi, Prometheus/Grafana/Loki.
- Supabase (RLS), Clerk, R2/S3.
Что считаем успехом (30/60/90):
- 30 дней: 3–4 фичи в проде, метрики/алерты на свои сервисы, первое снятие узкого места (индекс/кэш).
- 60 дней: закрыт e2e «регистрация → начисления → баланс», выплаты в sandbox, стабилизирован оффлайн-детект.
- 90 дней: берёшь end-to-end зону (Billing или Notifications), выжигаешь технический долг v0, покрытие интеграционными тестами ≥60% на своём коде, минус 3 главных перф-бутылочных горлышка.
Кому точно к нам:
- Ты делаешь PR в тот же день, не ждёшь идеального ТЗ.
- Тебя не пугает переписывать свой код через неделю, если так быстрее для бизнеса.
- Любишь цифры: latency, error-rate, p95, RPS — не «где-то там», а в твоём дашборде.
Кому лучше не к нам:
- Нужен «архсовет на 6 встреч» перед Hello World.
- Болит от временных решений и фича-флагов.
- Не готов брать на себя поддержку того, что выкатил.
Процесс найма:
- Выполнение тестового задания.
-60 мин созвон: разбираем тестовое задание, короткий deep-dive по одному твоему проекту (где ты сначала сделал «как попало», а потом правильно).
Финальное собеседование с CEO.
-Как откликнуться: пришлите 1–2 ссылки на репо/PR + 3–5 предложений про ваш «костыль → нормальное решение» (какие компромиссы, какие метрики улучшили).
— Готовы «возить углём» и шипить быстро? Поговорим.
Telegram: @dishsh
❤2🔥1😁1
В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
process.env — это объект в Node.js, который содержит переменные окружения. Они используются для хранения конфиденциальной информации (например, ключей API, паролей) и настройки приложений в разных средах (разработка, тестирование, продакшен).// Установите переменные окружения (например, в .env файле или через терминал)
// В Linux/Mac: export API_KEY=12345
// В Windows (cmd): set API_KEY=12345
// Доступ к переменным окружения
console.log(`Ваш API ключ: ${process.env.API_KEY}`);
// Используем переменные окружения для конфигурации
if (process.env.NODE_ENV === 'production') {
console.log('Запущено в режиме продакшена');
} else {
console.log('Запущено в режиме разработки');
}
🗣️ Переменные окружения через process.env позволяют настраивать поведение приложения без изменения кода. Это важно для обеспечения безопасности и управления настройками.
Please open Telegram to view this post
VIEW IN TELEGRAM
«Сейчас подкручу, потом нормально переделаем». А «потом» обычно не наступает, и костыль становится частью системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья изучает шаблоны наследования в JavaScript, основанные на прототипах. Рассматриваются их уникальные особенности и применение, чтобы выбрать наиболее подходящий подход для задач.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM