Feed aggregator

Археология автотестирования: SUnit, прародитель JUnit

Habr.com - 4 hours 33 min ago

Привет, Хабр.

Меня зовут Михаил, я технический автор, работаю с инструментами тестирования в команде ТестОпс. В какой-то момент мне стало интересно — а как получила распространение мысль о том, что разработчикам тоже надо писать тесты?

У меня было смутное представление о некотором тёмном «раньше», и условно-ограниченно-просвещённом «сейчас», когда мысль о том, что тестирование не должно жить отдельно от разработки, кажется, стала нормальной.

Мостик между этими двумя мирами — автотесты, они нужны и тестированию, и разработке. Фреймворк JUnit сознательно писали как можно более простым — в первую очередь для того, чтобы сделать его повседневным инструментом для разработчиков. Люди, работавшие с первыми фреймворками автотестирования, стали также авторами подходов экстремального программирования (XP) и разработки через тестирование (TDD) — т. е. подходов, настаивающих на том, что тестирование — это не «обязаловка», а интегральная часть разработки.

С учётом этого, я решил заняться «археологией» автотестирования: посмотреть на прародителя современных фреймворков xUnit, SUnit для Smalltalk. Я хотел потрогать его руками, а также понять, что двигало его автором. В результате получилось довольно интересное путешествие, которым я хотел бы с вами поделиться.

Вначале я посмотрю на то, что из себя представляло автоматизированное тестирование в 1990-е. Чтобы понять, что добавил SUnit, попробую запустить на нём несколько примитивных тестов. А потом посмотрю, что можно наскрести по сусекам интернета о мотивации создателей и пользователей. Как они пришли к тому, что барьер между разработкой и тестированием надо преодолеть? Сам я не был участником этого процесса (годами не вышел), так что придётся опираться на вторичные источники.

Читать далее

Новая реальность бэкенда или что для меня изменилось с конца 2023 года

Habr.com - 4 hours 33 min ago

Осенью я начала готовиться к будущему выходу из декретного отпуска, купив курс Яндекс.Практикума «Продвинутый Go-разработчик». Сейчас я еще в процессе прохождения курса и недавно сдала первый дипломный проект, но уже сейчас могу сказать, что разработка ПО вышла на другой уровень за время моего отпуска длиной почти в 2 года. В разработке сервисов появилось много приятных фишек, которые мне нужно освоить. В данной статье я хочу описать то, какие изменения я уже заметила в разработке ПО и что я уже смогла почерпнуть из курса практикума.

Начать хочется с максимально актуальной темы — это использование нейронных сетей. Без них в современном мире разработки(и не только) теперь никуда. Когда я уходила в декретный отпуск, то только малая часть разработчиков активно использовала их, сейчас это повсеместно. Вот пару примеров того, как они уже облегчают нам жизнь.

Читать далее

RAG — это главное. Почему специализированные LLM реже галлюцинируют

Habr.com - 4 hours 41 min ago

Когда закрылся Skype, этого почти никто уже и не заметил. Хотя сервис когда-то был синонимом термина «видеосвязь». Но потом видеозвонки внедрили везде — в браузеры, мессенджеры, корпоративный софт, экосистемы, а Skype не успел адаптироваться... Возможно, с LLM происходит нечто подобное. Универсальные LLM впечатляют глубиной эрудиции — но для решения конкретных проблем совершенно непригодны. Хотя они быстро и уверенно отвечают на вопросы, выдавая целые «портянки» текста, часто эти ответы представляют собой галлюцинации или «воду», с выдуманными ссылками.

Читать далее

Что происходит с рынком труда — взгляд нанимающего менеджера

Habr.com - 4 hours 41 min ago

Всем привет! Меня зовут Кирилл, я один из основателей Максилекта. Но сегодня говорю не от лица компании, а как человек, наблюдающий со стороны за рынком труда.

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

Читать далее

Балансировка DNS-трафика и активные health-check'и апстримов — как и почему мы начали использовать DNSdist

Habr.com - 4 hours 48 min ago

Коллеги, всем привет!

Долгое время в нашей внутренней сети для обработки DNS-трафика мы использовали только BIND, и нам с ним было хорошо. Но в какой-то момент его возможностей перестало хватать. В статье расскажу, что именно с BIND не так и почему теперь весь DNS-трафик у нас проходит через DNSdist. И что это вообще такое...

Читать далее

Как я потратил время и нервы на CRM для программистов и почему это никто не купил

Habr.com - 4 hours 50 min ago

Недавно я заметил такую штуку: знакомые фрилансеры и маленькие студии разработки частенько теряют заказы, да и организовано у них всё так себе. Сообщения находятся то в одном сайте, то в другом, программисты в Discord сервере, заказчики и прогрев в Telegram, но при этом ещё надо в какую‑то CRM заходить и там ещё что‑то тыкать щёлкать. В общем — мест много, запутанно всё и не удобно.

Подумал: «А что если сделать CRM, которая работает ИЗ телеграма?» Клиент отправляет заказ боту, менеджеры видят в веб‑интерфейсе, программисты предлагают цены, все получают уведомления. Всего два места, но при этом заказчику вообще не надо об этом думать, он в телеграмме, там где уже зарегистрирован. Красиво же?

И я начал.

Читать

Создание легкого shell на си

Habr.com - 5 hours 3 min ago

Многие начинающие разработчики которые начинаю писать на языке C сталкиваются с проблемой : Какой 1 пет-проект написать на C ? И вопрос то логичный ведь проекты на C никогда не славились легкостью по сравнению с проектами на python или JavaScript . И как по мне отличная идей написать shell ведь там не надо знать ассемблер или иметь глубокие знание в работе OC , и он относительно легок в понимании .

В этой статье мы с вами подробно разберем написание shell на языке C , как он устроен ,в чем отличия bash shell и cmd. И напишем свой shell на 450 строк кода

Начнем пожалуй с самыx базовых вопросах .

Читать далее

[Перевод] [Обзор книги] System Design. Подготовка к сложному интервью [Часть 1 & Часть 2]

Habr.com - 5 hours 15 min ago

Всем привет, этот пост посвящен двум популярным книгам по подготовке к собеседованию по системному проектированию. Я купил и прочитал обе, поэтому могу дать обзор и подготовить резюме для тех, кто заинтересован. Хотя я рекомендую прочитать обе книги. (Запомнить все из них — задача сверхчеловеческая, но достаточно будет, если вы уловите такие концепции, как «Приблизительные оценки» или «Конкурентность»).

Читать далее

Оптимизация Windows Server 2016, если на VPS мало памяти

Habr.com - 5 hours 17 min ago

Посмотрим, как повысить производительность работы сервера на Windows Server 2016, 2019 или 2022 в среде с ограниченными ресурсами (2−4 ГБ RAM, 2 vCPU), то есть типичного VPS.

Оптимизация сервера — стандартная процедура, которую имеет смысл запускать каждый раз после регистрации нового VPS. Цель — выжать максимум производительности из железа без больших финансовых затрат.

Читать далее

BPMN для аналитиков и тимлидов (часть 2)

Habr.com - 5 hours 18 min ago

Привет, Хабр! Это вторая статья про BPMN, в которой мы переходим от теории к практике.

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

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

Читать далее

Пробуем на вкус техники MITRE ATT&CK — T1547.001 Ключи запуска в реестре — Папка автозагрузки

Habr.com - 5 hours 39 min ago

Этой статьей я начинаю цикл «Пробуем на вкус техники MITRE ATT&CK».

Суть данного цикла - изучать логи, сформированные одной из реализаций той или иной техники MITRE ATT&CK (далее MA).

Необходимоеуточнение — не все реализации той или иной техники будут рассмотрены, так как я буду выбирать интересные лично для меня и, возможно, предложенные в комментариях.

Читать далее

Готовимся к экзамену в ШАД: разбор задач по линейной алгебре последних лет

Habr.com - 5 hours 54 min ago

Тематика задач на вступительных экзаменах в Школу Анализа Данных (ШАД) Яндекса год от года несколько меняется. Отчасти это связано с появившейся возможностью использовать СhatGPT. Из важных изменений: в последние год-два стали появляться задачи на жорданову нормальную форму, хотя в программу экзамена она не входит (когда-то составленные программы редко обновляют). Мы разберём одну из таких задач с письменного экзамена. Кстати, на устном собеседовании встречались вопросы типа: сколько может существовать корней из данной матрицы , то есть решений уравнения . Или при каком условии хотя бы один корень можно извлечь. Тут жорданова форма очень сильно поможет. Для решения задач, как правило, достаточно формулировки основной теоремы. А если вы хотите понять логически простой способ найти жорданов базис, порекомендую учебное пособие Кряквина. Изложенный там метод мне показался гораздо проще, чем доказательства из известных университетских учебников.

Приступим к разбор задач письменных экзаменов.

Читать далее

Как ускорить брендирование торговых точек с помощью AR

Habr.com - 6 hours 3 min ago

Т2 запустила сервис для цифрового брендирования торговых точек – ТАР (trade and photobinding). Новый продукт позволяет внедрять фирменный стиль в партнерские магазины в формате AR-визуализации. Это уменьшает время согласований и увеличивает производительность команды на стороне Т2 в 3,5 раза. TAP ускорил запуск брендирования до 4 раз, усилил прозрачность аналитики и контроль процесса.

Читать далее

Прошел техсекцию, получил отказ: что решается на финале

Habr.com - 6 hours 15 min ago

Привет, Хабр!

Прошел все технические этапы, решил задачи на алгоритмы, обсудил архитектуру, показал опыт — и вдруг отказ. Без объяснений, с размытой формулировкой про «другого кандидата» или «культурное несоответствие». Знакомо?

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

Читать далее

Нейробиология в дизайне: как минималистичный UI снижает когнитивную нагрузку

Habr.com - 6 hours 16 min ago

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

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

Читать далее

Календарь

Habr.com - 6 hours 17 min ago

Ты ведь тоже мечтал о работе без начальников? Где нет правок, дедлайнов и токсичных чатов. Где всё честно: тебе платят за результат, а система благодарит за исправленные ошибки.

Поздравляю. Ты просто ещё не понял, что уже работаешь там.

Если добавить немного пафоса и глянца — получился бы «Духless» Минаева. Если добавить немного философии и LSD — получился бы «Generation П» Пелевина. Но я добавил только планёрки, отчёты и немного выгорания и получился «Календарь».

Антиутопия без дронов и революций. Только ты, корпоративная система и календарь, который знает, когда тебе работать, есть и сомневаться.

Менеджер мечтал уволиться с «галеры» — и попал в компанию, где увольнение не предусмотрено. Свобода теперь — просто пункт в расписании.

“Календарь” — история о том, как система учится быть человеком, а человек — становится системой.

Читать далее

Каждому автотесту по микросервису

Habr.com - 6 hours 18 min ago

Меня зовут Артём Дружляков, я техлид QA в направлении кредитования. Сегодня я хочу рассказать о проекте, который мы реализовали в направлении тестирования микросервисов в Альфа-Банке, — о разделении автотестов по микросервисам.

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

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

Читать далее

Живая документация проекта через VS Code + Codex + Memory Bank

Habr.com - 6 hours 22 min ago

Пошаговая инструкция и промпты для агента OpenAI Codex — создаем актуальную документацию проекта. А заодно упрощаем для продакт-менеджеров постановку задач программистам.

Читать далее

Менеджер — мама утка

Habr.com - 6 hours 22 min ago

В некоторых организациях есть руководитель - мама утка. Это вовсе не должность, а звание, состояние души и, возможно, форма заботы, доведённая до организационного экстаза. Мама утка следит, чтобы все утята - сотрудники её отдела - шли одним ровным строем: на обед, на кофе-брейк, на корпоратив и даже в бессмысленные митинги. Главное - синхронность. Командный дух, как известно, формируется не в коде и не в архитектуре, а в походе за шаурмой в 13:05.

Читать далее

Как извлечь ДНК автора? Креатив от LLM

Habr.com - 6 hours 24 min ago

Генеративные нейросети с нами уже почти 3 года. В начале казалось, что они будут именно генерировать новые смыслы, комбинируя все знания мира, но реальность оказалась другой. Комбинирование смыслов не приводило к реально креативному результату, иными словами, создать что-то новое, креативное, необычное, прорывное — то, что будет читать человек с интересом, не получалось.

При этом генеративность отлично работала там, где не нужны новые смыслы, например те же RAG-системы для извлечения знаний, где обычно temperature ставится в 0.0 (aka нулевая креативность), а в промпте явно указывается «не выдумывай, используй только знания из контекста». Поверх этого создавались сложные мультиагентные системы, которые должны были понять, что хочет пользователь, и выполнить эту задачу. Здесь всё тоже работало хорошо.

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

Здесь также помогает мультиагентный подход и тонкая настройка правил, промптов. Но о креативе здесь речь не идёт.

Нейросети отлично показали себя в медицине, только ленивый сейчас не имеет чатов типа «врач», «терапевт», «уролог :-)» и т. д. Медицина казалась сложной, но по факту очень детерминированной наукой, в которой есть тонны знаний и чёткие протоколы лечения. Здесь нет креатива, и не нужно, а порой даже опасно создавать новые смыслы. Здесь есть алгоритм: если A, то B. Загрузил анализы, получил диагноз и полное детальное объяснение, намного более детальное, чем вам расскажет врач (за 12 минут приёма-то).

Читать далее

Who's online

There are currently 0 users and 0 guests online.
Syndicate content