В работе над React-проектами код почти всегда живёт дольше, чем кажется на старте: требования меняются, команда растёт, появляются новые сценарии и интеграции. В таких условиях выигрывает не тот, кто «быстрее собрал», а тот, кто оставил после себя понятную структуру — с предсказуемой логикой, прозрачными зависимостями и минимальным количеством скрытых допущений.
В данной статье мы расскажем о принципах «чистого кода» в React, которые используем в повседневной разработке, и покажем их на коротких примерах.
Читать далееНачинающим IT-специалистам приходится нелегко. Но прогрессивные компании понимают, что новички — будущее отрасли, и дают им возможность получать необходимый опыт и строить карьеру рядом с профессионалами. Для многих конференция «Импульс Т1» становится именно тем местом, где можно реализовать такой шанс.
Как сделала героиня нашей истории Оля. О том, как она посетила все конференции «Импульс Т1» и что из этого вышло, читайте под катом.
Читать далееЯ работаю системным и бизнес-аналитиком, но периодически вижу обсуждения, что аналитики не нужны, либо не нужны били изначально, потому что DDD и вот это всё, либо не нужны становятся сейчас из-за развития нейросетей и трансформации разработки. Однако на своем опыте я вывел несколько причин, почему аналитики всё таки нужны:
Разделение труда - системный и бизнес-аналитик это результат разделения труда и специализации. Естественный процесс в любой деятельности, где работает больше трех человек.
Дешевая замена - аналитики в рамках выделения своей ролевой специфики часто выступают для сокращения затрат на разработчиков.
Тушитель пожаров - аналитики на проектах часто выступают в роли затыкателя дыр, выполняя все возможные временные функции от тестировщика до тех.писа.
Собиратели конструкторов - аналитики заменяют разработку в проектах с лоу-код и ноу-код конструкторами.
Вайб-кодеры - в настоящее время за счет нейросетей аналитик может самостоятельно тестировать идеи в коде и прототипах вообще без разработчиков.
Далее рассмотрим подробнее.В 1936 году Алан Тьюринг, пытаясь формализовать пределы вычислений, сформулировал вопрос, навсегда изменивший не только компьютерную науку, но и наше понимание границ познания. Этот вопрос — известная как «Проблема остановки» — звучит обманчиво просто: можно ли создать алгоритм, который, анализируя код любой программы и её входные данные, заранее и безошибочно определит, завершится ли её работа или же она уйдёт в бесконечный цикл? Казалось бы, речь идёт о чисто технической задаче, мечте каждого программиста об идеальном отладчике. Однако ответ Тьюринга, уместившийся в элегантное и почти язвительное доказательство от противного, оказался оглушительным: нет, такой алгоритм принципиально невозможен. В этой статье мы не только разберём суть этого гениального доказательства, которое построено на самореференции и логическом парадоксе, подобном «лжецу», но и визуализируем его ход с помощью наглядного кода в MATLAB, превратив абстрактную логику в динамическую демонстрацию. Мы увидим, как гипотетическая «всезнающая» программа H неминуемо запутывается в сетях, расставленных специально сконструированной программой-провокатором , приводя к неразрешимому противоречию в любом исходе. Это открытие — не просто академическая курьёзность. Оно устанавливает фундаментальный, алгоритмический предел: существуют чётко поставленные вопросы, на которые мы никогда не получим однозначный «да» или «нет» от любой вычислительной машины. Мы проследим глубокую связь этого результата с теоремой Гёделя о неполноте, обсудим другие неразрешимые проблемы, такие как проблема соответствия Поста, и затронем трезвые последствия для современной разработки, верификации программ и даже для мечтаний о создании всесильного искусственного интеллекта. Эта история — о том, как осознание непреодолимой границы стало одним из самых мощных интеллектуальных достижений человечества, чётко очертив то, что мы можем знать, и указав на бескрайние области того, что мы знать не в силах.
Читать далееМы довольно долго изучали азелаиновую кислоту. Сначала как любопытную молекулу, потом — как инструмент для конкретных случаев (акне и постакне, розацеа, гиперпигментация). Она, конечно, не панацея, но это редкий случай, когда одна молекула работает сразу по нескольким фронтам: и с воспалением, и с ороговением, и с тоном кожи.
Но есть две вещи, за которые мы зацепились особенно крепко.
Первая: резистентность к азелаиновой кислоте у бактерий развивается значительно реже, чем к антибиотикам. Это принципиально важно, потому что Cutibacterium acnes переходит в суперустойчивые штаммы.
Вторая: она умудряется избирательно тормозить гиперактивные меланоциты (те, которые штампуют пигмент в пятнах), почти не трогая нормальные клетки рядом. Обычно такая избирательность требует специфических рецепторов или сложных сигнальных путей, а тут — дикарбоновая кислота с девятью атомами углерода, простейшая структура, а эвоно как.
Читать далееВсе уже в курсе, что цены на оперативную память взлетели до небес. DDR5-комплекты, которые еще в сентябре стоили вполне разумных денег, теперь продаются втридорога. Но это еще цветочки. Гораздо хуже то, что текущий кризис памяти может серьезно повлиять на выход будущих видеокарт и консолей следующего поколения. Речь идет не только о повышении цен, но и о возможных задержках или даже отмене целых линеек продуктов. В худшем случае 2026 год вообще может пройти без новых GPU. Все это звучит как сюжет для антиутопии, но давайте разберемся, что происходит на самом деле.
Читать далееКороткий рассказ об инженере, пытающемся запустить свой проект, но проваливающимся в бездну несчастий.
Читать далееСтандартный GNOME красивый, но неудобный для ежедневной работы. Рассказываю, как за пару часов настроить систему, увеличить продуктивность, а внешний вид радовал глаз.
Настроить свой LinuxМы в OpenIDE хорошо понимаем, что среда разработки — это не просто набор инструментов и функций. Это пространство, в котором разработчик проводит значительную часть своего времени: думает, экспериментирует, ошибается и создаёт новое. Именно поэтому для нас особенно важны открытость, доступность и ощущение живого диалога внутри экосистемы.
IDE - это не только кодовый редактор, вспомогательные инструменты и графические интерфейсы. IDE - это комьюнити. Люди, которые расширяют возможности платформы, находят нестандартные решения, закрывают реальные боли и делятся своим опытом с другими. Именно они превращают среду разработки из продукта в экосистему — живую и дышащую.
И когда до Нового года остаётся совсем немного времени, а сил на сложные технические материалы почти не остаётся, мы решили немного сменить ритм. Вместо глубоких разборов — лёгкое, тёплое и предпраздничное чтение. Так появилась идея серии интервью с участниками нашего комьюнити — людьми, которые создают плагины для OpenIDE.
Читать далееКаждый год сотрудники Министерства обороны США проходят обязательное обучение по кибербезопасности. На практике это обычно просто еще одна скучная формальность: пролистал, нажал «далее», получил галочку - и пошел дальше работать.
Но если не спешить и внимательно посмотреть на то, что именно предлагает это обучение, оказываешься в довольно странном месте. Перед тобой вдруг появляется полноценная… игра. Очень специфическая игра. Со странным сценарием и запоминающимися персонажами. Давайте разбираться
Читать далее про геймификацию тренинговВ конце года принято подводить итоги и делать предсказания. Давайте совместим оба ритуала и посмотрим, насколько лучше эксперты СайберОК могли бы контролировать поверхность атак, если бы слепо верили в магию EPSS. Спойлер: контролировали бы не очень.
Читать далееПривет! Я Сабина из Центра экспертизы ИИ, ВкусВилл. И у нас есть новости.
В этом году у ВкусВилл появился новый тип клиентов – агенты. Благодаря Perplexity, OpenAI, Яндекс и др. стало возможным делегировать заказ продуктов браузерному агенту. По промпту пользователя он, имитируя действия человека, сходит на сайт и от его имени сделает заказ. Это впечатляет, но сложно не заметить минусы: работает медленно, тратит много токенов. Здорово, что агенты могут ходить клиентскими путями человека, но им нужны свои пути. И новость следующая:
ВкусВилл приготовил экспериментальный MCP сервер для разработчиков-энтузиастов ИИ, чтобы вы могли сделать агентов и делегировать им выбор продуктов.
Читать далееВсем привет! Мы делаем проекты по Zabbix, накопили большую экспертизу и решили сделать переводы нескольких статей, которые нам показались интересными и полезными. Наверняка, будут полезны и вам. Также своим опытом делимся в телеграм-канале zabbix_ru, где вы можете найти полезные материалы и записи наших вебинаров, опубликованных на нашем ютуб-канале (прим. переводчика). Ниже ссылки на предыдущие статьи из цикла.
Миграция с MySQL на PostgreSQL
SELinux: интеграция с Zabbix и другими инструментами
Защита от ложных срабатываний триггеров в Zabbix с использованием функций min/max/avg
Zabbix – автоматизация управления пользователями (JIT)
Двухфакторная аутентификация (2FA) в Zabbix 7.0
Как настроить прием SNMP-трапов в Zabbix
Установка и базовое использование Item Browser в Zabbix
В этой статье рассказывается, как легко активировать глобальные скрипты интерфейса в Zabbix и демонстрируются три примера. Подробности под катом.
Читать далееПривет, Хабр! Мы — Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Всех с наступающим Новым годом, желаем сходимости типов во всей вашей жизни!
Приветствуем любую обратную связь! (づ ◕‿◕ )づ
Читать тридцать шестой выпускЭта подборка для вас, если в ответ на вопрос «Как будешь отмечать Новый год?» коллеги и друзья рассказывают, что едут покорять Эверест, пить кокос под пальмой или планируют забег по гостям.
Команда Профи.ру сделал подборку сериалов, которые особенно зайдут айтишникам (и не только): про технологии, корпорации, свободу воли, стартапы и людей в IT.
Читать далееЧетыре года назад у меня Хабре была статья про цифровой проприетарный формат кардиограммы, структуру которого я попытался разгадать по максимуму. В результате мне удалось увидеть формы сигналов сторонними программными инструментами, в том числе и в аудиоредакторе. Более того, я разобрался, как вычислить недостающие 4 отведения, так как в файле было записано только 8 каналов. И в целом мне повезло с форматом представления цифровых данных: никаких там ADPCM 12 бит и близко не было.
В этом году пару месяцев назад мне пришлось столкнуться ещё с одним проприетарным форматом кардиограммы. На этот раз речь пойдёт о мобильном кардиографе белорусской компании «Кардиан». Основная его аппаратная часть – коробка с электроникой, куда подключаются через разъём электроды для снятия кардиограммы. Дополнительная часть – устройство со смартфоном на андроиде, оснащённое термопринтером. Обе части соединяются через Bluetooth. В основной части стоит современный популярный микроконтроллер STM32, но данная статья не про обратную разработку электроники.
Читать далееПривет, Хабр!
Cегодня разберём экспериментальную фичу Kotlin 2.2 — контекстные параметры. C помощью контекстных параметров функции и свойства могут объявлять зависимости, которые неявно передаются при вызове.
Допустим, есть сервис логирования UserService, который нужно часто передавать во многие функции. Без контекстных параметров пришлось бы всюду писать fun outputMessage(users: UserService, msg: String). С параметрами контекста достаточно объявить функцию так:
Читать далееЧасто дизайнеры и разработчики живут в разных вселенных. Одни думают о пикселях и user flows, другие — о latency & database queries. Но именно на стыке этих дисциплин рождаются самые эффективные и надёжные продукты. Давайте посмотрим, как ваши дизайн-решения могут стать первым и самым важным рубежом обороны для бэкенда.
Каждый Новый год начинается одинаково: «вроде всё купили», а заканчивается поиском огурцов, батареек и здравого смысла.
В этот раз мы решили пойти против хаоса и собрали онтологию праздничного стола: меню, блюда, рецепты, продукты, остатки и закупку — в одном графе.
В статье — новогодняя сказка про холодильник-портал, онтология оливье, OntoAI в роли верного Ланселота и честный разбор того, как из живой модели получается объяснимый план покупок. Без магии, но с причинно-следственными связями.
Читать далееЗадумывались ли вы о том, зачем компьютерам нужна оперативная память (ОП, RAM), когда у них уже есть дисковое хранилище (диск)? Ответ кроется в скорости доступа. Хотя диск является постоянным, он намного медленнее, чем ОП. ОП жертвует изменчивостью ради скорости - данные исчезают при выключении питания, но время доступа гораздо меньше. Как следствие, центральный процессор (ЦП, CPU) имеет доступ только к ОП, а не к диску.
ЦП имеют встроенные регистры, которые еще быстрее, чем ОП. Тогда зачем нам вообще ОП? Затем, что количество и размер регистров ограничены. Представьте функцию, которой нужно работать с тысячью переменных - все они не поместятся в регистры. Что если нам нужно хранить большие структуры данных, такие как массивы или объекты? У регистров нет емкости (capacity). Вот где в игру вступает ОП - она предоставляет пространство, необходимое для обработки больших и сложных данных.
Читать далее