• Как правильно конвертировать внешнюю связь в аттрибут модели при получении?

    filnor
    @filnor Автор вопроса
    Хм... а как это применить конкретно к моему примеру? С кастами до этого сталкивался только на примере конвертации created_at, updated_at в instance Carbon.

    У меня есть порядка 20 опций и иногда еще появляются новые. Т.е какого-то готового списка нету.
    Не совсем понимаю, логику того что должно быть в самом касте прописано
  • Как релизить фичи сразу в две ветки?

    filnor
    @filnor Автор вопроса
    Василий Банников, Сегодня проверил cherry-pick на небольшой фиче - это действительно временное решение, которое упростит работу.
    А дальше нужно думать о том, как организовать архитектуру проекта, чтобы это все более удобно релизить.
    Спасибо за ответ
  • Как релизить фичи сразу в две ветки?

    filnor
    @filnor Автор вопроса
    Дмитрий, Это сложновато сделать в условиях того что проект монолитный, а разница в под-проектах не только во фронте, но и в беке.
    Если бы бек был идентичный, то проблем бы не было :(

    В любом случае, за cherry-pick, спасибо, проверил сегодня уже на рабочем проекте - это действительно временное решение. Буду дальше думать над архитектурой, как это можно будет сделать правильней.

    Если оформите отдельным ответом, отмечу решением.
  • Как релизить фичи сразу в две ветки?

    filnor
    @filnor Автор вопроса
    Дмитрий, Честно, первый раз прочитал за эту команду. Попробовал на тестовом проекте, выглядит на самом как неплохое, но временное решение проблемы.

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

    Спасибо за наводку с командой
  • Как релизить фичи сразу в две ветки?

    filnor
    @filnor Автор вопроса
    Тут возможно я не совсем правильно назвал это на схеме.
    То что я обозначил как два экземпляра - это не совсем так. Это отдельная версия проекта, которая имеет свою логику + какую-то часть логики которую проект унаследовал со своего оригинала и которая все еще продолжает обновляться.
    Их не будет больше 2, по крайней мере в ближайшей перспективе.

    Если бы это было два идентичных проекта - проблем не было.
    Но фишка как раз в том что есть некая shared логика, которая пишется параллельно с двумя клиентами.

    Скорее всего придется смотреть в сторону выделения этой общей логики в отдельный пакет, который патчами ставить на разные версии проекта
  • Как сделать фильтр плохих слов?

    Сергей delphinpro, Буквально недавно видел видео от разработчиков твича, где они рассказывали как после добавления слова в спам/мат фильтр генерируется несколько миллионов версий записи где символы заменяются на его вариации с разных языков и кодировок.
    Не могу найти видео/твит к сожалению
  • На чем пишут тесты на проектах Node.js?

    filnor
    @filnor Автор вопроса
    Для меня самое специфичное что для тестирования апи нужно работать с имитацией запроса.
    Подготовили данные, записали в базу, вызвали метод, получили результат.
    Все вот эти supertest, для меня в новинку.

    Предупреждение, если не забуду завтра на работе заскриню и вышлю сюда.

    Спасибо за ответ!
  • На чем пишут тесты на проектах Node.js?

    filnor
    @filnor Автор вопроса
    Я это прекрасно понимаю.
    Немного отпугнуло то, что почти нету информации про тестирование ноды именно в связке с Jest.
    Все используют или chai/mocha или другие аналоги. А мне прямо больно их синтаксис использовать после удобного jest.

    Спасибо за ответ!
  • На чем пишут тесты на проектах Node.js?

    filnor
    @filnor Автор вопроса
    Да, это обычные юнит тесты. Хочу покрыть АПИ, чтобы быть уверенным что ничего не сломается в самый неподходящий момент.
    Проект быстро растёт, и сейчас то что оно все работает держится на том что два разработчика знают проект от а до я.

    Сейчас будем подключать в команду новых — которые этого всего не знают. По этому нужны тесты)
  • Как правильно хостить и проигрывать видео в 2020?

    filnor
    @filnor Автор вопроса
    ValdikSS, Спасибо за такой развернутый ответ!

    Немного прокомментирую:
    1) Одна из причин, чего рассматривали HLS/DASH - это поддержка разного качества видео, поддержка нескольких аудиодорожек и поддержка сабов.
    Тот же флоуплеер умеет работать с такими задачами только через m3u8 плейлисты.
    2) Не заглядывал. Проверю.
    3) За плеер спасибо, выгляит интересно - попробую завтра его потестить.
    4) Тут вся суть в лицензионном контенте - правообладатели требуют чтобы файлы были хоть как-то защищены. Несоблюдение правил лицензии грозит штрафами нашему заказчику. И даже с учетом того, что это фестивальное кино, суммы там достаточно неприятные.
    Понятное дело, что спиратить можно что угодно при желании и никакая защита не поможет, но условия такие есть и не выполнять мы их не можем ¯\_( ツ)_/¯
  • Как правильно хостить и проигрывать видео в 2020?

    filnor
    @filnor Автор вопроса
    xmoonlight, хм... я туплю под вечер)
    Я полез сразу на их основной сайт читать что это за штука.
    Теперь почитал на гитхабе, выглядит интересно - нужно будет попробовать. Ищу сейчас в документации инструкции как это все дело правильно развернуть у себя можно.

    Вы уже юзали такую штуку в проде? Могут быть какие-то подводные камни?
  • Как правильно хостить и проигрывать видео в 2020?

    filnor
    @filnor Автор вопроса
    Спасибо за ответ.

    Пока думаю, что была проблем с форматом. Мы на все устройства вначале отдавали только HLS (m3u8 плейлисты), что априори уже создает проблемы с совместимостью.
    Попробуем, добавить еще DASH\webm и отдавать свой вариант, в зависимости от платформы.

    Касательно RTMP, разве он используется не только для того, чтобы разбивать стрим под HLS\DASH? Если я не ошибаюсь, если у нас уже есть предварительно разбитые видео, то отдача материалов в этом случае ничем не отличается от отдачи любой другой статики.
  • Как правильно хостить и проигрывать видео в 2020?

    filnor
    @filnor Автор вопроса
    Спасибо за ответ.
    По поводу пункта проигрывать, всю эту информацию видел. Про Shaka Player как раз узнал из их же серии роликов про Building a Media Player.
    Возможно кому-то еще будет полезна ссылка, 23 человека уже на тему подписались)

    Касательно хостить, вариантов со внешними сервисами было много - все упирается в вопросы бюджета. Те проекты, которые мы делаем, не могут выделить бюджет в 2000-3000$ только на стриминговый хостинг.
    Нам сервер по бюджету обошелся в ~75EUR, при том что мы передали почти 80ТБ трафика за неделю.

    К примеру на амазоновском claudfront такой объем обошелся бы уже в ~700$. Почти в 10 раз дороже.
    Аналогичные сервисы, заточенные именно на отдачу видео в срезнем имеют примерно такой же прайс
    На сервисе который вы предлагаете, такой объем трафика обошелся уже бы в 1250$ (Смотрел на примере VPaaS)
    Другими словами, действительно можно было бы воспользоватся, если бы не цены)
  • Как прафильно сформировать инфраструктуру для проекта с онлайн просмотров фильмов?

    filnor
    @filnor Автор вопроса
    Иван Шумов, В целом, сейчас получилось достаточно неплохое решение на основе эпловского HLS.

    Пока полет нормальный, выдерживает около 10к уников в день с примерно 1.5ТБ трафика за сутки.
    По расходам пока справляется flowplayer как клиентское решение + сервак за 75 баксов, с безлимом по трафику по стране.

    Ответа в приделах форума, я действительно так и не нашел - но, в целом тем что получилось доволен. Даже написание подобного поста немного структурирует мысли и наводит на то, где можно поискать решение)
  • Как ускорить поиск в проекте на Laravel?

    filnor
    @filnor Автор вопроса
    Я переписал полностью метод поиска и результаты начали приходить за нормальное время 1.5-2 секунды. Судя по всему была проблема в логике, а не в связях в базе.

    А касательно LIKE, в чем с ним проблема? Ниже приводу пример кода, как он выглядит сейчас. Если его можно еще как-то улучшить, буду благодарен за совет.

    5e4aa4b55ff09149371285.png
  • Как правильно построить запрос в MongoDB?

    filnor
    @filnor Автор вопроса
    Вроде получилось, то что нужно:
    db.getCollection('field_group').aggregate([
    {
        $project: {
            "_id": {
                "$toString": "$_id"
            },
            "title": 1,
            "order": 1
        }
    },
    {
        $lookup: {
            from: 'field',
            localField: '_id',
            foreignField: 'fieldGroupId',
            as: 'fields'
        }
    }
    ])


    Правда, не хотело искать напрямую по _id нашел вот такое решение через $project и стрингификацию. Насколько такое решение ок?

    В любом случае, спасибо за наводку!
  • Как правильно темизировать React компоненты?

    filnor
    @filnor Автор вопроса
    CSS переменные мы и так используем.
    Вопрос в том, как сделать разную разметку для тем.
    Тут работа чуть более сложная, чем прокинуть просто цвета :(
  • Как правильно темизировать React компоненты?

    filnor
    @filnor Автор вопроса
    Styled Components не помогут с подключением по сути другого компонента с разметкой.
    Потому что она очень существенно меняется от темы к теме...
    А плодить весь этот код в файлах с теперешними компонентами, проверяя какими-то условиями выглядит как костыль...

    Или я чего-то не знаю о Styled Components?
  • Как правильно локализировать react приложение используя react-router 4 и react-intl?

    filnor
    @filnor Автор вопроса
    Антон Спирин, Помогла переразбивка компонента. После того как разбил один большой компонент с роутером, интлом и настройкой локализации на три маленьких - все заработало)
  • Как правильно локализировать react приложение используя react-router 4 и react-intl?

    filnor
    @filnor Автор вопроса
    Нашел этот же вариант - борюсь с багом что при первой загрузке не рендерится основной компонент.
    Сейчас захожу на localhost:3000 меня перенаправляет на localhost:3000/en как и задумано (в url это отображается), но сам компонент при этом не перерендеривается...
    5bdf478584757225562786.png
    В чем может быть дело?