Привет, Хабр!Сегодня поговорим о паттерне «Компоновщик» (он же Composite) — на примере котиков. Котики идеально иллюстрируют структуру паттерна: в каждом доме есть простые котики, сложные котики (например, те, кто лазает по шкафам и открывает холодильники), а иногда — целые прайды из котиков. Зачем нам Компоновщик?Сам паттерн впервые был описан в книге «Design Patterns: Elements of Reusable Object‑Oriented Software». Его основная цель — упрощение работы с древовидными структурами. Представим, ч…
Всем привет!Недавно мне понадобилось добавить поддержку нескольких языков в API на базе Express. Я решил поделиться кратким руководством для тех, кто хочет сделать свой бэкенд отвечающим переведенным контентом в зависимости от предпочтительного языка пользователя.Зачем интернационализировать ваш бэкенд?Вот несколько практических примеров использования интернационализации на бэкенде:Отображение ошибок бэкенда на языке пользователя: Показывайте сообщения об ошибках на родном языке пользователя, ч…
ПредисловиеЗа свою карьеру я встречал достаточно много проектов, крупных и малых, которые страдали от огромной и запутанной кодовой базы с высоким уровнем зацепления и малой связностью, непонятной структурой, в которую весьма сложно погрузиться (на онбродинг нового сотрудника может уходить до трех месяцев) и большим количеством непонятных и громоздких компонентов, которые являются god object'ами. Стоит ли говорить, что у таких проектов имеются большие проблемы с поддержкой и развитием. Зач…
Base UI is an open-source library of accessible, unstyled UI components for React.Base UI From the creators of Radix, Floating UI, and Material UI, Base UI is an unstyled UI component library for building accessible user interfaces. Documentation To get started, check out the Base UI documentation. Contributing Read our contributing guide to learn about our development process, how to propose bug fixes and improvements, and how to build and test your changes. Releases To see the latest updates…
Sunset as of December 2024Konfig The monorepo that holds everything... Getting started Get the repository on your local machine. Takes a minute. git clone https://github.com/konfig-dev/konfig --recursive cd konfig This repository has submodules so pull all of them. Also take a few minutes. git submodule update --init --recursive --remote --merge Environment Setup Run Postgres as a background process # in /konfig brew install postgresql mkdir -p postgres/data initdb -D ./postgres/data pg_ctl -…
ФБР предупреждает, что новые атаки малвари HiatusRAT теперь нацелены на уязвимые веб-камеры и DVR, доступные через интернет.
Не менее 300 организаций были взломаны через недокументированные уязвимости в устройствах DrayTek, заявили специалисты Forescout. Сообщается, что злоумышленники использовали 0-day и развертывали в сетях жертв вымогательское ПО.
Ранее мы уже предлагали тебе порадовать друзей, коллег или самого себя и приобрести к праздникам бумажный спецвыпуск «Хакера». Лови еще одну идею для крутого подарка: футболка с логотипом ][ и стильным принтом на классическом темно-стальном фоне, которая точно не остается незамеченной.
Специалисты «Лаборатории Касперского» обнаружили новую схему распространения банковского Android-трояна Mamont, нацеленного на российских пользователей. Отмечается, что атаки направлены как на частных лиц, так и на представителей бизнеса.