Golos.io: Отчет по разработке за январь 2019
Друзья, представляем отчет по разработке сайта golos.io за январь 2019.
Мы добавили новый функционал, занимались доработкой редизайна, сделали много улучшений и обновлений в сервисах, работали над багами.
1. Новый функционал
- Реализовали возможность получать вознаграждение от делегирования Силы Голоса, и сделали отображение награды за использование делегированной Силы Голоса, в кошельке пользователя.
- Добавили в настройки возможность выбора перенаправления наград в штрафном окне публикации: обратно в общий поток наград или распределить между кураторами.
- Сделали в профиле пользователя отображение, когда он заходил на golos.io последний раз (или «online», если он находится на сайте).
- Добавили в редактор возможность установить процент кураторской награды при создании поста. Изменить эту величину можно только до получения первого лайка, после – корректировка невозможна.
- Сделали новый сервис, который считает все просмотры поста: и от залогиненных пользователей, и от незарегистрированных.
2. Редизайн
- Добавили репутацию и статус пользователя (со всей градацией) в краткую информацию и во всплывающее окно, которое появляется при нажатии на аватар.
- В профилях пользователей, которые являются делегатами, сделали отметку об этом и кнопку голосования.
- Обновили страницу топа делегатов. Теперь там можно посмотреть, какие параметры указали делегаты.
- Сделали сортировку проголосовавших за пост по Силе лайка от большего к меньшему.
- Добавили меню для смены языка интерфейса в шапку сайта.
- Разделили количество постов и комментариев в профиле пользователя.
- Исправили год в футере сайта.
3. Мобильная версия сайта
- Вернули возможность постинга через браузер на мобильных устройствах.
- Добавили локализацию для попапа на странице создания поста.
4. Backend
Ядро
- Улучшили систему логгирования. Добавили детализацию там, где это необходимо, убрали там, где ненужно, что в итоге облегчило отладку микросервисов на предмет ошибок.
- Усовершенствовали систему сбора метрик. Теперь, при необходимости, можно более точно определять, что пошло не так в режиме реального времени.
- Оптимизировали нейминг, некоторые дефолтные параметры и документацию.
- Добавили обработку ошибок в случае падения на необработанном промисе.
- Добавили новый тип вызовов других микросервисов, что упростило и ускорило разработку, а также полностью избавило от некоторых типов случайных ошибок.
- Добавили реестр метаданных, в котором теперь хранятся некоторые базовые характеристики микросервиса, что позволяет нам уменьшить количество неявных констант, а в итоге улучшает качество кода и скорость разработки.
Пуши
- Исправили ошибки в рассылке пушей на несколько устройств одновременно, в локалях при отправке уведомлений о наградах, ошибки удаления устаревших ключей подписок.
- Добавили возможность получать историю уведомлений на основе настроек отображения пушей, в том числе частично по указанным типам.
Мета
- Добавили механизм идентификации пользователя онлайн. Теперь эти данные сохраняются и можно видеть онлайн пользователь или нет.
Бендвич-провайдер
- Начали работу над микросервисом, который решит проблему передачи денег при регистрации пользователя. Мы сможем обеспечить транзакцию за счет своего собственного бендвича, и будет возможно пользоваться блокчейном даже при нулевом балансе. А при необходимости, мы можем лимитировать этот доступ.
Авторизация
- Сделали новый микросервис, который занимается исключительно авторизацией (ранее это делал гейт-сервис). Увеличили безопасность генерации авторизационных ключей, теперь они ещё более случайны.
Гейт-сервис
- Исключили авторизацию из кода, что решило проблему передеплоя микросервиса при добавления новых анонимных запросов. Этот микросервис должен перезагружаться как можно реже, так как он держит коннекты ко всем клиентам, даже в случае каких-либо ошибок в других микросервисах. Теперь кейсов, когда нам пришлось бы останавливать микросервис, стало ещё меньше.
Фасад
- Провели рефакторинг кода роутинга, так как из-за роста количества микросервисов качество кода пострадало, что могло приводить к ошибкам. Результатом стал более упорядоченный код, покрытый необходимыми метриками.
- В связи с изменением механизма авторизации фасад теперь сам проверяет на какие api можно пускать без авторизации, а на какие нет. Это уменьшает вероятные проблемы с несанкционированным доступом.
Смс
- Сделали новый микросервис для рассылки смс-сообщений. Ранее это была часть микросервиса авторизации, что раздувало его код. В результате у нас есть отдельный микросервис, который может использовать любой другой микросервис при необходимости.
Регистрация
- Исключили смс рассылку.
- Добавили логику, связанную с доступом тестирующих систем. Теперь при наличии пароля можно отключать проверку на капчу и иначе генерировать ключи проверки верификации, а также удалять тестовые аккаунты из базы микросервиса по имени пользователя.
- Протестировали микросервис автотестами.
Призма
- Провели большое количество работы, связанное с загрузками блоков, преодолениями ограничений базы данных, в которую не помещались некоторые блоки целиком, преодолением переполнения памяти микросервиса из-за слишком больших объемов в некоторых местах, оптимизацией индексов, которые не тянули некоторые необходимые запросы, отладкой и фиксами багов. В итоге у нас есть первая версия призмы под блокчейн Голос.
- Начали работу над версией, которая будет работать с новым блокчейном.
5. Работа над багами
issue 1751 – нерабочая ссылка на youtube в FAQ;
issue 1760 – к новой регистрации переписать FAQ;
issue 1765 – нет по умолчанию галочек в выбираемых столбцах;
issue 1766 – разъезжается верстка при не залогиненом пользователе на мобильном устройстве;
issue 1824 – «лента»: при клике на «Очистить теги» редиректит на несуществующую страницу;
issue 1826 – при голосовании 0% голосов возникает ошибка;
issue 1849 – профиль: лишний символ в строке рейтинга;
issue 1853 – не отображается рейтинг в виджете «О пользователе»;
issue 1856 – в виджете «О пользователе» у некоторых пользователей некорректно отображается рейтинг;
issue 1858 – не отображается значок настроек в мобильной версии сайта;
issue 1860 – некорректно отображается загрузка (мобильная версия);
issue 1861 – некорректное отображение выпадающего списка локалей в ленте (мобильная версия);
issue 1870 – некорректно работает страница «Вы покидаете Golos.io» в мобильной версии;
issue 1871 – редактор создания поста: после очистки полей не публикуется пост;
issue 1878 – ошибка в футере (мобильная версия);
issue 1885 – если после нажатия кнопки проголосовать закрыть окно с подтверждением, кнопка не активна;
issue 1886 – вкладки «Комментарии», «Ответы»: нет промежутка между карточками комментариев и ответов;
issue 1891 – некорректное отображение в мобильной версии;
issue 1892 – не показывается сообщение о возможности постить раз в 5 минут;
issue 1896 – большой пробел между шапкой сайта и текстом на странице «Вы покидаете Golos.io» (мобильная версия);
issue 1898 – часто появляется ошибка в консоли «Gate error»;
issue 1902 – неочевидное поведение настроек ссылки на соцсети в профиле;
issue 1904 – (нестабильно) некорректно отображаются уведомления;
issue 1905 – при нажатии на колькольчик в консоли появляется ошибка;
issue 1909 – некорректное отображение рейтинга при нулевом значении репутации;
issue 1915 – некорректно отображается краткая информация в браузерах на webkit;
issue 1917 – не приходят онлайн нотификации;
issue 1927 – Web Android невозможность проголосовать при появлении плашки выбора Силы Голоса;
issue 1940 – при открытии страницы в консоли отображаются ошибки;
issue 1954 – в мобильной версии растягиваются теги;
issue 1955 – в мобильной версии иконки просмотра поста и процента кураторских выплат некорректно отображаются;
issue 1961 – при попытке откомментировать пост появляется ошибка (testnet);
issue 1966 – некорректное отображение значков просмотра поста и процента кураторских выплат;
issue 1970 – починить создание поста.
С февраля мы планируем основную часть сил и времени уделять переезду Golos.io на новый блокчейн (Cyberway), поэтому работа непосредственно над сайтом (внедрение нового функционала) будет приостановлена.
Иллюстрация к посту – Yandex.
—
Подписывайтесь на официальный аккаунт блог-платформы Golos.io @golosio, чтобы быть в курсе развития проекта! Телеграм для ваших вопросов — https://t.me/golos_support.
Есть предложения, как сделать Golos.io лучше? Пишите в Issues на нашем Github, в наш Телеграм-канал или в чат разработчиков Golos.io в Телеграм!
—
С уважением, команда Golos.io @golosio: @azarod, @bacher, @b1acksun, @chinpu, @dan-kinescop, @des432, @devall, @format-x22, @insider, @ivan-blacky, @kucinskaya.alla, @machtfrei, @muhazokotuha, @msm72, @nickshtefan, @yulia.rodnikova, @yuri-vlad.