
knowthen.com
Быстрое обучение для разработчиков. Изучите технологии разработки программного обеспечения на быстром пути.
«Используйте правильный инструмент для работы» Вышеупомянутое утверждение является общепринятым мнением, с которым, я уверен, большинство из нас, программистов, в целом согласятся, но позвольте мне спросить вас, считаете ли вы, что каждый из 20 самых популярных языков программирования - это разные инструменты, предназначенные для разных задач?
Например, рассмотрим следующие пять языков программирования: Java, Python, Ruby, JavaScript и C #.
Являются ли эти пять языков настолько уникальными, что вы бы назвали их разными инструментами, предназначенными для разных задач, или они кажутся более похожими, чем разными?
Было время, когда можно было сказать «JavaScript - это язык, который работает в браузере», однако это утверждение больше не работает ... Сегодня JavaScript - это язык, который вы можете использовать практически везде: браузеры, серверы, встроенные устройства, Базы данных ... Так является ли JavaScript подходящим инструментом для любой работы? Нет, конечно нет! но люди продолжают пытаться
Я думаю, что если вы прищурите свои глаза, то подавляющее большинство популярных языков программирования выглядят больше похожими, чем разными. Конечно, все они имеют разные стили и идиомы, которые могут или не могут резонировать с вами, но я все еще думаю, что большинство популярных языков, по сути, не так уж и отличаются.
Почему я так думаю?
Потому что большинство популярных языков были разработаны для последовательных языков общего назначения, которые могут решать всевозможные проблемы. Я имею в виду, если вы думаете об этом, языки становятся популярными только тогда, когда они имеют широкую привлекательность, и могут использоваться для решения многих различных проблем ... верно?
Но вот в чем дело: вы не можете написать язык программирования, который отлично справится с решением всех возможных проблем, точно так же, как вы никогда не сможете приготовить еду, которая нравится всем.
Хорошо, так к чему я клоню?
Этот курс учит вас языку программирования Elixir, который вы должны знать, он не похож на другие популярные языки.
Elixir - это современный параллельный функциональный язык программирования, который решает определенные типы проблем уникальным, новым и очень эффективным способом ... Другими словами, Elixir - это явно другой инструмент, предназначенный для определенных видов работ.
Я собираюсь объяснить, в чем на самом деле хорош Эликсир, но прежде чем сделать это, обдумайте следующее утверждение:
Elixir - это язык, который позволяет писать программы, которые могут эффективно «работать вечно» ...
Хорошо, прежде чем вы отправите мне неприятное электронное письмо, ничто не работает вечно ... Я знаю это, но программы, написанные на Elixir, могут иметь смехотворное время простоя, гораздо дольше, чем любые другие языки, кроме Erlang, но я расскажу больше об Erlang через минуту ,
Итак, как же программы Elixir могут эффективно «работать вечно»?
Ну, это не случайно ... это возможно в Эликсире, потому что отчасти это то, для чего он предназначен.
Так когда бы вы использовали эликсир? Другими словами, какие «проблемы» хорошо решать?
Ну, Elixir отлично подходит для создания веб-приложений и API, которые бывают быстрыми, массово параллельными, отказоустойчивыми и распределенными.
Elixir также действительно хорош в создании встроенного программного обеспечения, но в этом курсе мы сосредоточимся на Elixir в контексте веб-разработки.
Хорошо, вы можете подумать: «Я могу создавать веб-приложения и API на многих языках, так чем же отличается Elixir?»
Если бы мне пришлось дать только один ответ на этот вопрос, мой ответ был бы: «Эликсир обрабатывает параллелизм намного лучше, чем любой другой популярный язык!»
Я приведу несколько примеров:
Несколько лет назад B / R (Bleacher Report), сайт спортивных новостей, переживал значительный рост (миллиарды просмотров страниц в месяц) и сталкивался с проблемами масштабирования. Первоначально B / R был создан с ROR (Ruby on Rails), который предлагает отличный опыт и производительность для разработчиков, но он отчасти отвратителен при масштабировании и параллелизме.
Некоторые компании смогли масштабировать ROR путем эффективного использования кэширования, но B / R не может использовать кэширование, потому что у каждого пользователя B / R есть персонализированная лента новостей, которая не подходит для кэширования.
Первоначально B / R справлялся с проблемами роста, добавляя все больше и больше серверов, но в итоге они решили поискать альтернативы ROR, которые могли бы помочь им справиться с проблемами масштабирования, поэтому они рассмотрели несколько различных языков, таких как JavaScript / Node.js и Golang, но в конечном итоге они выбрали Elixir, и они начали мигрировать из ROR в Elixir и Phoenix.
После переноса ресурсоемких сервисов с ROR на Elixir, B / R смог перейти с 150 серверов ROR, всего на 5 серверов Elixir, и они почувствовали, что могли бы перейти только на 2 сервера Elixir.
Переход от 150 до 5 серверов довольно впечатляет, но в Elixir есть нечто большее, чем просто масштабирование, но я вернусь к этому чуть позже.
Давайте посмотрим на другую историю успеха Elixir в Discord, которая является стартапом, предоставляющим текстовый чат и голосовой сервис для геймеров.
Discord с самого начала знала, что им нужно будет создать систему с высокой степенью параллелизма, и они смело выбрали Elixir с самого начала ... Я говорю смело, потому что они взяли на себя обязательство Elixir очень рано, задолго до того, как это была проверенная технология.
Спустя примерно 2 года работы Discord обслуживал 5 миллионов одновременно работающих пользователей, а через пару лет они обслуживали 11 миллионов одновременно работающих пользователей.
Теперь Discord находится в масштабе, с которым большинству из нас никогда не придется иметь дело, и поэтому они нашли в своем коде несколько горячих точек, которые требовали творческих решений, но они смогли заставить его работать достаточно хорошо, и вот к чему, когда у них было 5 миллионов одновременно работающих пользователей, у них было только 4 инженера по инфраструктуре.
Хорошо, вы могли бы сказать себе: «У меня нет таких проблем масштабирования, как B / R и Discord, так зачем мне использовать Elixir»?
Что ж, даже если у вас нет проблем с масштабированием сегодня, приятно знать, что вы создаете программное обеспечение, которое может масштабироваться при необходимости, но даже если вам никогда не нужен огромный параллелизм, который предлагает Elixir, вы все равно должны рассмотреть Elixir для множества другие причины. Я опишу несколько крупных:
Кстати, если вы хотите написать программное обеспечение, которое может «работать вечно», вам понадобятся все функции, которые я только что описал, верно?
Elixir - это очень способный язык, который предлагает множество уникальных и интересных функций, но он также предлагает отличные возможности для разработчиков, аналогичные тем, которые предлагает Ruby on Rails ... По сути, с помощью Elixir вы можете создавать превосходные системы с уникальными функциями, которые хорошо масштабируются. и ремонтопригодны, и вы найдете себя очень продуктивным, и вам, вероятно, действительно понравится его использовать.
«Хорошо, но Эликсир молод, так что я уверен, что тебе понадобится много болей в росте, верно?»
Ну нет, не совсем, позвольте мне объяснить.
Программы, которые вы пишете в Elixir, скомпилированы в байт-код, который запускается на виртуальной машине. Виртуальная машина, которую использует Elixir, не была создана для Elixir, она была создана более 3 десятилетий назад для языка под названием Erlang.
Правда в том, что Elixir - ничто без виртуальной машины Erlang, фактически Elixir даже не существовал бы без Erlang.
Теперь Erlang обладает большинством тех же функций, что и Elixir, что может удивить вас, почему бы просто не использовать Erlang?
Ну, если вы посмотрите на Erlang, это не самый хороший язык для чтения и использования ... Справедливости ради, большинство языков, которые были созданы более 3 десятилетий назад, не могут реально конкурировать эстетически с современными языками. Сейчас некоторым людям действительно нравится Erlang, но я подозреваю, что большинство людей, которые бегло смотрят на Erlang, быстро отключаются из-за его синтаксиса.
Причина, по которой я рассказываю об Erlang, заключается в том, что его виртуальная машина (которую использует Elixir) является зрелой, проверенной в бою и надежной, поэтому, хотя Elixir является относительно новым языком, его среда выполнения более зрелая и проверенная, чем в значительной степени любое другое время выполнения.
«Хорошо, а как насчет изменений в языке и API? Они стабильны?»
Недавно Хосе Валиму, создателю Elixir, был задан вопрос:
"Эликсир готов?"
Ответ Хосе был фактически Да ... ну, он не сказал да, он предпочел назвать это стабильным ... В принципе, в дорожной карте нет больших функций или серьезных изменений, и нет никаких твердых планов относительно версии 2.0. ... хорошо, держу пари, что в какой-то момент будет версия 2.0, но, надеюсь, вы получите мнение о зрелости языка.
Я почти уверен, что мы преодолели большинство проблем роста с Elixir, и это прекрасное время, чтобы изучить и начать использовать Elixir, но не верьте моим словам, посмотрите на то, что говорят другие, такие как InfoQ и Gartner Исследователи, которые говорят, что он готов к работе в прайм-тайм, предлагают организациям рассмотреть возможность использования Elixir, поскольку он может обеспечить конкурентное преимущество.
«Много ли компаний используют Elixir? То есть, есть много рабочих мест Elixir?»
Да, вы можете найти сотни компаний, которые используют Elixir, в этом списке, но я подозреваю, что на самом деле тысячи компаний используют Elixir, и все больше и больше принимают его каждый день ... Вы, вероятно, знакомы с некоторыми из компаний, которые используют Elixir такие как Pinterest, Moz, Slack, Pepsi, PagerDuty, AdRoll, Bleacher Report и Discord.
«Что я буду изучать в этом курсе?»
Мы начнем с основ и проработаем основные функции Elixir, а затем начнем изучать веб-инфраструктуру Phoenix.
Существует более 150 видеороликов, общим объемом ~ 17,5 часов видеоконтента на следующие темы и многое другое:
После того, как вы изучите основы, вы сможете применить полученные знания на практике, создав интересный финальный проект.
"Какой финальный проект?"
Представьте, что вы и я в команде, которая только что заключила большой контракт на создание приложения для опросов на выходе.
"Что такое выходной опрос?"
Ну, это способ оценки того, как люди голосуют в день выборов, и оценки определяются путем опроса избирателей, за которых они проголосовали, сразу после того, как они покинули кабину для голосования.
Этот проект немного пугающий, потому что до дня выборов наше приложение почти никто не будет использовать, однако в день выборов наше приложение будет испытывать огромный всплеск использования ... где-то между 10 000 и 100 000 одновременно работающих пользователей.
Позвольте мне объяснить ожидаемую схему использования более подробно.
В преддверии дня выборов будет всего несколько пользователей, которые будут устанавливать основные данные ... Другими словами, добавляя избирательные округа, вопросы, которые следует задавать избирателям, и действительные варианты выбора для каждого вопроса.
В день выборов будет огромный всплеск использования. Небольшая часть всплеска использования будет от людей, проводящих опросы на выходе, на своих мобильных телефонах.
Тем не менее, подавляющее большинство одновременных пользователей будут составлять организации опросов, политические кампании и новостные организации, которые будут следить за результатами опросов в течение всего дня.
В общем, в нашем финальном проекте будет 3 части:
Административная часть приложения будет состоять из нескольких серверных страниц.
Части приложения Polling и Reporting будут представлять собой одностраничное приложение, написанное на React.js. Мы не будем создавать приложение React в этом курсе, так как оно выходит за рамки этого курса, но мы создадим несколько конечных точек REST и канал Phoenix, которые будут использоваться в приложении React.js, затем мы интегрируем React приложение с Фениксом.
«Как вы решаете этот тип задачи параллелизма / масштабирования?»
Что ж, вам нужно будет пройти курс, чтобы узнать, но просто вы знаете, что решение, которое мы создадим, сильно отличается от того, что вы делали бы на других популярных языках.
"Этот курс подходит для меня?"
Этот курс предназначен для студентов, которые уже знакомы с HTML, CSS и HTTP.
В идеале у вас должен быть некоторый опыт работы с другим языком программирования ... Другими словами, я предполагаю, что у вас есть хотя бы небольшое количество общих знаний по программированию. Нельзя сказать, что полный новичок не может преуспеть в этом курсе, но я думаю, что это будет довольно сложно.
"Что входит в этот курс?"
Этот курс содержит более 150 видео, общей продолжительностью ~ 17,5 часов, с тщательно продуманным контентом, охватывающим Elixir версии 1.9 и Phoenix версии 1.4. Вы также будете иметь много упражнений и задач на протяжении всего курса, чтобы дать вам некоторую практику и держать вас в курсе.
Быстрое обучение для разработчиков. Изучите технологии разработки программного обеспечения на быстром пути.
Усвой лучшие методы программирования с Elixir и Phoenix во время обучения созданию привлекательных веб-приложений! Elixir и Phoenix - одни из самых горячих технологий 2017 года. Функциональное программирование? Мы этого научимся. Phoenix и OAuth? Изи. Postgres для хранения данных? Самом собой! Websockets тоже! Этот курс поможет вам быстро начать работать с Elixir и Phoenix - научит вас основам, необходимым для глубокого понимания и создания удиви
Разработка дизайна и кода приложения Elixir + Phoenix + Elm / Vue. Веб-приложение, которое мы изучаем, позволяет вам соревноваться в бинго с несколькими игроками в режиме реального времени. Через серию видеороликов мы каждый день изучаем дизайн, архитектуру и код полнофункционального приложения Elixir + Phoenix + Elm / Vue, давая вам возможность начать аналогичные приложения.
Истинное мастерство в Elixir происходит от понимания основных идиом: функциональное программирование, преобразования, параллелизм и структура приложения. Вам нужно знать инструменты, такие как IEx и mix. И вам нужно понимать такие фреймворки, как OTP и Phoenix. Этот курс поможет вам начать этот путь (и ваш опыт займет у вас оставшуюся часть пути). В курсе есть видео, чтобы показать вам материал, текст, чтобы дать вам факты, тесты, которые помогут
Внедрите аутентификацию на основе JWT в Elixir, язык, который так или иначе поддерживает (ErLang) Whatsapp, Discord, Pinterest и т. д. Мы будем использовать Phoenix Framework, фантастический фреймворк MVC для разработки бэкендов и проектов с полным стеком в Elixir. Считайте, что Phoenix больше похож на Express от Node.js, но, круче. Elixir в целом круче, чем любой другой язык, на котором я пишу код, но тем не менее, всего по немного.
Современный Erlang для начинающих представляет собой подробное введение в язык программирования Erlang от самых основ до создания вашего первого приложения Erlang/OTP. Этот курс использует очень структурированный подход к обучению. В скринкастах показано, как начать работу на начальном пути от понимания основных понятий, таких как сопоставление с образцом, до написания вашего первого приложения OTP.
Please upload this course https://grox.io/language/liveview/course
Thank you in advance.
Can you please add them.
Could you upload this course please.
https://grox.io/language/liveview/course