Pull to refresh
39
0

Пользователь

Send message

Принципы юнит-тестирования. Часть первая

Reading time10 min
Views44K

Привет! Меня зовут Владимир, я разработчик команды продукта «Сервис персонализации» в SM Lab. В этом посте я хотел бы рассказать (а в комментариях — обсудить) один очень важный и полезный инструмент разработчика — юнит-тесты.

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

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

Эта статья для всех – кто слышал про них, но не видел, кто приступает к написанию юнит-тестов, и кто их пишет уже давно. Надеюсь, каждый из вас найдет что-то полезное для себя.

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

Итак, поехали.

Читать далее
Total votes 31: ↑30 and ↓1+29
Comments17

Плеер more.tv: каким он был и что умеет теперь

Reading time4 min
Views2.9K

У Национальной Медиа Группы есть много  ТВ-каналов — СТС, Че, Dомашний, Пятый, РЕН ТВ и многие другие. Само собой, у каждого канала есть свой сайт, на котором транслируется соответствующий видеопоток. И не ТВ-каналами едиными: ещё есть онлайн-кинотеатр more.tv со своими особенностями.

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

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments3

Одна библиотека программных прав, чтобы править ими всеми

Reading time6 min
Views2.6K

Фраза «Всё хорошо в своё время» очень сильно подходит для того, чтобы описать, как обстоят дела у ТВ-каналов в области управления библиотекой программных прав и формирования эфирных сеток вещания. Со стороны может показаться, что некоторые каналы раскидывают по сетке фильмы и сериалы довольно рандомно, ориентируясь лишь на базовый интерес зрителя или на своё чувство прекрасного.

На самом деле, сетку прогнозируют, формируют и постоянно актуализируют специально обученные люди из программного департамента.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments3

Как практики управления разработкой ПО помогли мне повысить эффективность малого бизнеса в 3,5 раза

Reading time6 min
Views4.4K

Разработка ПО — довольно формализованная (в хорошем смысле),и активно развивающаяся отрасль, работающая с нематериальными результатами интеллектуальной деятельности. Есть лучшие практики больших компаний, есть опыт стартапов. И те и другие во многом стремятся использовать современные методологии разработки ПО, которые часто дорабатывают под себя. Ведь они обеспечивают собранность, систематизированность и прозрачность данных, помогают видеть процесс от А до Я, отслеживать эффективность и прочее, прочее, прочее.

Я не так давно пришёл в современное IT (около полугода назад), но за это небольшое время успел оценить, какую пользу приносят передовые практики управления разработкой, собственно, разработке. Я был приятно удивлен и слегка ошарашен. Настолько, что подумал — а почему бы не применить все это хозяйство к чему-то “не айтишному”? Скажем, к малому бизнесу, а именно - мелкому ритейлу товаров на маркетплейсах (МП)? 

Тут необходима ремарка. У меня давно была мечта: вне зависимости от места работы я хотел иметь свой маленький бизнес, который я буду параллельно выстраивать и развивать. Поэтому сейчас в отрыве от основной работы я продавец на одном из маркетплейсов.

Читать далее
Total votes 24: ↑19 and ↓5+14
Comments1

Dashboard as code, или как мы создание дашбордов автоматизировали

Reading time4 min
Views8.7K

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

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

Сейчас будет «Но», правда?

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

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments6

Динамическая регрессионная модель: как сделать так, чтобы регресс не съел все ваши ресурсы

Reading time6 min
Views2.6K

К хорошему быстро привыкаешь, причём иногда настолько быстро, что кажется, будто какая-то полезная штука с тобой уже чуть ли не всю жизнь. С дистанционным банковским обслуживанием такая же история: по ощущениям ДБО – это уже чуть ли не стандарт, который обязательно должен быть у всех. Хотя на самом деле эта опция не так давно отметила десятилетие. За все годы развития ДБО постоянно обрастало новыми возможностями: сначала можно было просто оставить заявку на открытие счёта, затем открыть сам счёт, оформить дебетовку (а потом и кредитку). Сейчас так же просто можно оформить ипотеку или взять срочный кредит.

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

Отдельно тут можно отметить пандемию, когда в условиях карантина и удалёнки популярность ДБО многократно возросла. Мы в МКБ в это время потихоньку готовили ряд новых возможностей и планировали выкатывать их постепенно, но надо было подстраиваться под новую реальность и форсировать процесс. Сейчас наша система обслуживания клиентов построена так, что человек де-факто может посетить офис МКБ лишь один раз, после чего ему в дистанционном формате будет доступен весь спектр наших банковских услуг. Причём что в мобильных приложениях, что в веб-версии – объём функций практически идентичен.

Но этого поста бы не было, если б на пути ускоренного расширения функциональности мы не встретили его – стремительно растущий набор регрессионных кейсов.

Меня зовут Егор и в этом посте я расскажу, как мы наладили регрессионное тестирование, на примере собственно ДБО, а также одного из важнейших столпов качественного дистанционного обслуживания — нашей CRM.

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments3

Баг с псионическими сигнатурами в Java

Reading time6 min
Views5.3K
В классическом научно-фантастическом сериале BBC Доктор Кто часто используется следующий сюжетный приём: Доктору удаётся избежать неприятностей, показав удостоверение личности, которое на самом деле совершенно пустое. Разумеется, удостоверение сделано из специальной «психобумаги», заставляющей смотрящего на неё человека видеть то, что удобно для Доктора: пропуск, ордер или что-то ещё.


Оказывается, некоторые новые релизы Java тоже были подвержены подобному трюку в реализации широко используемых сигнатур ECDSA. Если запустить одну из уязвимых версий, то нападающий легко сможет подделать некоторые типы сертификатов SSL и handshake (что позволяет вмешиваться в обмен данными и модифицировать их), подписанные JWT, декларации SAML или id-токены OIDC и даже сообщения аутентификации WebAuthn. И для всего этого достаточно цифрового аналога чистого листа бумаги.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments1

Тестирование продукта RuScanner: как заставить отладчик Android работать во благо тестирования

Reading time4 min
Views2.3K

Всем привет, меня зовут Дарья Чернышева, я инженер по обеспечению качества команды RuScanner.

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

Подробнее про продукт

RuScanner (RS) — приложение для сканирования маркированных товаров и коробов, в которые эти товары упаковываются. Товары сканируются посредством считывания специальной этикетки КИЗ (CIL), а короба — LPN, зашифрованных в штрихкоды. 

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments1

Стили заголовков в CSS: градиенты

Reading time5 min
Views22K

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

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments4

Современный цифровой офис 2022

Reading time6 min
Views3K

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

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

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

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments2

Как физические упражнения улучшают когнитивные способности и здоровье мозга в целом

Reading time7 min
Views28K


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

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

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

  1. Улучшение работы мозга и памяти.
  2. Улучшение и защита мыслительных процессов.
  3. Повышение концентрации.
  4. Уменьшение стресса, депрессии и беспокойства.
  5. Улучшение качества сна.


Физические упражнения несут в себе физиологические преимущества как для тела, так и для мозга. Упражнения укрепляют память и улучшают качество мыслительных процессов – как прямо, так и косвенно.
Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments67

Как мы СМ 3.0 запускали

Reading time4 min
Views1.6K

Привет, меня зовут Виктор, я руководитель продукта сайта Спортмастер, точнее — его новой версии. Я работаю в компании с 2019 года и пришёл на проект системным аналитиком. В то время проект только стартовал. Мы выбрали архитектуру нового приложения, технологии, тактику тестирования, а также собрали команду разработки.  

На старт

Через полгода после старта работ выяснилось, что дизайны не соответствуют текущим реалиям, так что разработку заморозили на полгода. В это время команда не скучала, развивалась и реализовала небольшой проект — Web-приложение для управления электронными подарочными картами. И вот появились дизайны, появились концепция и большой файлик в Excel с примерно 800 строками. Каждая строка — это фича, которую надо реализовать на сайте. Фичи были как маленькие (отображать баннер и другой блок на сайте), так и большие (реализовать корзину).

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

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments4

Как мы в QIWI внедряли Kotlin Multiplatform Mobile Часть 2: Смотрим шире

Reading time6 min
Views2.2K

Это продолжение нашего рассказа о внедрении Kotlin Multiplatform Mobile в QIWI. Если хотите узнать больше про технику, посмотреть на код, переходите в первую часть. В этой статье будет больше контекста про то, как мы принимали решение, готовили прототип и внедряли технологию в команды. Наш опыт может помочь вам “продать” KMM в вашей компании и вашим стейкхолдерам. Я расскажу о плюсах и сложностях, с которыми мы столкнулись на нашем пути.

Немного истории

В QIWI мы часто пробуем что-то новое в наших процессах и в разработке. За последние 5 лет мы создали несколько приложений с нуля, используя разнообразные подходы. Например, мы впервые попробовали кросс-платформу, когда делали приложение QIWI Инвестор. Мы использовали инструмент J2ObjC, чтобы конвертировать общий модуль с кодом на Java на Objective-c для iOS. Это решение было смелым, но не самым надежным. По ходу использования было много проблем, самые большие — с конвертацией кода сторонних библиотек. В итоге проект закрылся, как и этот эксперимент. Кросс-платформенный подход оказался рабочим, но мы отложили его в сторону пока не появился более надежный инструмент.

В 2018 году мы перешли от платформенных команд к кросс-функциональным. Это стало самым большим изменением в процессе разработки c внедрения скрама. “Совместное владение кодом” стало нашей новой ценностью. Границы между платформами начали размываться, мы стали внимательнее изучать код на других платформах, вместе принимали решения и делились лучшими практиками.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments0

Турель из Portal своими руками

Reading time9 min
Views24K

А вы играли в Portal? Даже если нет, сборка личной автоматической турели с детекцией движения и оригинальным голосовым сопровождением наверняка окажется как минимум любопытной, ведь такая диковина может не просто украсить интерьер, но и стать, к примеру, отличным подарком для детей.
Читать дальше →
Total votes 89: ↑88 and ↓1+87
Comments21

Мой маленький триод: Ламповая ЭВМ — это магия

Reading time25 min
Views25K
Экспериментальная 3U декатронная ячейка. Модуль декатрона А103 со схемой шифратора и переноса

Пришло время возобновить славную традицию ежегодного первоапрельского дайджеста по моим безумным вычислительным проектам. В прошлой трилогии [1], [2], [3] я рассказывал про создание де-факто самого быстрого в мире релейного компьютера BrainfuckPC. После трёх лет раздумий я наконец-то готов начать активную фазу строительства уникальной ламповой ЭВМ с кодовым названием DekatronPC.
Читать дальше →
Total votes 112: ↑112 and ↓0+112
Comments49

Чат-боты в банке: где и как их применять?

Reading time5 min
Views4K

Меня зовут Дмитрий Литвинов, в Московском кредитном банке (МКБ) я курирую направление автоматизации внутренних сервисных подразделений – это операционный департамент, контактный центр и ряд других функций. Чат-боты стали довольно полезным инструментом для бизнесов любого размера и технология активно применяется в организациях самого разного профиля. Я бы хотел поговорить о том, какие технологические решения используются для создания ботов и как оптимально определить зоны их применения.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments8

Сегодня ночью мы успешно выполнили обновление вашего организма

Reading time4 min
Views56K

Добрый день!

Мы рады представить вам новую версию, в которой много замечательных изменений! Вот только некоторые из них:

  • Убраны пальцы ног. Отдельные пальцы только тратили излишние ресурсы, теперь ступня просто заканчивается второй пяткой меньшего размера. Форма второй пятки примерно совпадает с формой пальцев прошлой версии для совместимости с обувью. В некоторых азиатских и греческих локалях, увы, ряд сандалий будет несовместим с новой версией. Пользователи этих локалей могли прочесть уведомления о необходимости обновить обувь за 2 недели до релиза в подразделе 14.22 оферты на нашем официальном сайте.
  • Исправлена ошибка в 6-й жаберной дуге, возвратный гортанный нерв больше не возвратный. В новой стабильной версии это прямой гортанный нерв.
  • RBP v1.0: добавлена возможность для разработчиков обращаться к нервной системе по API.

Также исправлено более сотни мелких ошибок, внесено несколько изменений в архитектуру для большего удобства пользователя, поддержки экологичности, стабильности развития, снижения углеродного следа и экономии невозобновляемых энергоресурсов. Часть обновлений связана с безопасностью, но мы не раскрываем эти данные на текущий момент.
Читать дальше →
Total votes 281: ↑267 and ↓14+253
Comments198

Весёлая консоль

Reading time6 min
Views14K


Сегодня 1 апреля и ежегодно в этот день разные Интернет-ресурсы публикуют вымышленные курьёзные "новости" а также просто всякие несерьёзные статьи. Вот и я решил в сей пятничный день немного приобщиться к этому весёлому многообразию. Сегодня мы обратимся к разным забавным, хотя и бесполезным программам, работающим в консоли эмулятора терминала. Видимо — ввиду несколько неформального начала UNIX (как известно, Кен Томпсон написал игру Space Travel для компьютера PDP-7) — различные "бестолковые" программки писались буквально с первых дней существования операционных систем. Что ж, давайте последуем за героем замечательных комиксов Дэниеля Стори и разнообразим жизнь в "скучной" консоли.

Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments13

Что выбрать в эру Digital-трансформации: оптимизацию процессов или глубокий реинжиниринг

Reading time6 min
Views1.6K

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

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

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

Меня зовут Дмитрий Сыцко, я расскажу про реинжиниринг на примере Московского кредитного банка (МКБ).

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments0

Как можно повысить качество создания программного обеспечения с помощью методологий Lean Six Sigma и PRINCE2

Reading time9 min
Views2.9K

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

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

В посте я расскажу про методы повышения качества, которые сейчас получили особую популярность — построенные на основе методологий Lean Six Sigma, а также обсудим гибкие методики на основе подходов Agile и гибридных подходов PRINCE2. Разберу плюсы каждого из подхода и разберу необходимые шаги и условия для их внедрения.

Всё это в разрезе создания ПО (также подойдет и для производства радиокомпонентов).

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments2

Information

Rating
Does not participate
Registered
Activity