Обзор

Будучи одним из самых популярных в мире приложений для общения голосом через Интернет (VoIP) и обмена мгновенными сообщениями, Skype завоевал свое место практически на каждом персональном компьютере. Приложение постоянно совершенствуется с помощью дополнительных функций, от видеочатов до конференц-связи, что делает его первопроходцем в онлайн-телекоммуникациях.

Плагин Click-to-Call для звонка в Skype впервые применил технологию распознавания телефонных номеров на веб-страницах. Он подсвечивает телефонные номера на странице, что позволяет вам добавить их в список контактов или позвонить по Skype одним щелчком мыши.

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

Client:
Skype
Industry:
Telecommunications
Services:
Modernization, Refactoring

Задача

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

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

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

Решение

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

Softage разработала два основных кроссплатформенных модуля:

  • Библиотека, позволяющая программе распознавать телефонные номера, написанные в разных форматах
  • База плагинов, содержащая логику для поиска и выделения телефонных номеров на странице

Используя эти модули в качестве основы, мы создали версии плагинов для браузеров для Chrome, Firefox, Internet Explorer и Safari.

Наша выделенная команда разработчиков работала автономно, поддерживая коммуникацию с клиентом для получения обратной связи и дальнейших запросов на изменение. Мы использовали несколько типов тестов (интеграционные, регрессионные, тестирование производительности) и инструменты (TestCoccoon, Selenium) для автоматического обнаружения и устранения проблем перед передачей кода.

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

Разработчики Softage выбрали C ++ в качестве языка программирования, облегчая интеграцию с низкоуровневыми API большинства браузеров, а для остальных используя JavaScript. Мы также использовали Microsoft Visual Studio в качестве нашей интегрированной среды разработки для Windows и Xcode для macOS.

В конечном итоге, Softage значительно улучшил скорость, стабильность работы и совместимость плагина.

Результаты

Наша работа над утилитой Click-to-Call для Skype превратила многообещающий, но недоработанный продукт в цельный и широко используемый по всему миру инструмент. Его удобство, быстродействие и доступность привлекли широкую пользовательскую базу, увеличивая размер прибыли клиента. Skype Click-to-Call, активно используемый до октября 2016 года, остается выдающейся вехой в разработке плагинов для браузеров.

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

Технологический стек:

Языки программирования C++, JavaScript
Фреймворки Boost C++ libraries
Операционные системы MS Windows, macOS