Как стать программистом. Сервис доставки живых спортивных трансляций
Приветствую всех! Хочу рассказать о своем опыте входа в мир разработки, ну и промежуточном результате. Это мой первый пост в сообществе и целом на Пикабу.
Честно сказать, с детства восхищался айти, но в рамках кинематографа, тайно мечтая приблизиться к искомому. День Х настал уже в сознательном возрасте 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.
Спасибо за внимание, надеюсь на фидбек, отвечу на любые вопросы.
Лига программистов
2K поста11.8K подписчика
Правила сообщества
- Будьте взаимовежливы, аргументируйте критику
- Приветствуются любые посты по тематике программирования
- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества