= Аналитикс 2019 Эти работы предлагались и раньше, под соусом "закрытия", "консервации" или "предпродажной подготовки" Аналитикса. План работ подразумевает отсутствие новых фич, приведение существующих фич в нестыдный вид и опенсорс бОльшей части аналитикса (за исключением рассчётов, коллектора и фреймов) == Решаемые проблемы: - замедление разработки из-за - глупых ошибок (необходимость ручного прогона и заглядывания в лог на предмет cannot find property 'foo' of bar) - отсутствия тестов и инфраструктуры CI/CD - ручного редактирования в "ноутпаде" вместо IDE - морально устаревшей инфраструктуры (jQuery, Socketstream, Socket.io и т п) - неподдерживаемой инфраструктуры (jQuery, everyauth, jQuery Templates, Socketstream) - перфоманс - медленные клиентские чарты - хрупкость кода - инкрементальные рассчёты - коллектор падает целиком при отказах бирж - поломки при обновлении системного ПО - старый JS до yield и await - наколенные постоянно ломающиеся самоделки - персистенс - канал между коллектором и бэкендом - проблемы UI - самодельная модель - устаревшие и некрасивые виджеты jQuery UI == Предлагаемые технические решения - новый кол на !TypeScript и C# (глупые ошибки) - Azure Pipelines (CI) - VS2019+ (ручное редактирование) - meteor, React, RxJS (устаревшая и неподдерживаемая) - svg-charts (перфоманс) - ES2019 с даунгрейдом через !TypeScript по необходимости (старый JS) - Akka.net, Sentry.io и circuit breaker pattern для коллектора - Gearman и MQTT (вместо наколенных протоколов) - RxJS вместо моделей - React вместо ручного изменения DOM в jQuery (TSX поддерживается студией!) - leveldb для персистенса фрейма и qdb - react-компоненты вместо jQuery UI - LTS-версии ноды для увеличения стабильности - переход на CentOS 8 (когда он выйдет и появится поддержка в Студии) для увеличения стабильности == План работ Ввиду провала предыдущих попыток необходим "метаплан" - общие принципы, которые позволят двигаться минимальными шагами с деплоем результатов на продакшен после каждого шага. === Метаплан === Восстановление старой инфраструктуры Было утрачено: - стейджинг-сервер на bugdetvm - девелоперские мини-стейджинги vmng/vmnim. Они сначала перешли в стадию "редактирование/разработка прямо на стейджинге", а затем погнили вместе с продакшеном - "неубиваемый" сервер zorro на рекспейсе (сейчас он временно на vultr а на рекспейсе мы платим за неиспользуемый сервер и за DNS) - актуальные API бирж в коллекторе (сейчас часть отключена из-за тупых ошибок типа изменения формата данных, часть работает с ошибками) - нотификации от трака через псевдоаккаунт zorro-daemons@bitcoin-analytics.com - обратная связь с пользователями через форум bitcointalk и Discus - аналитика поведения пользователей со статистикой использования фич через google analytics - актуальные версии ОС и зависимостей - обстановка непрерывного ежедневного хуячения :) - вера в проект :) == Возведение новой инфраструктуры - CI/CD - более "живой" девелопмент в приватной репе гитхаба (PR/ревьювы/CI) - миниколлектор на дотнете, акке и гирмане - более устойчивый к ломающим обновлениям zorro на CentOS 7 x64 - перевод сорцов на TS - изоляция линукс-специфики с целью разработки на винде локально в Студии - построение проектов Студии - вынесение частей текущего кода в опенсорс - минимальный перевод коммуникаций и персистенса на gearman и leveldb - использование нового JS в новом коде, минимальное причёсывание ада в старом - мониторинг через sentry.io и реимплементацию RealtimeMonitor на гирмане