IT Kniga
Интернет-магазин компьютерной литературы

Компьютерные новости

[Перевод] Продвинутые методы использования TypeScript в реальных проектах

JavaScript - habr.ru - Пнд, 12/05/2025 - 09:10



Ранее на Piccalilli Сэм Роуз поделился реальными примерами использования вспомогательных типов (utility types) TypeScript. Сегодня я хочу продолжить эту тему и поделиться несколькими продвинутыми возможностями TypeScript для работы с типами, которые, на мой взгляд, особенно полезны и применимы в реальных проектах.


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

Читать дальше →
Категории: HTML, CSS, Javascript

JForge: Создаем свою мини-IDE на Java Swing с нуля (с темной темой и подсветкой синтаксиса!)

Java - habr.ru - Пнд, 12/05/2025 - 08:39

Каждый из нас, Java-разработчиков, хоть раз задумывался: "А что, если взять и написать свою IDE?". Ну, может, не полноценную замену IntelliJ IDEA, но что-то компактное, для души, для изучения Swing или просто для фана. Сегодня я хочу поделиться именно таким проектом – JForge, простой IDE для Java, написанной полностью на Swing, с акцентом на приятный темный интерфейс и базовые, но необходимые фичи.

Читать далее

Bash, Python, PowerShell — что выбрать сисадмину в 2025 году

Linux для всех - habrahabr.ru - Пнд, 12/05/2025 - 07:25

Автоматизация рутинных задач — это не только модная фишка, но и необходимость для любого современного системного администратора. С помощью скриптов можно уменьшить количество ошибок, повысить скорость работы и сосредоточиться на более сложных задачах. Но тут возникает вопрос: какой язык автоматизации выбрать? Bash? Python? PowerShell?

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

Читать далее
Категории: Linux

ООП не мертво. Вы просто пользуетесь им как молотком по клавиатуре

C++ - habr.ru - Вс, 11/05/2025 - 19:36

После каждой новой статьи с заголовком «ООП — это обман» хочется напомнить: ООП — это не набор шаблонов из книжек, а инженерный подход. Если проект страдает от наследования и DI, возможно, проблема не в ООП. А в том, как вы его применяете.

Читать далее
Категории: C, C++

ООП не мертво. Вы просто пользуетесь им как молотком по клавиатуре

Java - habr.ru - Вс, 11/05/2025 - 19:36

После каждой новой статьи с заголовком «ООП — это обман» хочется напомнить: ООП — это не набор шаблонов из книжек, а инженерный подход. Если проект страдает от наследования и DI, возможно, проблема не в ООП. А в том, как вы его применяете.

Читать далее

Подмена E-EDID на Windows

JavaScript - habr.ru - Вс, 11/05/2025 - 18:20

Если вы когда-нибудь, запуская рабочую станцию с операционной системой Windows, обнаруживали, что ваш Full HD монитор показывает лишь изображение с разрешением не более 1024x768 и определяется как «Стандартный не Plug-n-Play монитор», и по какой-то причине вы не имеете возможности переключить монитор на другой видеовход, не поленитесь заглянуть под кат, где я растолкую, как «временно» выкрутиться минимальными усилиями.

Читать далее
Категории: HTML, CSS, Javascript

Корутины в C++20: архитектура и практическое применение

C++ - habr.ru - Вс, 11/05/2025 - 16:24

Корутины в C++20 открывают новые возможности для асинхронного программирования, но они также могут привести к ошибкам, связанным с управлением памятью и синхронизацией. Здесь о том, какие проблемы могут возникнуть и чего ожидать от будущих обновлений корутин в C++.

Читать далее
Категории: C, C++

Работа с базой данных для джунов и вайбкодеров. Соединения

Java - habr.ru - Вс, 11/05/2025 - 15:20

Коннекты обычно не приносят много головной боли на начальных этапах разработки. Вообще работа с ними обычно делается один раз, во время настройки, и дальше тюнится по необходимости. Но эта необходимость возникает часто в виде непонятных ошибок, которые выкидываются в случайных местах, непонятных графиков в графане и суеты админов вашей базы данных. Я постарался собрать ту информацию, которая позволит вам не потеряться в такой ситуации и даже поможет определить суть проблемы.

Читать далее

Как я победил ошибку rEFInd с Arch Linux после обновления ядра

Linux для всех - habrahabr.ru - Сб, 10/05/2025 - 15:47

Описание ситуации

После обычного обновления Arch Linux с помощью pacman (хотя чаще я обновляюсь с помощью yay), система обновила ядро, и загрузчик rEFInd начал выдавать ошибку:

Читать далее
Категории: Linux

Есть ли смысл применять SOLID в React?

JavaScript - habr.ru - Сб, 10/05/2025 - 14:22

Ещё несколько лет назад принципы SOLID были неотъемлемой частью собеседований для разработчиков любого уровня. Вопросы вроде «Расскажите, что означает каждая буква в SOLID» звучали так же часто, как «Что такое замыкание в JavaScript?». Это считалось своеобразной классикой, обязательной для понимания любого уважающего себя программиста.

Однако в последнее время, особенно во фронтенд-разработке и в мире React, акцент на SOLID заметно снизился и, например, вопросы о нем на собеседованиях встречаются всё реже. В первую очередь, это связано с переходом к функциональному стилю программирования, широким использованием хуков и отказом от классовых компонентов, что отодвигает принципы ООП на второй план.

Тем не менее, я убеждён, что принципы SOLID по-прежнему актуальны и полезны, даже в контексте функционального подхода. JavaScript и React не запрещают применять лучшие практики из ООП — наоборот, они предоставляют гибкость для использования различных парадигм.

В этой статье я хочу поделиться своим взглядом на то, как каждый из принципов SOLID может быть применен в разработке React-приложений. Здесь не будет революционных идей, особенно для опытных разработчиков, но, возможно, эта информация окажется полезной для начинающих разработчиков, стремящихся писать более качественный и поддерживаемый код.

Читать далее
Категории: HTML, CSS, Javascript

Python, Java, C++ и Go — как появились популярные языки программирования

C++ - habr.ru - Сб, 10/05/2025 - 11:52

Привет! Мы уже рассказывали о «вымерших» языках программирования, пришла очередь самых популярных в 2025 году. Языки не придумывают «чтобы было» — для этого всегда есть предпосылки: рассказываем, кто, когда и зачем их создал. А еще делимся интересными фактами, которых вы могли не знать — а теперь будете :) Читать дальше →
Категории: C, C++

Python, Java, C++ и Go — как появились популярные языки программирования

Java - habr.ru - Сб, 10/05/2025 - 11:52

Привет! Мы уже рассказывали о «вымерших» языках программирования, пришла очередь самых популярных в 2025 году. Языки не придумывают «чтобы было» — для этого всегда есть предпосылки: рассказываем, кто, когда и зачем их создал. А еще делимся интересными фактами, которых вы могли не знать — а теперь будете :) Читать дальше →

Join таблиц в реальном времени на Apache Flink ( Часть 2 )

Java - habr.ru - Сб, 10/05/2025 - 11:46

В данной статье приводится решение проблемы построения витрин данных в реальном времени с помощью Apache Flink. Рассказывается 2 часть подробной реализации решения этой задачи. В данной части рассмотрена проблема учета сообщений на удаление и частично операций update , в связи с чем достигается полная консистентность данных СИ с СП при условии гарантии, что ключ join условия не обновляется.

Читать далее

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

SQL - habr.ru - Сб, 10/05/2025 - 08:02

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

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

Читать далее
Категории: Базы данных

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

Java - habr.ru - Сб, 10/05/2025 - 08:02

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

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

Читать далее

Как ускорить написание повторяющегося кода в 10 раз

JavaScript - habr.ru - Пт, 09/05/2025 - 10:15

Ускорьте разработку React-компонентов! Эта статья о создании шаблонов для автоматизации рутинных задач: генерация папок, файлов, управление экспортами. Экономьте время и фокусируйтесь на главном.

Читать далее
Категории: HTML, CSS, Javascript

Код, который светится: архитектура минималистичных световых скетчей

C++ - habr.ru - Пт, 09/05/2025 - 08:15

Микроконтроллеры, светодиоды, и немного кода — вот и вся палитра для минималистичного цифрового искусства. В статье подробно рассказывается, как выстроить архитектуру крошечных, но выразительных световых анимаций с использованием C++, платформы STM32 и адресных светодиодов WS2812. Немного философии, немного инженерии — и свет оживает по команде вашего кода.

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

Код, который светится, не имеет интерфейса, не показывает графику на экране и не заботится о фреймрейте. Его задача — свет. Живой, дышащий, мерцающий свет. В идеале — чтобы всё это поместилось в пару килобайт памяти и не жрало больше миллиампера на эффект.

Читать далее
Категории: C, C++

[Перевод] Как Мэтт Годболт «продал» мне Rust (рассказав о C++)

C++ - habr.ru - Пт, 09/05/2025 - 07:55

Мэтт Годболт, знаменитый разработчик Compiler Explorer — потрясающий человек, вам стоит найти в вебе и изучить весь созданный им контент. Именно этим и занимался, просматривая Correct by Construction: APIs That Are Easy to Use and Hard to Misuse. Я уже больше двадцати лет работаю с C/C++, поэтому эта тема была мне близка.

Когда я смотрел его доклад, ко мне постоянно приходила мысль: «Да! И именно поэтому в Rust это делается так». После просмотра видео я подумал, что этот доклад — отличный способ понять, как Rust помогает разработчикам не только в безопасности по памяти, и в своей статье я расскажу об этом.

Но прежде нам следует поговорить о поднятых Мэттом проблемах и о том, как он предлагает решать их в C++. Сделайте себе одолжение и посмотрите доклад целиком, а я разберу один из его пунктов.

Читать далее
Категории: C, C++

До свидания, Kafka, или graceful shutdown на Spring Boot для Kafka

Java - habr.ru - Пт, 09/05/2025 - 07:15

В этой статье я немного объясню важность graceful shutdown и расскажу как сделать плавное завершение работы твоего Spring Boot приложения, которое взаимодействует с Kafka.

Читать далее

От пет-проекта к книге про Spring

Java - habr.ru - Пт, 09/05/2025 - 06:47

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

Читать далее

Большая распродажа компьютерной литературы

Полный список здесь

RSS-материал