Автор оригинала: Kevin Hansen.
Наша телематическая технология помогает нам обрабатывать миллионы автомобильных поездок в неделю, взяв необработанные входные данные от датчиков на черных устройствах, так и на мобильных телефонах.
Эта задача будет создавать упрощенную версию одного из наших компонентов для обработки основных поездок и повышения их дополнительной информации, такой как средние скорости и общее расстояние.
Ваша задача – написать Прототип Node.js Приложение с помощью Typeycript С помощью следующих особенностей:
- Получите поток новых «TRIPS» (прилагается схема), готовая к обработке. а. Вы можете реализовать любой механизм, который вы хотите получать новые поездки в пределах вашей основной заявки, включая конечные точки отдыха, паб/суб, брокеры сообщений, локальные
Setinterval
публиковать в поток или другое решение. - Процесс поездки в «расширенную поездку» (прилагается схема) а. Вы можете использовать любой тип программирования IDIOM или библиотеки, которую вы предпочитаете создать расширенную поездку. б. Усиленная поездка – это просто поездка со средней скоростью и общим расстоянием. В реальном применении было бы много других расчетов интересов.
- Вытесните расширенную поездку в пункт назначения. а. Конец назначения не нужно существовать, например, его можно настроить как «localhost: 9999/Enhanced-Trips».
Эта задача целенаправленно абстрактна, чтобы вы думали об всей обработке данных данных от ввода к обработке и выходу с использованием Node.js и Teadercript.
Возможно, вы хотите использовать безсетесовый подход и рамки. Пожалуйста, укажите любые соответствующие журналы, комментарии, тесты и документацию, которые будут полезны в нашей оценке.
Код не нужно развернуть в любой облачной среде для оценки.
Оценка
Оценка задачи будет основана почти полностью на качестве произведенного кода.
Мы не будем судить код на основе индивидуальных технологий или используемых библиотек. Однако мы будем судить на основе того, работает ли приложение трубопровода с конца до конца и может быть понято и адаптировано для реального использования в мире.
Завершение
Мы не ожидаем, что этот вызов займет более одного дня для завершения. Если вы обнаружите, что вам нужно больше одного дня для завершения этой задачи, вы должны закончить задачу и отправить то, что у вас есть для оценки.
Схемы
interface IDataPoint { timestamp: string // ISO-8601 timestamp location: { latitude: number longitude: number } speed: number // metres per second } interface ITrip { id: string // random, unique ID dataPoints: IDataPoint[] // each trip must have at least 1000 data points } interface IEnhancedTrip extends ITrip { averageSpeed: number // meters per second totalDistance: number // meters }