4.7 KiB
Требования к разработчику фреймворка FMP для ОС Аврора.
Краткое описание фреймворка.
Продукт представляет собой клиент-сервер систему. Сервер занимается агрегацией информации из различных источников. Клиенту (фреймворку) все данные предоставляются в едином формате. Помимо стандартизации формата данных, сервер также выполняет множество операций с данными: кэширование, расчёт дельты для ускоренной доставки данных клиентам, аутентификация и многое другое.
Сама идея фреймворка заключается в уменьшении трудозатрат на популярные задачи разработки. Разработчику не нужно решать вопрос аутентификации, работы с СУБД или облачным хранилищем файлов. Фреймворк целиком состоит из высокоабстрактных методов, таких как FMPUser.auth()
для аутентификации, FMPDatabase.query()
для запросов в локальную БД и многих других. Клиент посылает запросы на сервер через вышеупомянутые методы, сервер же возвращает ответ, который в последствии преобразуется в удобные для работы объектные модели.
План работ.
- Первоначально требуется разработка фреймворка (библиотеки для разработчиков) для ОС Аврора. Имеются реализации для Android и iOS. Реализация для Аврора потребуется по их примеру.
- Также потребуется автоматизация тестирования фреймворка.
- По завершению работы над фреймворком следует реализация Шаблонного приложения - демонстрация возможностей фреймворка в формате приложения для ОС Аврора.
- В долгосрочной перспективе следует поддержка фреймворка: добавление нового функционала и исправление ошибок. Также разработка иных приложений для ОС Аврора с использованием фреймворка.
Требования к разработчику.
- Опыт разработки для ОС Аврора (C++, QT).
- Обязателен опыт работы с СУБД, в частности SQLite.
- Понимание работы клиент-серверных систем. Общение с сервером через HTTP API.
- Опыт реализации шифрования данных: файлов и баз данных SQLite.
- К реализации представлены требования по безопасности и скорости работы. Потребуются оптимизации процессов обработки данных.
- Важна стабильность внешнего интерфейса фреймворка. Поэтому при разработке важно учитывать общую архитектуру, чтобы сохранять обратную совместимость.
- Понимание принципа работы Push-уведомлений на мобильных устройствах.
- Опыт написания автотестов и документации кода.
- Техническая поддержка: ответы на вопросы по фреймворку, изучение и решение возникших проблем (багов).
Пожелания.
- Опыт командной работы с Git-системами. Мы используем GitLab.
- Возможность работы с Docker позволит развернуть сервер локально, что может помочь при разработке.
- Понимание деталей работы HTTP. Фреймворк поддерживает различный связанный с HTTP функционал. Например, TLS-pinning.