Как стать автором
Обновить
54.48
Arcadia
Заказная разработка, IT-консалтинг
Сначала показывать

End-to-end, приди и порядок наведи

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

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

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

История борьбы за качество :)
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 4

Компилятор бизнес-правил на основе деревьев выражений

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

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

К коду
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 9

Исключения среди исключений в .NET

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

В свое время я случайно узнал, что исключения в моём горячо любимом языке C# — и, как следствие, во всем .NET — не все ведут себя одинаково. Причём, что ещё гораздо интереснее, далеко не все и не всегда могут быть обработаны и перехвачены. Что, казалось бы, полностью противоречит интуитивному восприятию конструкции try-catch-finally

Изучая этот вопрос, я находил всё новые и новые исключения среди исключений, которые оказывались «сильнее», чем конструкция try-catch-finally. К тому моменту, когда мой список вырос до 7 пунктов, я внезапно осознал, что нигде не было такого места, где можно было бы найти их все сразу. Максимум — 2 или 3 случая, рассмотренных в одной статье. 

Это и подтолкнуло меня к написанию данной статьи. 

Читать далее
Всего голосов 84: ↑83 и ↓1 +82
Комментарии 19

Доступный дизайн компонентов на примерах. Дизайнеру про ARIA-атрибуты, порядок фокуса и другое

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

В статье я расскажу о том, как разрабатывать дизайн доступных (т. е. отвечающих требованиям доступности) компонентов, об основных руководствах по доступности и о ключевых моментах, на которые стоит обратить внимание, а именно: о порядке фокуса, о клавиатурном взаимодействии и об ARIA-атрибутах.

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

Разработка системы тестирования SQL-запросов. Часть 2

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

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

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

Техники обработки отказов сервиса в микросервисных архитектурах, или Альтернативы Circuit Breaker

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

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

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

Шпаргалка для разработчика: создаём безопасное веб-приложение

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

Эта статья — своего рода ‘cheat sheet’ для веб-разработчика. Она даёт представление о «программе-минимум» для создания веб-приложения, защищённого от самых распространённых угроз.

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

Как UX/UI-дизайнеру не потеряться в тысяче макетов в Figma: новый инструмент контроля версий

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

Знакома история, когда забыл сохранить предыдущую версию рабочего макета — и считай её и вовсе не было? Система контроля версий поможет избежать подобных ситуаций. Я работаю UX/UI-дизайнером в крупном проекте, где создание интерфейсов и разработка идут одновременно. В таких проектах важно держать все изменения версий макетов не только в голове, но и в самом рабочем файле, чтобы вконец не запутать команду разработчиков.

В этой статье я расскажу о плюсах и минусах инструментов контроля версий, с которыми мне приходилось сталкиваться в работе: подход семантического версионирования; история версий в Figma и новый (пока в бета-версии) инструмент в Figma — Branching («ветвление»).

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

Создаём по-настоящему надёжные плагины на платформе Managed Add-In Framework

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

Однажды мы поняли, что для качественной и быстрой реализации разносторонних требований пользователей нам срочно нужны плагины. Изучив разнообразие имеющихся платформ для их создания, мы выяснили, что наилучшим образом нам подойдет Managed Add-In Framework от Microsoft, потому что, во-первых, она позволяет создавать плагины на базе .NET Framework, во-вторых, даёт возможность обмена данными и пользовательским интерфейсом между плагином и приложением-хостом, и в-третьих, обеспечивает безопасность и версионность, что делает плагины надёжными.

Жизнь показала, что мы были правы — плагины работают, пользователи довольны, заказчик счастлив. Правда, у Managed Add-In Framework есть ещё одна проблема — недостаточное количество информации. Всё, что мы нашли — это скудная документация да несколько постов на StackOverflow. Но этот пробел я частично заполню, описав, как мы преодолевали те препоны, с которым столкнулись. Эта статья будет полезна в качестве быстрого старта для тех, кто тоже решит освоить MAF для создания плагинов на базе .NET Framework.

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

RBAC в Angular-приложениях

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

«Каждый уважающий себя блогер должен написать статью о RBAC. Каждый уважающий себя читатель должен написать в комментарии, что всё равно ничего не понял». С этой фразы началось мое знакомство с RBAC. И я имел прекрасную возможность узнать, что всё так и есть.

Но теперь я разобрался с тем, что RBAC такое, и готов рассказать вам. Более того, я создал на основе RBAC собственный продукт, позволяющий использовать RBAC-паттерн в Angular-приложениях. Но обо всём по порядку.

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

Стратегия тестирования краткосрочного проекта

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

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

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

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

Фильтры действий, или Как просто улучшить читаемость кода

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


Введение


В свободное от работы время я, как и многие другие разработчики, занимаюсь созданием своих приложений, чтобы опробовать самые последние технологии, создать что-то полезное для повседневного использования или просто открыть для себя что-то новое. Одним из таких проектов было веб-приложение, которое обрабатывало данные, введённые пользователем, и планировало выполнение задач, основанных на введённых данных. Так как личные проекты не ограничены во времени, то мне хотелось по возможности избавить проект от всех раздражающих моментов. И одним из таких моментов были повторяющиеся строчки кода в методах контроллера. Я начал искать решение этой проблемы и наткнулся на фильтры. Идея использования фильтров для поддержания чистоты кода показалась мне не только интересной и эффективной, но в то же время простой, поэтому я решил поделиться этой информацией с вами.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 3

В начале был “workflow”

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

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

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

Эволюция процесса релиза LMS

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


К чему вы стремитесь в работе? Мной всегда двигало желание быть причастным к чему-то, что действительно помогает людям решать важные задачи. Это стремление привело меня в проект онлайн-системы дистанционного обучения (Learning Management System, сокращённо LMS).

В силу масштаба, разработчикам часто приходится задумываться об аспектах, которые не вызывают трудностей в разработке небольших систем. Недавно мы писали о тонкостях тестирования LMS, а в этой статье я расскажу о том, как мы прошли долгий путь от редких, достаточно рискованных и весьма затратных релизов до частых и более предсказуемых.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Про хороший и плохой дизайн для недизайнеров

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

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

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

Делаем свой телеканал

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


Вы, возможно, удивитесь, но телевидение всё ещё живо. Да, аудитория поредела и «состарилась», а технологии приумножились и помолодели (IPTV, SmartTV, различные приставки), но всё-таки жизнь есть не только в YouTube и TikTok. Мало того, сейчас сделать свой телеканал можно при достаточно небольших инвестициях времени и финансов. В 2017 году мой брат (Ruler-ufa) попросил меня о помощи с технической реализацией нового музыкального телеканала на башкирском и татарском языках. О том, что у нас получилось, и пойдёт речь в этой статье. Сразу оговорюсь, что нюансов подбора контента, оформления эфира и подобных тем здесь не будет, т.к. я занимался исключительно технической частью. Кроме того, задача была сделать все максимально просто и дёшево, т.к. бюджет был ограничен, поэтому некоторые вещи можно было сделать по-другому — правильнее, но гораздо дороже.
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 15

Студенческие IT стажировки — как мы стараемся делать их наиболее эффективными

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

Привет! Меня зовут Денис Александров, и помимо работы в качестве Android-разработчика, я уже более семи лет готовлю стажеров в разных компаниях и занимаюсь студенческими практиками. Мне приходилось и работать с перспективными студентами персонально, и проводить групповые стажировки с отсевом. Я собрал самые важные и полезные тонкости проведения стажировок для студентов, благодаря которым мы делаем наши стажировки максимально полезными и эффективными для всех ее участников. 

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

Маленькие тайны тестирования большой LMS

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


Редко получается найти проект, в который влюбляешься еще на собеседовании и которым гордишься, когда он завоевывает новые рынки. Тем более приятно, когда профессионализм коллег на высоте, а в своей команде чувствуешь себя как в кругу семьи. Мне повезло не только найти такой проект, но и некоторое время назад начать влиять на процесс тестирования в нём. Я расскажу, что входит в наше понимание оптимального процесса; как мы пришли к ежемесячным релизам и как они у нас работают; а также о том, как мы приспособились к условиям карантина.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Эволюция конфигурации .NET

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


Каждый программист представлял — ну или может хочет представить — себя пилотом самолета, когда у тебя есть огромный проект, к нему огромная панель датчиков, метрик и переключателей, с помощью которых можно легко настроить всё как надо. Ну, по крайней мере, не бежать самому поднимать шасси вручную. И метрики, и графики — это всё хорошо, но сегодня хочу рассказать про те самые тумблерочки и кнопочки, которые могут менять параметры поведения самолета, конфигурировать его.
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 23

Применение CQRS & Event Sourcing в создании платформы для проведения онлайн-аукционов

Время на прочтение 10 мин
Количество просмотров 5.6K
Коллеги, добрый день! Меня зовут Миша, я работаю программистом.

В настоящей статье я хочу рассказать о том, как наша команда решила применить подход CQRS & Event Sourcing в проекте, представляющем собой площадку для проведения онлайн-аукционов. А также о том, что из этого получилось, какие из нашего опыта можно сделать выводы и на какие грабли важно не наступить тем, кто отправится путем CQRS & ES.
image

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

Информация

Сайт
arcadia.spb.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Дмитрий Адов