# Нефункциональные требования Хранение кода всех разрабатываемых приложений происходит в GitLab заказчика. Используемые библиотеки, фреймворки и т.п. должны находиться либо в открытом доступе, например на github.com, либо на сервере GitLab заказчика. Также подрядчик следит за соблюдением лицензионной чистоты использумого кода. ## iOS-приложение Язык программирования: Swift Совместимость: iOS 14 и выше Язык интерфейса: русский ## Android-приложение Язык программирования: Kotlin Совместимость: Android 8 и выше Язык интерфейса: русский ## Frontend Язык программирования и фреймворк: TypeScript, React Совместимость: Google Chrome 100+, Mozilla Firefox 100+, Safari 14+, Microsoft Edge 100+ Язык интерфейса: русский Дополнительные требования: SSR (server-side rendering) с запуском его на платформе kubernetes Google Pagespeed должен выдавать показатели не ниже 90 для сайта ## Backend Все приложения разворачиваются в кластерах kubernetes, находящихся в разных ЦОДах. Сами кластера являются независимыми. Базы данных разворачиваются вне kubernetes и реплицируются между ЦОДами. Приложение должно соблюдать следующие принципы: 1. конфигурация приложения производится через переменные окружения; 2. приложнение не должно осуществлять записи файлов на диск; для хранения файлов должно использоваться S3-совместимое хранилище через API; 3. логи приложения пишутся в /std/out и /std/err; 4. отправка технических и бизнес-метрик в prometheus; 5. размер образа контейнера приложения не должен превышать 512 Мб; 6. запуск контейнера должен быть не дольше 60 сек; 7. в приложении должны быть реализованы эндпоинты для liveness, readiness и startup probes; 8. приложение должно быть инструментировано для сбора APM-метрик (Elastic APM); Технологический стек для backend-приложений: PHP (Symfony), Go и Node.js (только для SSR). ### Мобильный и web API - 1000 rps по 95 персентили - 300 ms максимальное время ответа, среднее 150ms ### PHP Версия PHP: 8.1+ Версия Symfony: 5.4 LTS Стиль кодирования: PSR-1 и PSR-12 ### Go Версия Go: 1.18+