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

    • Tutorial

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

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

    Читать далее
  • RBAC в Angular-приложениях

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

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

      Читать далее
    • Стратегия тестирования краткосрочного проекта

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

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

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



          Введение


          В свободное от работы время я, как и многие другие разработчики, занимаюсь созданием своих приложений, чтобы опробовать самые последние технологии, создать что-то полезное для повседневного использования или просто открыть для себя что-то новое. Одним из таких проектов было веб-приложение, которое обрабатывало данные, введённые пользователем, и планировало выполнение задач, основанных на введённых данных. Так как личные проекты не ограничены во времени, то мне хотелось по возможности избавить проект от всех раздражающих моментов. И одним из таких моментов были повторяющиеся строчки кода в методах контроллера. Я начал искать решение этой проблемы и наткнулся на фильтры. Идея использования фильтров для поддержания чистоты кода показалась мне не только интересной и эффективной, но в то же время простой, поэтому я решил поделиться этой информацией с вами.
          Читать дальше →
        • В начале был “workflow”

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

            Читать далее
          • Эволюция процесса релиза LMS



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

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

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

                Читать далее
              • Делаем свой телеканал



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

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

                    Читать далее
                    • +10
                    • 3,6k
                    • 7
                  • Маленькие тайны тестирования большой LMS



                      Редко получается найти проект, в который влюбляешься еще на собеседовании и которым гордишься, когда он завоевывает новые рынки. Тем более приятно, когда профессионализм коллег на высоте, а в своей команде чувствуешь себя как в кругу семьи. Мне повезло не только найти такой проект, но и некоторое время назад начать влиять на процесс тестирования в нём. Я расскажу, что входит в наше понимание оптимального процесса; как мы пришли к ежемесячным релизам и как они у нас работают; а также о том, как мы приспособились к условиям карантина.
                      Читать дальше →
                    • Эволюция конфигурации .NET

                      • Tutorial


                      Каждый программист представлял — ну или может хочет представить — себя пилотом самолета, когда у тебя есть огромный проект, к нему огромная панель датчиков, метрик и переключателей, с помощью которых можно легко настроить всё как надо. Ну, по крайней мере, не бежать самому поднимать шасси вручную. И метрики, и графики — это всё хорошо, но сегодня хочу рассказать про те самые тумблерочки и кнопочки, которые могут менять параметры поведения самолета, конфигурировать его.
                      Читать дальше →
                    • Применение CQRS & Event Sourcing в создании платформы для проведения онлайн-аукционов

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

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

                        Читать дальше →
                      • OCR-конвейер для обработки документов

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



                          Первичным переводом документа в электронную форму является его сканирование или фотографирование, в результате которого получается графический файл в виде фотографии или скана. Однако такие файлы, особенно высокого разрешения, занимают много места на диске, и текст в них невозможно редактировать. В связи с этим, целесообразно извлекать текст из графических файлов, что успешно делается с применением OCR.
                          Читать дальше →
                        • Экспресс-курс создания масок для Instagram

                            Не так давно на одном из наших проектов накануне релиза появилось несколько свободных дней (потому что Apple review team не могла понять, что для тестирования приложения с функцией чата недостаточно одного телефона/аккаунта. Хинт: не ленитесь снимать поясняющие видео — проверено, помогает!).

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


                            Читать дальше →
                            • +11
                            • 4,1k
                            • 1
                          • Accessibility. Как сделать приложение доступным для пользователей с ограниченными возможностями


                              Обо мне


                              photo with me
                              Меня зовут Аня Ковтун, я UX/UI дизайнер и работаю в компании Arcadia с 2015 года. Помимо проектирования пользовательских интерфейсов, я общаюсь с заказчиками и занимаюсь составлением требований для команды разработчиков.


                              Предыстория


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


                              Что такое accessibility? А как пользователи с ограниченными возможностями взаимодействуют с вебом? Пользуются специальными приложениями? Или могут воспринимать тот же контент, что и мы? Кто заботится о них? Кто является ответственным за то, чтобы они могли полноценно воспринимать контент? Как можно сделать контент доступным? Это сложно? Можем ли мы помочь?


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

                              Читать дальше →
                            • Быстрый расчет формул из Excel на C#

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

                                Быстрый расчет формул из Excel на C#

                                Если вам необходимо выбрать производительную библиотеку для работы с Excel-файлами или вы ищете решение для расчета сложных финансовых (и не только) данных с удобным инструментом управления и визуализации формул из коробки, добро пожаловать под кат.
                                Читать дальше →
                              • CMI5, или Жизнь после SCORM



                                  В детстве я мечтала стать учителем. Детская мечта частично сбылась: мои взрослые рабочие будни проходят «в школе». И хотя я не учитель в реальном классе, а программист системы дистанционного обучения (СДО), цель у меня та же: сделать обучение доступным, а его процесс интересным. Правда, программисту для этого необходимо умение «жонглировать» не мелом и указкой, а стандартами дистанционного обучения. Я предлагаю совершить путешествие во времени на 20 лет назад, чтобы узнать, как эволюционировали стандарты дистанционного обучения и какие средства в арсенале программистов СДО есть сейчас.
                                  Поехали!
                                • V&V не значит вендетта



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

                                  Для приложений, которые оказывают или могут оказать прямое влияние на жизнь и здоровье пациентов, обязателен формальный процесс приёмочного тестирования. Результаты приёмочного тестирования вместе с остальным пакетом документации предоставляются для аудита в FDA (Food and Drug Administration, США). FDA выдаёт разрешение на использование приложения в качестве инструмента контроля и проведения клинических исследований. В общей сложности в моей команде разработано, протестировано и отправлено в продакшен более тридцати приложений. В данной статье я коротко расскажу о приёмочном тестировании и развитии инструментов в одной отдельно взятой маленькой группе.

                                  Note: я не претендую на истину в последней инстанции и прекрасно понимаю, что большая часть того, о чём я пишу, — монолог Капитана Очевидность. Но я надеюсь, что описанное окажется полезным и начальному уровню, и командам, которые сталкиваются с этим в повседневной работе, или хотя бы порадует тех, у кого процессы попроще.
                                  Читать дальше →
                                • Приглашаем на конференцию Azov Developers Meetup 2019 — 19 октября в Таганроге



                                    19 октября проводим в Таганроге пятую ежегодную конференцию Azov Developers Meetup. Приглашаем всех желающих, регистрация бесплатна!

                                    Начнем в 9 утра в конгресс-отеле «Таганрог» на ул. Дзержинского, 161 с традиционного приветственного кофе и регистрации. Как и в прошлые годы, будет 2 потока,
                                    В первом потоке — доклады по фронтенд, мобильной разработке, управлению, DevOps, QA и безопасности. Второй поток целиком состоит из трёх воркшопов: по профессиональному выгоранию, фасилитации и канбану.
                                    Читать дальше →
                                  • Тестируем SQL Server код с tSQLt

                                      FYI: эта статья представляет собой дополненную версию моего доклада на SQA Days #25.

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


                                      Читать дальше →
                                      • +16
                                      • 7,8k
                                      • 4

                                    Самое читаемое