У меня наконец есть проблема, которая подходит для Elixir гораздо больше, чем для Ruby on Rails.

Добро пожаловать в первую программу Coding Spectacle - я Spec (сокращение от Spectacle), и вы, возможно, догадались, что я программирую на Ruby.

В этой статье мы рассмотрим:

  • Какие проблемы я пытаюсь решить ✍️
  • Что мешало мне изучать эликсир в прошлом 😔
  • Как я собираюсь выучить это раз и навсегда 💪

Я запустил канал twitch в ноябре 2020 года, что было частью задачи по списку желаний, и у меня все получалось довольно плохо, пока… я не начал делать интерактивные викторины, написанные на Ruby on Rails. Я все еще крошечный стример, потоковое воспроизведение игр 20-летней давности - это ниша, но люди остаются ради моих картинок и викторин - я нашел своих друзей-фанатов Final Fantasy 🥳.

Самый популярный из них - это викторина по обнаружению изображений, квадраты медленно удаляются, и первый человек в чате, который напечатает правильный ответ, получает очки!

У меня большие планы на этот проект, и я хочу превратить его во что-то, что другие более мелкие стримеры также могут использовать для развития своих каналов. Это будут не просто викторины, но и небольшие мини-игры для чата, и я хочу сделать СУПЕР простой анимацию изображений, звуков, а также веб-камер в потоке на основе событий twitch.

Почему именно Эликсир?

Я смотрю на Elixir, потому что мне нужно что-то действительно хорошее:

  1. Управление подключениями к серверам чата Twitch
  2. Отличная поддержка веб-сокетов для оверлейного сеанса браузера.

Это основные потребности, которые делают Elixir подходящим, но что, как я думаю, делает Elixir еще более подходящим и, наконец, побудило меня изучить его должным образом, это:

  • Нет необходимости запускать отдельный процесс Redis для поддержки веб-сокетов.
  • Он может обрабатывать слишком много соединений без необходимости масштабирования
  • Похоже, в нем есть потрясающие инструменты для мониторинга.

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

Упрощение и удешевление инфраструктуры - ключевые моменты для меня.

Если кто-то добавляет определенные эмоции в чат, мы получаем более крупную вспышку на экране со звуковым эффектом на временной шкале, и я поставил их в очередь в браузере с помощью indexedDB, но это кажется неправильным способом сделать это! Я с нетерпением жду возможности сделать это в стиле Эликсира.

Это отличный момент. Я должен сначала изучить Эликсир !!!! И я не в первый раз пытаюсь…

Подбирая эликсир (снова…)

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

Усилие обучения

То, что я создавал, мне было намного проще построить в Ruby on Rails, поэтому усилия по созданию этого в Elixir не стоили того, и я сдавался через неделю или две. Да, строительство по-другому было в новинку, но я не замечал разительных отличий, и все шло очень медленно.

Мои ожидания полностью оправдались, я думал, что заработаю в считанные дни, бегло начну через пару недель, выбивая приложения Phoenix, как прототипы RoR - этого, очевидно, никогда не было, и когда это не проявлялось Я разочаровался и двинулся дальше.

Изучив учебные путешествия других людей, я думаю, что теперь это месяцы, а не дни! Я считаю, что это немного более реалистично, особенно потому, что у меня есть примерно 8 часов в неделю, чтобы посвятить это этому, поэтому мне нужно смотреть в будущее.

Большая картина

У меня есть цель помочь маленьким стримерам, и я пытаюсь развивать свой собственный стрим с помощью этого проекта. В этом проекте больше ставок, чем в любой побочной суете, которую я пробовал раньше, у меня есть небольшая аудитория на Twitch, которую я обожаю, потому что я могу тестировать свои творения и транслировать друзьям, чтобы получить отзывы о том, что должен делать продукт и как Улучши это.

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

Проблемы с обязательствами по проекту

У меня есть УЖАСНАЯ УЖАСНАЯ привычка отказываться от проектов в течение недель, дней или даже часов после их зачатия. Я всегда сдаюсь, когда становится немного сложно, но я нашел для этого способ.

Делайте что-то публично.

У меня была такая же проблема с видеоиграми. Я думаю, что единственной игрой, которую я когда-либо завершал, были микромашины в детстве на Sega Magadrive. Пока я не начал стримить!

С момента стриминга я завершил все игры, которые выбрал, потому что у меня есть люди, которые ожидают, что это будет сделано, и регулярные стримы, чтобы увидеть, как я продвигаюсь. Это своего рода причина для всей этой серии, чтобы попытаться применить ту же самую регулярную публикацию прогресса к ожидаемому кругу зрителей / читателей (даже если это только мои друзья).

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

Я должен сделать небольшое признание. Еще в 2017 году у меня было несколько пачек https://elixircards.co.uk/, и я начал документировать, куда меня привело мое любопытство, пока я их использовал, но через MEASLY 7 дней я подошел с следующей идеей перейти на этот блог и отказом от этого блога, более слабый ход!

Я не осознавал, каким идиотом я был, пока годы спустя не нашел этот комментарий в одной из публикаций в блогах:

Я ЧТО-ТО БЫЛ ЗДЕСЬ и не знал об этом, я не дал ему времени, чтобы оно могло вздохнуть. Это еще одна мысль в моей голове, которая будет поддерживать меня. Мне до сих пор хочется думать об этом.

Но на самом деле как вы собираетесь изучать Эликсир?

Я собираюсь использовать несколько разных методов, которые, надеюсь, будут работать в гармонии друг с другом.

Обучение с интервалом повторения

Мне очень удалось использовать Execute Program для изучения современного JS, и я хочу сделать что-то подобное для Elixir.

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

  • знаю это
  • вроде знаю это
  • не знаю

Прорабатываю столько карточек за раз, пока все они не окажутся в стопке «знай это» (на которой я также буду регулярно проверять себя).

Ориентация на 10–15 минут в день за чашкой чая ☕.

Я воспользуюсь своим любимым трекером привычек Timecap.

КНИГИ!

В золотой век рубиновых книг я проглотил их все! Я бы вкладывал деньги в P ragProg как можно быстрее, чтобы читать следующие, я даже просмотрел первую книгу эликсиров, теперь я думаю об этом, и я люблю снова разжечь это поглощение знаний с помощью Elixir.

Но я хочу сделать это помедленнее и на самом деле выполнять в них упражнения, по-настоящему попробовать, обдумать их концепции, самостоятельно исследовать части, делать заметки и писать обзоры для всех вас :)

Я начну с этих двух основополагающих книг.

Дайте мне знать, о каких еще книгах можно углубиться в комментариях!

Курсы

Я получил курс феникса от PragProg в прошлом году, я думаю, вижу, я пробовал это столько раз, чтобы научиться, что я прошел около часа. Так что у меня это есть, но если у вас есть еще какие-то рекомендации, дайте мне знать.

Решение небольших проблем

Мне очень понравилось работать с https://www.codewars.com/, когда я уже давно немного изучил Clojure, так что это, вероятно, будет моим источником для регулярной работы с дуршлагом.

Я пока не умею решать даже самые простые вопросы, я на этом уровне:

Я всегда хотел испытать и https://exercism.io/, так что это тоже на моем радаре!

Ваши рекомендации?

Есть ли что-то, что вы хотели бы, чтобы я попробовал, или ресурс, с которым вы добились успеха?

График «»

Возможно, вас это не волнует, но для меня мое время будет разбито на:

  • Карты с эликсиром на 10 минут в течение дня
  • 3x 2-часовых занятия перед работой над книгой или курсом
  • 1x 2-часовая сессия перед работой над codewars / execism.io

Посмотрим, как это получится! Я буду накачивать здесь контент, пока буду учиться и пробовать разные вещи.

#BackseatingRequired

В моих сообщениях о кодировании не стесняйтесь поправлять меня, если я когда-либо делаю что-то некачественное.

Следуй за тобой?

Если вы хотите стать частью этого приключения со мной, вы можете:

Я тоже должен иметь список рассылки? Кто знает, может, когда-нибудь.

Спасибо за чтение, хорошего дня!

TTFN

Расширенная компьютерная визуализация моей головы после изучения Elixir: