Меня зовут Алекс Поуп, и я рад приветствовать вас в инженерном блоге Delve! Как главный инженер в команде Delve, я видел, как Delve превратилась из нескольких основных идей и прототипа приложения Windows 8 в ключевую веб-рабочую нагрузку Office 365, несколько нативных приложений и многое другое. Это было захватывающее путешествие за последние три года, и мы многому научились. Мы надеемся, что эта серия блогов предоставит интересную информацию о том, как мы разрабатываем основную рабочую нагрузку Office 365. И, возможно, вы сможете изучить и повторно использовать наши методы!

Подождите, что такое Delve?

Анонсированный чуть более двух лет назад, Delve теперь является основным профилем и местом назначения для Office 365. Delve помогает контекстуализировать, находить и обновлять контент Office 365 о человеке. В настоящее время Delve выпускается в трех вариантах: веб-приложение и мобильные приложения для iOS и Android. Мы также вносим последние штрихи в универсальное приложение для Windows 10… скоро оно появится!

Кто такая Delve Engineering?

Инженеры Delve в основном работают из офиса в Осло, Норвегия, который часто называют Microsoft Development Center Norway или сокращенно MDCN. Мы являемся частью организации FAST, которую Microsoft приобрела около 8 лет назад. Помимо Delve, вся организация FAST предоставляет Office Graph, инфраструктуру поиска для SharePoint и Exchange и многие возможности поиска в SharePoint.

Сама команда Delve состоит из трех основных групп: Delve Web, Delve Middle Tier и Delve Apps. По мере продолжения этой серии блогов вы услышите отзывы инженеров из всех трех групп. Delve и FAST привлекают таланты со всей Европы и за ее пределами и, конечно же, многих норвежцев. Лично я американский трансплантолог, переехавший в Норвегию чуть более трех лет назад. До FAST я работал в главном кампусе Microsoft в Редмонде, штат Вашингтон (но я жил в Сиэтле!).

Путешествие Delve Web в свет

Когда мы впервые запустили веб-приложение Delve более двух лет назад, мы сделали ставку на технологии Microsoft, в первую очередь из-за взаимодействия с другими веб-приложениями Office 365. Двумя основными технологиями были Script #, который представляет собой C #, скомпилированный в JavaScript… вспомните GWT. Другой был JsMVVM, который представляет собой полную реализацию MVVM, разработанную командой Outlook Web App, которая будет очень удобна для тех, кто привык к XAML, Angular или любой другой платформе MVVM / MVC / двусторонней привязки.

Хотя эти технологии позволили нам быстро приступить к работе с помощью наших партнерских групп по Office 365, мы обнаружили несколько недостатков, которые быстро устранялись сообществом разработчиков открытого исходного кода. У нас были инструменты, которые не поддерживали такие функции сообщества, как горячая перезагрузка (3 минуты компиляции для изменения CSS!), Низкая производительность DOM и неоптимальный опыт «нового разработчика» из-за незнакомых инструментов, отсутствие переполнения стека, и т. д. Мы также не так часто попадали в «Яму успеха», как хотелось бы. Короче говоря, мы обнаружили, что по мере роста нашего приложения мы не предоставляли функции так быстро, как хотелось бы, при той планке качества, которую требуют наши клиенты.

В январе прошлого года у нас был хакатон, на котором два других инженера и я сделали прототип включения React в наше устаревшее приложение JsMVVM. Это был довольно большой успех по ряду причин, и этот импульс усилился, и Delve Web полностью перешел на React + Flux + TypeScript + Webpack + и т. Д. приложение. Delve Web теперь полностью построен на базе технологий с открытым исходным кодом, и мы получаем огромные преимущества. Наше качество повысилось, время разработки сократилось, мы используем лучшие в своем классе инструменты, и наши разработчики очень довольны. Мы извлекаем уроки из Delve Web и применяем их в кодовой базе Delve. И мы хотим поделиться этими знаниями со всем миром!

Что будет

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

Наше первое глубокое погружение - это Якоб, описывающий, как Delve Web побуждает инженеров попасть в яму успеха CSS.