Статья знакомит с использованием NVM для управления версиями Node.js и npm, показывая примеры с Node.js 19 и npm 9. Объясняются преимущества NVM для безопасного обновления и тестирования новых возможностей.
Читать...
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🐳2
  Если что-то в проекте кажется запутанным, нестабильным и непонятным — не убегай от этого. Это маркер точки роста.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍4
  Forwarded from Frontender's notes [ru]
Баланс: pet-проекты vs работа
Каждый разработчик хоть раз ловил себя на мысли: “Хочу сделать свой проект. Но после работы нет ни сил, ни желания писать код.”
И вот тут начинается борьба между желанием развиваться и желанием просто отдохнуть.
✅  Pet-проекты — это топливо для роста.
Ты пробуешь новые технологии без дедлайнов, без легаси и без код-ревью с “а зачем тут вообще useMemo?”.
Это та самая зона, где возвращается интерес к разработке, особенно когда на работе монотонные задачи.
Но.
🙅♂️  Pet-проект не должен превращаться во вторую работу.
Если ты после 8 часов продакшена садишься за ещё 4 часа кода — это не развитие, это выгорание в красивой обёртке.
И так: как найти баланс?:
Итог:
Работа — даёт стабильность.
Pet-проекты — дают развитие.
Отдых — даёт энергию, чтобы выдержать первые два пункта.
Главное — не забывать, что кодить “в кайф” иногда важнее, чем кодить “всё время”.
Каждый разработчик хоть раз ловил себя на мысли: “Хочу сделать свой проект. Но после работы нет ни сил, ни желания писать код.”
И вот тут начинается борьба между желанием развиваться и желанием просто отдохнуть.
Ты пробуешь новые технологии без дедлайнов, без легаси и без код-ревью с “а зачем тут вообще useMemo?”.
Это та самая зона, где возвращается интерес к разработке, особенно когда на работе монотонные задачи.
Но.
Если ты после 8 часов продакшена садишься за ещё 4 часа кода — это не развитие, это выгорание в красивой обёртке.
И так: как найти баланс?:
🔘 Делай pet-проекты короткими и законченными.
Маленький тул или демо — лучше, чем вечный “стартап мечты”.🔘 Ставь себе ограничение по времени.
Например, кодишь только 2 вечера в неделю.🔘 Не чувствуй вины, если не делаешь ничего.
Отдых — тоже часть продуктивности.
Мой личный опыт:
Pet-проекты реально помогают не терять интерес к коду.
Но только когда они не конкурируют с отдыхом, а заменяют бессмысленный скролл YouTube чем-то, что тебя вдохновляет.
Итог:
Работа — даёт стабильность.
Pet-проекты — дают развитие.
Отдых — даёт энергию, чтобы выдержать первые два пункта.
Главное — не забывать, что кодить “в кайф” иногда важнее, чем кодить “всё время”.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍7👎2❤1
  В статье объясняется, как Atomics помогает синхронизировать потоки, предотвращая хаос при одновременной работе с общими данными. Простыми примерами покажем, как управлять многопоточностью.
Читать...
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍1👎1
  Статья предлагает использовать прокси и кэширование для реестра npm с помощью Verdaccio или Nexus, чтобы повысить безопасность и ускорить установку пакетов. Также обсуждаются риски скриптов жизненного цикла npm и способы их безопасного использования.
Читать...
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍2🔥1
  Напишите скрипт на Node.js, который считывает JSON-файл, фильтрует данные по указанному ключу и значению, и выводит результат в консоль.
node filterJson.js data.json age 30
[
{ "name": "Bob", "age": 30 },
{ "name": "Charlie", "age": 30 }
]
Решение задачи
const fs = require('fs'); 
const [,, filePath, key, value] = process.argv;
if (!filePath || !key || !value) {
console.error('Использование: node filterJson.js <filePath> <key> <value>');
process.exit(1);
}
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err.message);
process.exit(1);
}
try {
const jsonData = JSON.parse(data);
const filteredData = jsonData.filter(item => item[key] == value);
console.log(JSON.stringify(filteredData, null, 2));
} catch (parseErr) {
console.error('Ошибка парсинга JSON:', parseErr.message);
process.exit(1);
}
});
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤1
  Росатом ищет системного аналитика на удалённую занятость!
✅Наш идеальный кандидат обладает опытом работы от 5 лет, а также навыками разработки Web-приложений, проектирования, документирования и интеграции (REST, SOAP, брокеры сообщений), умеет декомпозировать крупные задачи, понимает принципы построения микросервисной архитектуры ПО, может работать с agile/scrum методологией, BPMN, UML, SQL, OpenProject и Postman. Опыт реализации и внедрения систем ECM, ERP, MES, CRM, HRM будет плюсом.
🤝Мы предлагаем работу в команде самого динамично развивающегося разработчика продуктов для HR-автоматизации на российском рынке, стабильную «белую» зарплату дважды в месяц, обучение за счёт работодателя и ДМС со стоматологией с первого дня. А ещё — возможность расти по карьерной лестнице и вносить свой вклад в создание современного флагманского проекта для крупных предприятий.
  
  ✅Наш идеальный кандидат обладает опытом работы от 5 лет, а также навыками разработки Web-приложений, проектирования, документирования и интеграции (REST, SOAP, брокеры сообщений), умеет декомпозировать крупные задачи, понимает принципы построения микросервисной архитектуры ПО, может работать с agile/scrum методологией, BPMN, UML, SQL, OpenProject и Postman. Опыт реализации и внедрения систем ECM, ERP, MES, CRM, HRM будет плюсом.
🤝Мы предлагаем работу в команде самого динамично развивающегося разработчика продуктов для HR-автоматизации на российском рынке, стабильную «белую» зарплату дважды в месяц, обучение за счёт работодателя и ДМС со стоматологией с первого дня. А ещё — возможность расти по карьерной лестнице и вносить свой вклад в создание современного флагманского проекта для крупных предприятий.
hh.ru
  
  Вакансия Системный аналитик в Москве, работа в компании Гринатом. ИТ
  Зарплата: не указана. Москва. Требуемый опыт: более 6 лет. Полная. Дата публикации: 03.10.2025.
❤1😁1
  В статье рассказывается, как настроить рабочее пространство VSCode для разработки. Обзор полезных расширений, которые повышают удобство и продуктивность, и советы по их применению.
Читать...
Please open Telegram to view this post
    VIEW IN TELEGRAM
  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