Напишите скрипт на Node.js, который читает строки из стандартного ввода и выводит их в верхнем регистре. Если пользователь вводит "exit", программа завершается.
Пример:
hello
HELLO
world
WORLD
exit
Решение задачи
process.stdin.setEncoding('utf8');
process.stdin.on('data', (data) => {
const lines = data.trim().split('\n');
for (const line of lines) {
if (line.toLowerCase() === 'exit') {
process.exit(0);
} else {
console.log(line.toUpperCase());
}
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Пример миграции базы данных для нового поля и добавления функционала на бэкенде и фронтенде. Пошаговый разбор: обновление схемы, логика на сервере и интерфейс для изменения данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Рассматриваем анализ данных Хабра за 2024 год: популярные статьи, скрытые тренды и интересные находки. Node.js, нейросети и Google Таблицы в деле!
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Intersection Observer
в JavaScript и зачем он используется?Intersection Observer
— это API, которое позволяет отслеживать, когда элемент входит или выходит из области видимости (viewport). Оно полезно для оптимизации ленивой загрузки изображений, бесконечной прокрутки или анимаций при прокрутке.// Целевой элемент для наблюдения
const target = document.querySelector('.observe-me');
// Callback-функция для обработки пересечений
const observerCallback = (entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
console.log('Элемент видим:', entry.target);
observer.unobserve(entry.target); // Останавливаем наблюдение
}
});
};
// Настройки наблюдателя
const observerOptions = {
root: null, // Вся область видимости
threshold: 0.5 // 50% видимости элемента
};
// Создаем наблюдатель
const observer = new IntersectionObserver(observerCallback, observerOptions);
// Начинаем наблюдение за элементом
observer.observe(target);
🗣️ В этом примере API отслеживает, когда .observe-me становится видимым на 50%. Intersection Observer делает прокрутку более производительной, так как избавляет от необходимости использовать события scroll.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Directive Composition API в Angular 15: hostDirectives в @Component/@Directive позволяет автоматически добавлять standalone-директивы, упрощая декомпозицию логики и внедряя новые подходы.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Почему open source не так прост, как нам кажется, что за супер-инструмент — командная строка, и какие тренды сейчас в работе с базами данных?
Узнаем в новом выпуске «Техно.Логично». Обсудили эволюцию роли администратора (DBA), разработчика и инструменты для работы с базами данных с Владимиром Герциковым (хэд профессии DataBase в Рознице Газпромбанка и ведущий нашего подкаста) и Николаем Волынкиным (заместитель начальника Управления сопровождения серверных платформ и баз данных).
Герои рассказали истории своего карьерного пути: от сисадмина и классического «тыжпрограммиста» до экспертов в SQL, Oracle и PostgreSQL и поделились рекомендациями по проектированию БД.
Темы эпизода:
⏺ Какова роль администратора баз данных и как делить обязанности
⏺ Какие инструменты и знания – must-have сейчас для работы с БД
⏺ Какие есть риски использования Open Source в коммерческой среде
⏺ Как грамотно проектировать системы
Посмотреть:
📺 VK Видео
📺 Rutube
Послушать:
🎵 Яндекс Музыка
📱 Apple Podcasts
💙 VK Музыка
#GPBtechno_подкаст #GPB_Технологично
Реклама, Банк ГПБ (АО), ИНН: 7744001497, erid: 2VtzqvMUsdA
Узнаем в новом выпуске «Техно.Логично». Обсудили эволюцию роли администратора (DBA), разработчика и инструменты для работы с базами данных с Владимиром Герциковым (хэд профессии DataBase в Рознице Газпромбанка и ведущий нашего подкаста) и Николаем Волынкиным (заместитель начальника Управления сопровождения серверных платформ и баз данных).
Герои рассказали истории своего карьерного пути: от сисадмина и классического «тыжпрограммиста» до экспертов в SQL, Oracle и PostgreSQL и поделились рекомендациями по проектированию БД.
Темы эпизода:
Посмотреть:
Послушать:
#GPBtechno_подкаст #GPB_Технологично
Реклама, Банк ГПБ (АО), ИНН: 7744001497, erid: 2VtzqvMUsdA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
• Чем стартап отличается от бизнеса и что выбрать
• Как оформить резюме на стажировку, если нет опыта работы
• Прийти на внедренный проект на этапе развития системы: как аналитику быстро погрузиться в процессы
• Как 97 лет назад хитрый менеджер-заяц заставил грозного лентяя сделать то, что тот очень не хотел. Смогли бы так?
• 10 лучших приёмов логирования для разработчиков
Please open Telegram to view this post
VIEW IN TELEGRAM
process.nextTick
в Node.js и зачем он используется?process.nextTick
позволяет выполнять функцию сразу после текущей операции, но перед началом следующего цикла событий (event loop
). Это полезно для выполнения задач с высоким приоритетом.console.log('Начало');
process.nextTick(() => {
console.log('Выполнено в nextTick');
});
console.log('Конец');
// Вывод:
// Начало
// Конец
// Выполнено в nextTick
🗣️ В этом примере process.nextTick выполняет функцию между выводом "Конец" и началом следующего цикла событий. Это помогает при обработке срочных задач.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Недавно мне понадобилось добавить поддержку нескольких языков в API на базе Express. Я решил поделиться кратким руководством для тех, кто хочет сделать свой бэкенд отвечающим переведенным контентом в зависимости от предпочтительного языка пользователя.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Деструктуризация — это удобный синтаксис в JavaScript, который позволяет извлекать значения из массивов и объектов и присваивать их переменным. Это делает код более лаконичным и удобным, особенно при работе с объектами с множеством свойств.
// Деструктуризация объекта
const user = { name: 'Alice', age: 25 };
const { name, age } = user;
console.log(name); // 'Alice'
console.log(age); // 25
// Деструктуризация массива
const colors = ['red', 'green', 'blue'];
const [firstColor, secondColor] = colors;
console.log(firstColor); // 'red'
console.log(secondColor); // 'green'
🗣️ Деструктуризация полезна для удобного доступа к значениям из объектов и массивов, минимизируя дублирование кода и делая его более читаемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2😁1
Глубокое погружение в JavaScript Символы — что это такое, чем они важны и как их эффективно использо3вать
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Статья представляет курс по созданию IT-продуктов: от выбора архитектуры до радости от разработки. Обучение включает 141 урок, доступный бесплатно, с акцентом на качество, масштабируемость и удобство работы.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Какие структуры данных помогут избежать утечек памяти в JavaScript? Статья раскрывает особенности WeakMap и WeakSet: слабые ссылки, автоматическое управление памятью и неожиданные сценарии их применения.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🧩 Если фича не помещается в голову целиком — разбей её
Чем больше логики ты пытаешься держать в голове, тем выше шанс ошибиться.
👉 Совет: если при работе над фичей ты постоянно перескакиваешь по файлам и путаешься — это сигнал, что задачу надо декомпозировать на меньшие части.
Чем больше логики ты пытаешься держать в голове, тем выше шанс ошибиться.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Статья о решении проблемы с неработающим примером из документации npm-пакета csrf-csrf. Автор делится опытом исправления кода и создания рабочего демо, доступного на GitHub, с важными комментариями для успешного использования.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Откройте для себя возможности управления приоритетами и контроля выполнения задач в JavaScript с помощью нового Scheduler API. Новый подход поможет вам стать более продуктивными и эффективными в своей работе.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
В статье объясняется асинхронное программирование в JavaScript. Разбираются основы работы с промисами, async/await и методы управления параллельными операциями для повышения читаемости и эффективности кода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
💪 Хотите работать в финтехе? Освойте Solidity!
👉 Востребованное обучение для разработчиков с опытом программирования от года, которые хотят получить навыки написания кода и аудита безопасности, чтобы попасть в одну из самых перспективных и высокооплачиваемых сфер IT.
Освойте разработку децентрализованных приложений на профессиональном уровне всего за 5 месяцев на онлайн-курсе «Solidity Developer» от OTUS!
Забудьте о скучном обучении — здесь вас ждут настоящие челленджи и нестандартные практические решения. А еще крутые проекты для портфолио!
👉 Пройдите вступительные тест для оценки подходит ли вам курс: https://vk.cc/cOihoa
🎁 Получите welcome скидку для успешное прохождение теста. Подробности уточняйте у менеджера.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👉 Востребованное обучение для разработчиков с опытом программирования от года, которые хотят получить навыки написания кода и аудита безопасности, чтобы попасть в одну из самых перспективных и высокооплачиваемых сфер IT.
Освойте разработку децентрализованных приложений на профессиональном уровне всего за 5 месяцев на онлайн-курсе «Solidity Developer» от OTUS!
Забудьте о скучном обучении — здесь вас ждут настоящие челленджи и нестандартные практические решения. А еще крутые проекты для портфолио!
👉 Пройдите вступительные тест для оценки подходит ли вам курс: https://vk.cc/cOihoa
🎁 Получите welcome скидку для успешное прохождение теста. Подробности уточняйте у менеджера.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍1
Promise.finally
в JavaScript и зачем он используется?Promise.finally
— это метод, который выполняется после завершения промиса (успешного или с ошибкой), независимо от его результата. Это полезно для очистки ресурсов или выполнения финальных действий.const promise = new Promise((resolve, reject) => {
setTimeout(() => resolve('Успех!'), 1000);
});
promise
.then(result => console.log(result)) // 'Успех!'
.catch(error => console.error(error))
.finally(() => console.log('Завершено!'));
🗣️ В этом примере finally вызывается после завершения промиса, независимо от того, был он успешно выполнен или отклонён. Это удобно для задач, таких как закрытие соединений или очистка.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Как защитить веб-страницы паролем без серверной поддержки? Инструменты StatiCrypt и Portable Secret помогут зашифровать HTML с использованием AES-256. Статические страницы остаются безопасными даже на публичном хостинге.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Почему разработка собственного инструмента для нагрузки на API иногда оказывается лучшим выбором? В статье обсуждается реальный кейс: задачи тестирования производительности, ограничения Postman и сложность JMeter. Узнайте, как и зачем был создан простой и эффективный API-лоадер на Node.js.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3