Как стать автором
Обновить

Компания Wrike временно не ведёт блог на Хабре

Сначала показывать

Как избавиться от нестабильных тестов

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.4K

Устали от нестабильных тестов?

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

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Набор инструментов backend reliability инженера

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.1K

Привет! Меня зовут Андрей, я возглавляю команду, которая отвечает за надежность и стабильную работу бэкенда в Wrike. Если вы когда-нибудь задумывались, что же такое «backend reliability», то знайте, что вы не один! Я часто объясняю, что это что-то вроде должности инженера по надежности сайта (SRE), но сфокусированная исключительно на бэкенде. В статье я расскажу о зонах ответственности BRE команды и инструментах, которые мы применяем для поддержания стабильной работы бэкенда на высоком уровне.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Почему разрабатывать ПО действительно сложно?

Время на прочтение5 мин
Количество просмотров4.3K

Давайте начнем с тривиального, но неоспоримого факта: программное обеспечение постоянно развивается – устаревает и обновляется, видоизменяется и дает дорогу новому.

Заметным исключением является наборная система TeX, разработанная Дональдом Э. Кнутом (D.E.Knuth). Предполагалось, что эта система должна быть совершенной, но даже в ней можно найти свои недочеты. Тем не менее, это уже отдельная тема для другой статьи.

Читать далее
Всего голосов 17: ↑15 и ↓2+16
Комментарии11

Делаем эмулятор Android через Terminal: пошаговое руководство

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7K

В Android разработке может наступить момент, когда для тестирования приложения на различных устройствах может потребоваться виртуальное устройство. Эмулятор Android легко можно создать с помощью GUI Android Studio, но также можно и с помощью командной строки на macOS. В этой статье я расскажу вам, как именно это сделать!

Шаг 1: Установите Java

Убедитесь, что в вашей системе установлена ​​Java. Если нет, то это можно сделать с помощью Homebrew, выполнив следующую команду:

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии6

Сила метаданных в расширяемой архитектуре продукта

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.7K

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

Ключевая фраза здесь — «без дополнительных усилий». ПО, несомненно, можно расширить и приложив к этому некоторые усилия по разработке. Вопрос в том, сколько усилий это потребует. 

Как метаданные могут помочь сократить эти усилия? Давайте разберемся.

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии5

Как перезапускать упавшие тесты параллельно

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.3K

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

Читать далее
Всего голосов 10: ↑9 и ↓1+9
Комментарии5

Не можете измерить — не сможете улучшить: как мы используем метрики в разработке автотестов

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.5K

Привет! Меня зовут Александр, я работаю QAA менеджером в компании Wrike, начинал с позиции QAA инженера в далеком 2010-ом и был первым в этой роли. За 12 лет нам удалось построить крутую команду и создать систему контроля качества, которая позволяет быстро и без багов деплоить продуктовый код в продакшен. 

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

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии13

Wrike Lock: как мы разработали механизм шифрования данных в продукте

Время на прочтение9 мин
Количество просмотров1.6K

Привет! Меня зовут Даниил Гранкин, я разработчик внутреннего бэкенд-юнита в Wrike. В этой статье я поделюсь техническими подробностями разработки Wrike Lock — основного механизма шифрования данных в нашем продукте. А также расскажу, для чего мы используем Encryption as a Service (EaaS) и какие проблемы решаем с его помощью. Эта статья будет полезна, если вы ищете способы дистрибуции ключей шифрования, но готовые решения вам не подходят.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Путь от студента до senior-аналитика за 3 года

Время на прочтение12 мин
Количество просмотров4.7K

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

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

Читать далее
Всего голосов 12: ↑9 и ↓3+8
Комментарии4

Как ускорить прогон тестов в многомодульном проекте Maven

Время на прочтение8 мин
Количество просмотров3.1K

Большое количество модулей Maven замедляет сборку проекта и время прогона тестов. Для того, чтобы сохранить многомодульную структуру проекта и быстро прогонять тесты, мы в Wrike написали новый инструмент — Maven Modules Merger, который сократил время некоторых сборок с 50 до 12 минут. В статье подробно расскажу о том, с какими проблемами нам помог справиться Maven Modules Merger и поделюсь подробностями его создания.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Заинтересованность инженеров: ресурс или блажь?

Время на прочтение10 мин
Количество просмотров1.8K

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

«Мэлоун обрадовался возможности пойти по старому следу и с готовностью принял участие в облаве».

«Ему, совмещающему в себе пылкое воображение со строгим научным подходом, как никому другому было ясно…». Что именно ему было ясно? Это уже детали рассказа «Кошмар в Ред Хуке». 

Читать далее
Всего голосов 10: ↑9 и ↓1+9
Комментарии2

Team Lead Simulator — маленькая игра про большую ответственность

Время на прочтение4 мин
Количество просмотров24K

 TL;DR: игра по ссылке.

Наверняка многие из вас в детстве баловались игрушками вроде «ПРОГРАММИСТ 1.3» — эдакими текстовыми квестами, в которых игрок должен был прокачаться из начинающего программиста хакером (термина «сеньор» тогда, наверное, еще не было), собрать самый крутой комп, заработать больше всех денег. При этом весь геймплей заключался в нажатии нужных кнопок действий и менеджменте немногочисленных ресурсов. Я, с теплом вспоминая такие игры, а также текстовые квесты в Космических Рейнджерах 2, решил создать игру Teamlead Simulator, в которой...

Читать далее
Всего голосов 46: ↑46 и ↓0+46
Комментарии26

К микросервисам через reverse engineering и кодогенерацию

Время на прочтение19 мин
Количество просмотров7.6K

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

Часто основная сложность заключается в том, что нужно одновременно поддерживать уже существующий код монолита и параллельно внедрять новые принципы и подходы.  В статье я расскажу, как мы в Wrike, используя reverse engineering и немного кодогенерации, реализовали первые шаги по выделению отдельных микросервисов и запустили первый «почти настоящий» BFF-сервис в рамках нашего монолита.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии3

Что общего у нуля, -1 и большого простого числа: Psychic Signatures в мире Java

Время на прочтение6 мин
Количество просмотров2.9K

Уязвимость ​​CVE-2022-21449 или “Psychic Signatures”, которая была обнаружена в Java 15-18, позволяет обойти механизм проверки ECDSA-подписи и подделать исходное сообщение. Если приложение использует уязвимую версию Java для валидации JWT-токенов на базе алгоритма ES256, злоумышленник может получить доступ к приложению от лица любого пользователя.

Подробное описание причины проблемы можно найти в этой статье, но первоначальный proof of concept не дает полного представления о том, какие приложения подвержены этой уязвимости. Чтобы исправить этот пробел, а также иметь возможность «поиграть» с приложением, которое максимально приближено к реальному, я создал стенд. На нем можно протестировать все возможные векторы атаки.

Для тех, кто не боится спойлеров
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Helmwave — еще один инструмент для деплоя helm-чартов

Время на прочтение5 мин
Количество просмотров5.1K

Для деплоя приложений в Kubernetes существует огромное количество различных инструментов. Если посмотреть на соответствующий раздел в CNCF Landscape, то можно потеряться в разнообразии. Поэтому иногда хорошо иметь в своем арсенале «серебряную пулю», которая подойдет для большинства задач. Helmwave вполне может стать именно таким инструментом.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Как сделать большой продукт доступным

Время на прочтение13 мин
Количество просмотров2.5K

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

Что я понимаю под масштабируемостью
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Как A/B-тестирование веб-страниц помогло нам повысить конверсию

Время на прочтение4 мин
Количество просмотров2.8K

Привет! Меня зовут Амаль, я веб-дизайнер в Wrike: отвечаю за разработку веб дизайн-системы и веб-компонентов вместе с командой разработчиков и маркетологов. В этой статье расскажу о том, как с помощью А/B тестов и изменения некоторых деталей на веб-сайте нам удалось увеличить конверсию как минимум в 5 раз. Статья будет полезна, если вы планируете внедрить изменения в свою веб-систему и протестировать гипотезы по увеличению конверсии.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

DartUP 2021: как это было

Время на прочтение2 мин
Количество просмотров2.5K

В этом году DartUP уже во второй раз прошел в онлайне, и это было круто! Мы снова слушали два потока докладов на русском и английском, неформально общались и участвовали в дискуссиях в SpatialChat, сражались и решали алгоритмические задачи в Code Kombat и обгоняли соперников в Wrike for Speed. В этой статье подводим итоги конференции и делимся видеозаписями всех докладов.

Читать далее
Всего голосов 11: ↑10 и ↓1+10
Комментарии3

Очереди в консульство, нервы и тоска по сыркам: как происходит релокация в новой реальности

Время на прочтение10 мин
Количество просмотров12K


Переезд в другую страну требует определённой решимости, чай не за чаем сходить! Но когда на столь длинном пути стоит пандемия, очереди в консульство и мировая неопределенность, это одинаково тяжело и для людей, и для компаний. В статье я расскажу о взгляде с другой стороны: как мы перевозили сотрудников, прорывались через ковидные кордоны, открывали еще один офис в Европе и теряли розовые очки. И про то, сколько это стоит.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+21
Комментарии13

DevOps Cookbook: как построить процессы с нуля

Время на прочтение7 мин
Количество просмотров16K

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

Читать далее
Всего голосов 21: ↑20 и ↓1+21
Комментарии13
1
23 ...