wiki/work/fsight/archive/Aurorajob.md

4.7 KiB

Требования к разработчику фреймворка FMP для ОС Аврора.

Краткое описание фреймворка.

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

Сама идея фреймворка заключается в уменьшении трудозатрат на популярные задачи разработки. Разработчику не нужно решать вопрос аутентификации, работы с СУБД или облачным хранилищем файлов. Фреймворк целиком состоит из высокоабстрактных методов, таких как FMPUser.auth() для аутентификации, FMPDatabase.query() для запросов в локальную БД и многих других. Клиент посылает запросы на сервер через вышеупомянутые методы, сервер же возвращает ответ, который в последствии преобразуется в удобные для работы объектные модели.

План работ.

  1. Первоначально требуется разработка фреймворка (библиотеки для разработчиков) для ОС Аврора. Имеются реализации для Android и iOS. Реализация для Аврора потребуется по их примеру.
  2. Также потребуется автоматизация тестирования фреймворка.
  3. По завершению работы над фреймворком следует реализация Шаблонного приложения - демонстрация возможностей фреймворка в формате приложения для ОС Аврора.
  4. В долгосрочной перспективе следует поддержка фреймворка: добавление нового функционала и исправление ошибок. Также разработка иных приложений для ОС Аврора с использованием фреймворка.

Требования к разработчику.

  1. Опыт разработки для ОС Аврора (C++, QT).
  2. Обязателен опыт работы с СУБД, в частности SQLite.
  3. Понимание работы клиент-серверных систем. Общение с сервером через HTTP API.
  4. Опыт реализации шифрования данных: файлов и баз данных SQLite.
  5. К реализации представлены требования по безопасности и скорости работы. Потребуются оптимизации процессов обработки данных.
  6. Важна стабильность внешнего интерфейса фреймворка. Поэтому при разработке важно учитывать общую архитектуру, чтобы сохранять обратную совместимость.
  7. Понимание принципа работы Push-уведомлений на мобильных устройствах.
  8. Опыт написания автотестов и документации кода.
  9. Техническая поддержка: ответы на вопросы по фреймворку, изучение и решение возникших проблем (багов).

Пожелания.

  1. Опыт командной работы с Git-системами. Мы используем GitLab.
  2. Возможность работы с Docker позволит развернуть сервер локально, что может помочь при разработке.
  3. Понимание деталей работы HTTP. Фреймворк поддерживает различный связанный с HTTP функционал. Например, TLS-pinning.