Около месяца назад официально стартовал мой личный проект OxidemusiC.
В этом посте не будет обсуждаться, что такое OxidemusiC и что он делает, но если вам интересно узнать больше о приложении, я рекомендую вам посетить веб-сайт.
Это был один из самых трудоемких моих личных проектов, и я не особо упрощал себе задачу. Проект использует JavaScript, Python и Rust для внутренних сервисов. Все эти языки имеют свои достоинства и недостатки. Первоначальная версия OxidemusiC полагалась исключительно на Python. И это было нормально, когда это было просто приложение, которое я использовал со мной и моей группой друзей. Но когда я действительно выпустил его, я заметил большую проблему. Что делать, если я вношу критическое изменение, а приложение не может надежно работать в новой версии API. И на помощь приходит Cloudflare Workers. Поскольку конечная точка этой версии будет самой запрашиваемой конечной точкой, я хотел запустить ее на чем-то, что могло бы обрабатывать непредсказуемые объемы трафика.
Начнем сверху, до самого низа.
Так! Cloudflare Workers, честно говоря, у меня был большой опыт использования работников. Было легко привыкнуть к интерфейсу, и хотя у меня практически нет знаний JavaScript, это было очень легко сделать со всей документацией, предоставленной Cloudflare. Если вы еще не использовали Cloudflare Workers, я настоятельно рекомендую вам ознакомиться с ними здесь. Сейчас Workers не играют такой большой роли в OxidemusiC. В настоящее время он используется только для проверки того, что сервер в порядке, и проверки того, что пользователь использует совместимую версию приложения. Довольно простой.
Хочешь знать, что не является основным? "Ржавчина". Вы хотите головных болей, эмоционального стресса и сомнений в своем жизненном выборе? Тогда Rust — это язык программирования для вас! Я потратил часы на создание этого приложения на Rust, позвольте мне дать вам краткое изложение того, что оно делает.
Я мог бы, вероятно, сделать эту функцию минут за двадцать, используя Python, но проблема в том, что Python довольно медленный. Итак, я рассмотрел альтернативы для его реализации, в конце концов это был либо Эликсир, либо Rust, и в итоге я использовал Rust благодаря его удивительной переносимости, поэтому после того, как у меня есть скомпилированный исполняемый файл, это все, что мне нужно для запуска. приложение. Несмотря на потрясающую переносимость Rust, это довольно другой язык. Конечно, он работает с большинством языков и не позволяет вам так легко совершать ошибки. Это чертовски глупая, бесполезная, дерьмовая система собственности поставила меня на грань психического срыва. Даже если процитировать документы Rust:
«Поскольку право собственности — новая концепция для многих программистов, требуется некоторое время, чтобы привыкнуть к ней».
И это действительно так. Придя из Python, я просто привык делать то, что, черт возьми, я хочу, когда, черт возьми, я хочу использовать переменные. Но именно эта система владения делает Rust безопасным и эффективным. Так что я думаю, вы просто вынуждены иногда приспосабливаться. Так что я трачу около двух часов на то, чтобы разобраться с этим дерьмом и кричать на компилятор ржавчины. Но в конце концов меня поприветствовало это:
Итак, он развернут и до сих пор работал достаточно гладко, по крайней мере, не было никаких проблем во время выполнения пока🤞. Хватит говорить о вещах, которые не имеют никакого смысла, так что давайте перейдем к любимому всеми языку программирования, Python!
О, Python, такой простой и такой гибкий. Хотя я определенно потратил больше всего времени на написание этого кода, код, который я написал, просто имел смысл, и я могу получить доступ к переменной, не получая двадцать различных проблем, жалующихся на то, что я не могу переместить переменную. (кашель Ржавый кашель). Python делает всю тяжелую работу, фактическое воспроизведение музыки, управление вечеринками, к которым вы можете присоединиться, создание вечеринок, управление учетными записями и все. Все довольно прямолинейные вещи. Я бы рассказал о проблемах, с которыми столкнулся при создании приложения Python, если бы они были. Теперь, конечно, я столкнулся с некоторыми незначительными ошибками при создании Python, но на самом деле ничего примечательного.
Я просто решил дать публике понять, как устроен OxidemusiC, так как я довольно умалчивал о технических деталях приложения. В заключение, поскольку я знаю, что большинство из вас интересуется вопросами безопасности, надеюсь, скоро появятся несколько интересных новостей.