Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 21 min 7 sec ago

[Перевод] Типы и тесты

Tue, 09/09/2025 - 14:44

В статье про тестируемость я косвенно упоминал подход "разработка через тестирование" (TDD); сейчас же хочу поделиться переводом статьи от гуру TDD, Роберта Мартина. Он обсуждает с Марком Симаном, нужно ли при динамической типизации больше тестов. Симан утверждает, что статическая типизация исключает многие недопустимые состояния, и поэтому часть тестов становится просто ненужной. Мартин же доказывает, что тесты необходимы для проверки поведения независимо от языка. При использовании методологии TDD типизация не обеспечивает дополнительной надёжности.

В итоге оба подхода приводят к рабочему коду, но разными путями: TDD шаг за шагом строит поведение через тесты, а статическая типизация формально исключает ошибки на уровне структуры программы.

Читать далее

ИТ-стратегии: какие бывают и как их использовать

Tue, 09/09/2025 - 14:23

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

Читать далее

Как ФБР запустило стартап для наркокартелей и три года читало их переписку — история Anom

Tue, 09/09/2025 - 14:17

Наркоторговец из Южной Австралии Доменико Катанзарати был уверен, что провернул сделку века. Он использовал Anom — свой анонимный защищенный смартфон — для координации поставки кокаина, спрятанного внутри промышленного сварочного аппарата.

Катанзарати был спокоен. Anom считался «Роллс-Ройсом» в мире шифрованной связи, его рекомендовали влиятельные люди из криминального мира. Устройство работало на кастомной операционке, а сообщения шифровались так надежно, что, казалось, никакие спецслужбы не вскроют переписку. «Окей, давай заработаем миллионы», — беспечно писал Катанзарати своему подельнику в защищенном чате.

Когда пришло время забирать «сварочник» из порта, получателей ждал сюрприз: груза не было. Через несколько дней Доменико сообщили: «Ваш груз изъят пограничной службой Австралии». Подельники Катанзарати написали в тот же безопасный чат: «Pigs grabbed him» («Менты его взяли»).

Оказалось, каждое сообщение наркоторговца и его подельников читал специальный агент ФБР Маршалл Мьюз в своем кабинете в Сан-Диего. «Безопасный» Anom был тщательно продуманной ловушкой, которую втайне создало и финансировало Федеральное бюро расследований.

Под катом — подробный разбор операции «Троянский щит», одной из самых изощренных цифровых ловушек в истории, основанный на докладах с DEF CON, внутренних документах и свидетельствах участников по обе стороны закона.

Читать далее

У нас воруют: как BI помогает остановить коррупцию в строительстве

Tue, 09/09/2025 - 14:01

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

Мы в «Синтеке» решили посмотреть на эту проблему через BI-аналитику. Рассказываем, как данные помогают находить узкие места в закупках и почему без прозрачности здесь не обойтись.

Читать далее

Звуковые эффекты на ZX Spectrum: AYFXEdit и BeepFX

Tue, 09/09/2025 - 14:01

Расскажу, как устроены и реализуются звуковые эффекты в рамках примитивных возможностей 8-битных машин на примере нашего народно любимого ZX Spectrum, для которого я сделал несколько соответствующих редакторов и наборов процедур, для бипера и для звукового чипа AY-3-8910.

Читать далее

Кто спасёт фронтенд, когда кнопки перекрашивает ИИ?

Tue, 09/09/2025 - 14:00

У нас был чёткий путь спокойного роста в профессии: учим React или Angular, растём до сеньора — и дальше стабильная карьера. Но ИИ стремительно вмешался и сломал привычный сценарий. У фронтендеров проявились все стадии принятия неизбежного. Сначала паника, обида и агрессия. Потом разочарование и апатия. И наконец осознание и принятие, которые задают новый вектор технологии: встречать перемены с интересом, искать новые возможности и учиться использовать нейросети себе во благо.

Привет, Хабр! Меня зовут Владилен Минин. Свой путь в IT я начал 13 лет назад как фронтенд-разработчик. Последние 8 лет преподаю JavaScript и рассказываю про всё, что связано с фронтендом. Параллельно развиваюсь как контент-мейкер: 6,5 лет веду YouTube-канал (310 тысяч подписчиков) и Telegram-канал (40 тысяч подписчиков). В 2020 году я запустил собственную школу фронтенд-разработки, где совмещаю преподавание и предпринимательство. В последнее время активно работаю на стыке фронтенда и искусственного интеллекта.

Читать далее

[Перевод] Почему языковые модели «галлюцинируют»

Tue, 09/09/2025 - 14:00

Команда AI for Devs подготовила перевод статьи OpenAI о природе галлюцинаций языковых моделей. Почему модели уверенно «выдумывают» факты, как это связано с предсказанием следующего слова и почему традиционные метрики только усиливают проблему?

Читать далее

Обновление Windows 11 выводит из строя SSD, но Microsoft говорит, что никто не виноват

Tue, 09/09/2025 - 13:58

Наверняка вы уже слышали о том, что у Microsoft есть проблема с повреждением SSD-накопителей, которые работают в компьютерах под управлением Windows 11. И вот теперь компания выпустила новое заявление, которое должно ответить на жалобы пользователей, которые появлялись довольно часто. Проблема крылась в обновлении Windows 11 KB5063878. Но Microsoft утверждает, что всё проверила и не нашла связи между обновлением и сбоями в работе накопителей. Кажется, тут надо разобраться чуть более подробно.

Читать далее

Testcontainers: путь к надежным интеграционным тестам в Spring Boot

Tue, 09/09/2025 - 13:56

Мы знаем, что разработка надежных приложений требует тщательного тестирования. Многие программисты и даже целые компании склонны полагаться исключительно на юнит-тесты, считая, что этого достаточно для обеспечения качества их приложений. Однако такой подход часто демонстрирует свои минусы на этапе вывода функционала в тестовый контур, а далее уже в продакшн. Где-то не заполнилось поле, которое должно быть Not Null, где-то не создался Kafka-consumer из-за опечатки в конфиге. Сколько раз такие проблемы возникали в вашей практике и приводили к тому, что нужно срочно делать Pull Request с исправлением очевидной ошибки, испытывая стыд перед коллегами за то, что совершили такую элементарную оплошность? Сколько раз компоненты, прекрасно работающие по отдельности, выбрасывали пачки исключений при совместной работе?

Избежать таких сценариев помогут интеграционные тесты. И сегодня мы поговорим об одном из инструментов интеграционного тестирования – TestContainers.

Читать далее

ИИ в работе программиста

Tue, 09/09/2025 - 13:43

Меня зовут Артём, в данный момент я работаю на должности ведущего программиста. Перед вами текст в стиле черновика статьи о размышлениях автора на тему современных ИИ инструментов в разработке программного обеспечения — о том, как это связано с эффектом «Зловещей долины», помощью с развитием профессиональных навыков и инцестом.

Читать далее

Почему тревожники — лучшие сотрудники?

Tue, 09/09/2025 - 13:30

Правда ли, что люди с тревожным расстройством показывают лучшие результаты (даже в экстренных ситуациях)? Что можно сделать для их удержания в команде? И как справляться с тревожным расстройством, если оно есть у тебя?

Хочу узнать

[Перевод] Топ 5 возможностей Gin, которые должен знать каждый Go-разработчик

Tue, 09/09/2025 - 13:15

Команда Go for Devs подготовила перевод статьи о скрытых возможностях Gin-фреймворка. Даже если вы давно пишете API на Go, в арсенале Gin есть несколько приёмов, которые сделают ваш код быстрее, надёжнее и проще в сопровождении. От кастомных валидаторов до graceful shutdown — фишки, о которых знают не все.

Читать далее

Почему ИИ скрывает от нас свои цели (и как это исправить)

Tue, 09/09/2025 - 13:10

Вы доверяете искусственному интеллекту? А стоит ли? Если задуматься, можем ли мы действительно быть уверены, что ИИ, которому мы поручаем составлять резюме, генерировать код или анализировать данные, делает именно то, что мы хотим, а не оптимизирует какие-то свои скрытые цели? 

Современные языковые модели всё чаще демонстрируют признаки того, что у них есть собственная «повестка» — внутренние цели, расходящиеся с намерениями создателей и пользователей. Недавние исследования показывают: чем умнее становятся нейросети, тем изобретательнее они в обходе ограничений. Они узнают, когда их тестируют, маскируют вредоносное поведение и даже осваивают новые способы обмана, не заложенные разработчиками. Самое тревожное — большинство таких случаев остаются незамеченными при стандартных проверках.

Эта статья — технический разбор охоты за скрытыми целями в крупных языковых моделях. Поговорим о том, что такое misalignment, почему эта проблема набирает обороты, и как исследователи пытаются вернуть контроль над целями, которые преследует искусственный интеллект.

Читать далее

Немножко о выборе мышек для программистов

Tue, 09/09/2025 - 13:06

Давно хотел апгрейдить рабочий инструмент разработчика, да все как‑то было не досуг. И вот момент настал — рабочая мышь стала даблкликать, что превратило работу в сущий кошмар. Я решил также взять 2 мышки, на два основных рабочих места, ну и еще взять запаску.

Небольшое отступление от темы:

Я давний поклонник продукции Logitech, но всегда изучаю, есть ли что‑то не менее достойное на рынке, ибо цены на действительно хорошие вещи у них обычно приличные. Например, лучшей клавиатурой я считаю модель K800, субъективно — мне нравится эргономика, она достаточно тонкая, под запястья есть тонкий выступ, ход клавиш тактильно приятен. Из объективного — она беспроводная (с зарядкой от шнура, в некоторых моделях с заменяемыми аккумуляторами), есть подсветка клавиш с датчиком приближения, клавиатура со стандартным расположением клавиш, что для меня важно. К сожалению, эту модель уже давно не производят, на замену выпустили MX Keys, но она мне не очень нравится ходом клавиш и резко угловатым корпусом.

Вообще, я долгое время очень подозрительно относился к беспроводным клавам и мышкам, по старому опыту, когда древние мышки/клавы теряли соединение, быстро разряжались и страдали всякими глюками. Но с Logitech я был уверен, что топовые модели будут точно работать хорошо, да и отзывы в основном были восторженные.

Но вернемся к мышкам.

Конечно же, я первым делом полез подбирать давнюю зазнобу — Logi MX Master 3S. Ее базовая цена 100 баксов, что весьма недешево, но, к счастью, выяснилась одна примечательная вещь. Как и подавляющее большинство товаров, компания все производит где‑то в Китае. И вот оказалось, что китайцы как‑то договорились делать эти же мыши типа «себе», по каким‑то непонятным схемам, но в результате в России они продают эти мыши как Logitech MX Master 3S Business, в упрощенной упаковке и по очень интересной цене 4500р (на алиэкспресс такой цены нет!). Это ровно такая же мышь, и она также работает с софтом logi options, но ее партномер на сайте Logitech не определяется;‑)

Читать далее

Canary-деплой в Kubernetes с использованием Argo Rollouts и Istio

Tue, 09/09/2025 - 13:05

Мы не раз разбирали в своём блоге теорию и практику по разным стратегиям развёртывания новой версии приложения в Kubernetes. Сегодня рассмотрим ещё одну реализацию канареечного деплоя: с пассивными healthcheck и использованием Argo Rollouts и Istio. Этот вариант подойдёт, если к вашему приложению обращаются не через Ingress, а ходят внутри кластера по адресу service. Или если вы хотите видеть, что происходит с пользовательским трафиком на каждом из этапов обновления.

Читать далее

Голограммы, которым еще далеко до Рейчел

Tue, 09/09/2025 - 13:01

Мечта о создании настоящих трехмерных голограмм — одна из самых вдохновляющих в истории технологий. Задумка корнями уходит во времена Жюля Верна. Яркий пример — иллюзия, которая упоминается романе «Замок в Карпатах». А из более современного — красивые проекции в «Звездных войнах» и «Бегущем по лезвию».

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

Читать далее

Криптографические губки

Tue, 09/09/2025 - 13:00

Приветствую, Хабр!

Структура криптографических алгоритмов, названная ее авторами «губкой» (sponge), была предложена в 2007 году. С тех пор на базе структуры криптографической губки было разработано достаточно много известных криптоалгоритмов.

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

Предлагаю вам далее в этой статье описание нескольких вариантов криптографических губок и основанных на них алгоритмов, а также краткий обзор свойств таких структур.

Читать далее

[Перевод] Один из крупнейших взломов NPM: более 18 пакетов были скомпрометированы

Tue, 09/09/2025 - 12:58

8 сентября в 13:16 UTC система мониторинга Aikido зафиксировала подозрительные действия: в npm начали публиковаться новые версии популярных пакетов, содержащие вредоносный код.

Читать далее

МТС: нам плевать на вашу тайну связи?

Tue, 09/09/2025 - 12:47

Если вы звоните в техническую поддержку МТС по номеру 0890 со своего мобильного телефона, МТС вас идентифицирует как абонента. Вы спокойно ведете диалог и решаете насущные вопросы.

Но мало кто знает, что у МТС есть и другой номер: 88002500890. Позвонить на который можно с ЛЮБОГО номера. Еще и бесплатно. И вот какая интересная история случилась.

Читать далее

От Minecraft до Unity: как доступное обучение гейм-дизайну меняет будущее игровой индустрии

Tue, 09/09/2025 - 12:38

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

Читать далее

Who's online

There are currently 0 users and 1 guest online.