13

Как стать программистом. Сервис доставки живых спортивных трансляций

Приветствую всех! Хочу рассказать о своем опыте входа в мир разработки, ну и промежуточном результате. Это мой первый пост в сообществе и целом на Пикабу.

Честно сказать, с детства восхищался айти, но в рамках кинематографа, тайно мечтая приблизиться к искомому.  День Х настал уже в сознательном возрасте 23-24, после сильнейшего кислотного трипа, приехав домой с четкой мыслью что буду ненавидеть себя до конца жизни, если не попробую , заказал книгу по C++  Страуструпа. Через не могу, прочел и прорешал это. Никому не рекомендую начинать с плюсов, это вас задемотивирует + большей вероятностью забьете. Но тогда опыта не было, первую работу тоже искал в качестве разработчика С++. Волшебным образом мне  повезло. Навешал лапши на уши о том что все могу,  и меня взяли на 20000р в мес с маленькую фирму, пилить их хотелки, попутно занимаясь полным спектром работ от погрузки/разгрузки/демонтажа конструкций до работы на подряде на местных заводах . Уволился через год-полтора и так получилось что обратил свое внимание на C#.

За 3-4 месяца так же прочел неск книг по шарпу, поверил в себя и пошел на собеседования(СПб). По истечению полугода так никуда и не взяли, от части из-за слабо прокачанных социальных скилов и неуверенности в себе. Бывали даже панические атаки прям на интервью)

В результате, конспектировал все что спрашивали, фоткал все тестовые задания, заполнял пробелы в знаниях.

Понял что нужен опыт разработки на .NET. Благодаря одному знакомому парню из нашей компании, определился. Он как-то пожаловался что любит смотреть спорт с мобилы, а все ресурсы либо на флеше, либо с кучей назойливой рекламы либо вообще нифига нет контента по выбранному событию.

Собственно, начался ресёрч и планирование примерно в апреле 2018 года, цель была сделать сервис который бы транслировал живые спортивные события, был прост и стабилен + работал на всех устройствах. Через 3 месяца от начала разработки скилы начали прокачиваться, голова наполнялась не серой теорией. Все это время я работал в техподдержке и в момент очередной ссоры с начальством,  разослал резюме десяткам фирм мне пришло интересное предложение. Т.к я уже имею опыт бесполезных поездок на себеседования, решил отправить им свое тестовое задание, которое делал для других. Десктопное мини приложение где для чтения и выгрузки огромного текстового файла использовалась многопотоночность и асинхронность + шаблон MVVM. В результате меня пригласили на встречу и в последствии взяли на работу. Это был успех) Зарплата выше чем в поддержке в 2 раза. Окрыленный я, чуть поздабив на домашний проект, влился в рабочие процессы, получил колоссальное кол-во опыта и к декабрю 2018 продолжил домашнюю разработку сервиса по спортивным трансляциям. Переделывал все раза 3-4 :-)

По итогу проект сейчас состоит из пяти микросервисов. Основополагающий это сервис синхронизации данных в БД от других микросервисов. WEB  API. Сделан на .NET Core, изучал и сразу применял шаблоны проектирования, такие как фабрика, синглтон, репозиторий(это подсмотрел в офисных проектах и в книгах  по шаблонам проектирования)

Проект написан не на чистом .net стеке, так же использовался nodejs(для старта ffmpeg, временных инстанцев http серверов. На nodejs это оказалось проще и быстрее), примечательно что вызывать nodejs код можно прям из .net приложения использую INodeSerevices, оч удобно.

База данных сперва была MSSQL, но потом переехал на Postgres, тоже подглядел в офисных проектах.

Покупаю видео поток у контент провайдеров, ретранслирую через свой сервер. Что бы работал телеграм вынужден был купить socks5  proxy, так же в перспективе нужно будет покупать расширенный аккаунт для ngrok, т.к он выполняет роль https  тоннеля, который перенаправляет пакеты от телеграм на мой локальный порт и адрес, иначе нужен будет SSL сертификат и свой домен.

Сперва ретрансляция одного потока занимала примерно 50% CPU, это опустило меня на дно отчаяния т.к по моим расчетам нужен был хотя бы двухпроцессорный сервак б.у с алиэкспресс примерно на 36-48 ядер. Очень не хотелось тратить 1000$ на подходящий сервер, что бы найден способ, снижающий нагрузку до смешных 0.5 - 1%.


Сейчас сервисом пользуется один человек, с подачи которого все это затевалось) Но мне бы хотелось поделиться этим с людьми, т.к ресёрч показал что годных сайтов/сервисов по прямыми трансляциям и большим ассортиментом, да еще и чтоб работало на ios/android , просто нет. По этому оставляю тут адреса.

Канал: @LiveSportsStreams Bot: @LiveSportStreamsBot.


Спасибо за внимание, надеюсь на фидбек, отвечу на любые вопросы.

Лига программистов

2.1K постов11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

@ghsee, что не понравилось, айпи адрес вместо домена, страница плеера не адаптирована под мобильный браузер. Зачем бот то? Можно было так же на сайте организовать список

раскрыть ветку (11)
0
Автор поста оценил этот комментарий

Домен в будущем куплю, сейчас на поддержку и так уходит больше 50 долларов в месяц. Страница не совсем адаптирована согласен, работаю над этим, недавно сделал кнопку "картинка в картинке" для хрома и андроидов. А бот потому-что мои знания во фронтэнде околонулевые, сейчас роль фронта выполняет телеграм. Сайт планируется. Сейчас в приоритете новые источники, зарубежные. В данный момент есть все русскоязычные источники

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Что бы окупить поддержку, вставляй видео рекламу ютуба или на крайняк Ад вордс. Хотя при одном пользователе ее точно не окупишь

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

О встроенной рекламе пока речи не идет. планирую распространять бота, как сервис для спортивных пабликов за абонентку. например канал о манчестере, бот будет постить туда только стримы манчестера и таким вот образом для всех прочих пабликов ,видов спорта, команд и турниров

0
Автор поста оценил этот комментарий

удваиваю.

реквестирую завести видеопоток прямо в телегу

раскрыть ветку (7)
0
Автор поста оценил этот комментарий

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

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

ну, ютубчик же как-то превьювается и съедается встроенным плеером

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

хм, можно поподробнее?

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

попроси друга отправить ссылку на Ютуб.

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

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Пасиба. Нашел, почитал документацию. Так можно сделать только если это ссылка ютуб, вимео, саундклауд или другие доверенные источники + такой подход не позволит мне встроить аналитику

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

а стримить на ютуб не вариант?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Скорее всего получу бан т.к контент проприетарный. Все-таки ретранслирую тв каналы

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку