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
В этом гайде пользователь объясняет, как можно написать простого 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
Статья объясняет, как спрятать данные в PNG-изображении, используя младшие биты (LSB) пикселей. Рассматривается структура PNG, каналы R, G, B и альфа, а также методы внедрения данных без заметного изменения картинки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает массив объектов и ключ. Функция должна возвращать новый массив, удаляя объекты с повторяющимися значениями указанного ключа. Сохраняйте порядок элементов.
Пример:
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];
const result = removeDuplicatesByKey(data, 'name');
console.log(result);
// Ожидаемый результат:
// [
// { id: 1, name: 'Alice' },
// { id: 2, name: 'Bob' },
// { id: 4, name: 'Charlie' }
// ]
Решение задачи
function removeDuplicatesByKey(array, key) {
const seen = new Set();
return array.filter(item => {
const value = item[key];
if (seen.has(value)) {
return false;
}
seen.add(value);
return true;
});
}
// Пример использования:
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];
const result = removeDuplicatesByKey(data, 'name');
console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
👎9👍1
Покажу, как собрать «большое» приложение из независимых модулей (~200 строк) с помощью ИИ: стабильные промпты, чат вместо агентов, бэкенд в Yandex Cloud. Плюсы и грабли.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM