portaldacalheta.pt
  • Основен
  • Растеж На Приходите
  • Финансови Процеси
  • Дизайнерски Живот
  • Съвети И Инструменти
Back-End

Първи стъпки с езика за програмиране Elixir



Ако сте чели публикации в блогове, хакерски теми за новини, любимите ви туитове на разработчици или слушате подкасти, на този етап вероятно сте чували за езика за програмиране Elixir. Езикът е създаден от Хосе Валим, добре познат разработчик в света с отворен код. Може да го познавате от рамката на Ruby on Rails MVC или от рубинните скъпоценни камъни, върху които той и неговите колеги от Plataformatec са работили през последните няколко години.

Според Хосе Валим, Еликсир е роден през 2011 г. . Той имал идеята да изгради новия език поради липсата на добри инструменти за решаване на проблемите със съвпадението в рубинския свят. По това време, след като прекарва време в изучаване на съвпадение и разпределя фокусирани езици, той открива два езика, които му харесват, Erlang и Clojure, които работят в JVM. Харесваше всичко, което виждаше на езика Erlang (Erlang VM) и мразеше нещата, които не виждаше, като полиморфизъм, метапрограмиране и атрибути на разширяемост на езика, в които Clojure беше добър. И така, Elixir е роден с това предвид, за да има алтернатива на Clojure и динамичен език, който работи във виртуалната машина Erlang с добра поддръжка за разширяемост.



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



Преди да видим някакъв код, струва си да кажем, че Elixir е бил приети от общността което нараства. Ако искате да научите Elixir днес, лесно ще намерите книги, библиотеки, конференции, срещи, подкасти, публикации в блогове, бюлетини и всякакви учебни източници, както е прието от създателите на Erlang.



Нека видим малко код!

Инсталирайте Elixir:

Инсталирането на Elixir е супер лесно във всички основни платформи и е еднолинеен в повечето от тях.



Arch Linux

Elixir се предлага на Arch Linux чрез официалните хранилища:

pacman -S elixir

Ubuntu

Инсталирането на Elixir в Ubuntu е малко сложно. Но въпреки това е достатъчно лесно.



wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb apt-get update apt-get install esl-erlang apt-get install elixir

OS X

Инсталирайте Elixir в OS X, като използвате Homebrew .

brew install elixir

Запознайте се с IEx

След като инсталацията приключи, е време да отворите черупката си. Ще прекарате много време в черупката си, ако искате да се развиете в Еликсир.



Интерактивната обвивка на Elixir или IEx е REPL - (Прочетете Evaluate Print Loop), където можете да изследвате Elixir. Можете да въведете изрази там и те ще бъдат оценени, което ви дава незабавна обратна връзка. Имайте предвид, че вашият код наистина е оценен и не е компилиран, така че не забравяйте да стартирате профилиране или бенчмаркове в черупката.

Демонстрация на IEX REPL.



Командата за прекъсване

Има важно нещо, което трябва да знаете, преди да започнете IEx REPL - как да излезете от него.

Вероятно сте свикнали да удряте CTRL+C за да затворите програмите, изпълнявани в терминала. Ако натиснете CTRL+C в IEx REPL ще отворите менюто Break. Веднъж в менюто за почивка можете да натиснете CTRL+C отново, за да излезете от черупката, както и да натиснете a.



Излизане от IEx REPL.

Няма да се впускам във функциите на менюто за почивка. Но нека видим няколко помощници на IEx!

Помощници

IEx предоставя куп помощници , за да се изброят всички от тях, напишете: h().

И ето какво трябва да видите:

IEx помощници.

Това са едни от любимите ми, мисля, че ще бъдат и ваши.

  • h както току-що видяхме, тази функция ще отпечата помощното съобщение.
  • h/1 което е същата функция, но сега очаква един аргумент.

Например, когато искате да видите документацията на String strip/2 метод, който можете лесно да направите:

IEx: Проверка на документите.

Вероятно вторият най-полезен IEx помощник, който ще използвате, докато програмирате в Elixir, е c/2, който компилира даден файл на еликсир (или списък) и очаква като втори параметър път за записване на компилираните файлове в .

Да предположим, че работите в едно от http://exercism.io/ упражненията Elixir, упражнението Anagram.

Значи сте внедрили Anagram модул, който има метода match/2 във файла anagram.exs. Като доброто разработчик вие сте, написали сте няколко спецификации, за да сте сигурни, че всичко работи както се очаква.

Ето как изглежда текущата ви директория:

Списък с директории за този проект на Elixir.

Сега, за да стартирате тестовете си срещу модула Anagram, трябва да стартирате / компилирате тестовете.

Провеждане на тестовете в Elixir.

Както току-що видяхте, за да компилирате файл, просто извикайте elixir изпълним файл, преминаващ като път на аргумент към файла, който искате да компилирате.

Сега да кажем, че искате да стартирате IEx REPL с модула Anagram, достъпен в контекста на сесията. Има две често използвани опции. Първото е, че можете да изискате файла, като използвате опциите -r, нещо като iex -r anagram.exs. Вторият, можете да компилирате направо от IEx сесията.

Компилиране от IEx сесия.

в какво е написано linux

Просто, просто така!

Добре, ами ако искате да прекомпилирате модул? Трябва ли да излезете от IEx, да го стартирате отново и да компилирате файла отново? Не! Ако имате добра памет, ще запомните, че когато изброихме всички помощници, налични в IEx REPL, видяхме нещо за командата за прекомпилиране. Нека да видим как работи.

Прекомпилиране в IEx.

Забележете, че този път сте предали като аргумент самия модул, а не пътя на файла.

Както видяхме, IEx има куп други полезни помощници, които ще ви помогнат да научите и разберете по-добре как работи една програма Elixir.

Основи на видовете еликсир

Числа

Има два вида числа. Цели числа с произволен размер и числа с плаваща запетая.

Цели числа

Целите числа могат да бъдат записани в десетичната основа, шестнадесетичната, осмичната и двоичната.

Както в Руби , можете да използвате долната черта, за да разделите групи от три цифри, когато пишете големи числа. Например можете да оправите сто милиона по този начин:

100_000_000

Октална:

0o444

Шестнадесетичен:

0xabc

Двоичен:

0b1011

Плува

Floare са IEEE 754 двойна прецизност. Те имат 16 цифри с точност и максимален експонентен показател около 10308.

Плувките се пишат с десетична запетая. Трябва да има поне една цифра преди и след точката. Можете също да добавите последващ експонент. Например 1.0, 0.3141589e1 и 314159.0-e.

как да използвам влизане в python

Атоми

Атомите са константи, които представляват имена. Те са неизменни стойности. Пишете атом с водещо двоеточие : и поредица от букви, цифри, долни черти и при знаци @. Можете също да ги напишете с водещо дебело черво : и произволна последователност от символи, затворени с кавички.

Атомите са много мощен инструмент, те се използват за препращане към ерланг функции, както и клавиши и методи на Еликсир.

Ето няколко валидни атома.

:name, :first_name, :'last name', :===, : [email protected] _question?

Логически

Разбира се, булевите са истински и фалшиви стойности. Но хубавото при тях е в края на деня, те са просто атоми.

Булевите са просто атоми, както е доказано чрез IEx.

Струни

По подразбиране низовете в Elixir са UTF-8 съвместим. За да ги използвате, можете да имате произволен брой знаци, затворени от ' или '. Можете също така да имате интерполирани изрази вътре в низа, както и екранирани символи.

Интерполация на еликсирен низ.

Имайте предвид, че низовете с единични кавички всъщност са списък на двоични файлове.

Поведение на единичен кавичка в Elixir.

Анонимни функции

Като функционален език, Elixir има анонимни функции като основен тип. Един прост начин за писане на функция е fn (argument_list) -> body end. Но една функция може да има множество тела с множество списъци с аргументи, защитни клаузи и т.н.

Дейв Томас, в Програмиране на еликсир book, предлага да мислим за fn ... end като за кавичките, обграждащи низ от литерал, където вместо да връщаме стойност на низа, ние връщаме функция.

Връщане на функция на еликсир.

Кортежи

Tuple е неизменяем индексиран масив. Те бързо връщат размера му и бавно добавят нови стойности поради неизменната си природа. Когато актуализирате кортеж, вие всъщност създавате изцяло ново копие на себе си.

Тройките много често се използват като върната стойност на масив. Докато кодирате в Elixir, много често ще виждате това, {:ok, something_else_here}

Ето как пишем кортеж: {?a,?b,?c}.

Съвпадащ модел

Няма да мога да обясня всичко, което трябва да знаете за Pattern Matching, но това, което ще прочетете, обхваща много от това, което трябва да знаете, за да започнете.

Elixir използва = като оператор на мачове. За да разберем това, ние трябва да научим това, което знаем за = на други традиционни езици. В традиционните езици операторът за равно е за присвояване. В Elixir операторите equals са за съвпадение на шаблони.

И така, това е начинът, по който работи стойностите в лявата страна. Ако те са променливи, те са обвързани от дясната страна, ако не са променливи, еликсирът се опитва да ги съпостави с дясната страна.

Демо демонстрация на модел на еликсир.

Оператор на щифтове

Elixir предоставя начин за винаги принудително съвпадение на шаблона спрямо променливата в лявата страна, пин оператора.

Демонстрация на пинов оператор на Elixir.

Списъци

В Elixir Списъците изглеждат като масиви, както го познаваме от други езици, но не са. Списъците са свързани структури, които се състоят от глава и опашка.

Поведение на списъка с еликсири.

Списъци с ключови думи

Списъците с ключови думи са списък от двойки Tuple.

Просто ги пишете като списъци. Например: [{: един, 1}, 2, {: три, 3}]. Има пряк път за дефиниране на списъци, ето как изглежда: [one: 1, three: 3].

За да извлечете елемент от списък с ключови думи, можете да използвате:

Keyword.get([{:one, 1}, 2, {:three, 3}], :one)

Или използвайте пряк път:

[{:one, 1}, 2, {:three, 3}][:one]

Тъй като списъците с ключови думи са бавни при извличане на стойност, това е скъпа операция, така че ако съхранявате данни, които се нуждаят от бърз достъп, трябва да използвате карта.

Карти

Картите са ефективна колекция от двойки ключ / стойност. Ключът може да има всякаква стойност, която искате като ключ, но обикновено трябва да бъде от същия тип. За разлика от списъците с ключови думи, Картите позволяват само един запис за даден ключ. Те са ефективни, докато растат и могат да бъдат използвани в съвпадението на модела Elixir в картите за общо използване, когато имате нужда от асоциативен масив.

Ето как можете да напишете карта:

%{ :one => 1, :two => 2, 3 => 3, 'four' => 4, [] => %{}, {} => [k: :v]}

Заключение

Elixir е страхотен, лесен за разбиране, има прости, но мощни типове и много полезни инструменти около него, които ще ви помогнат, когато започнете да учите. В тази първа част разгледахме различните типове данни, върху които са изградени програмите на Elixir и операторите, които ги захранват. В следващите части ще се потопим по-дълбоко в света на Еликсир - функционално и едновременно програмиране.

Свързани: Разкопайте ClojureScript за Front-end разработка

Как един инженер от предния край може да замени екип от двама

Уеб Интерфейс

Как един инженер от предния край може да замени екип от двама
Корпоративен рисков капитал: Дяволът ... или иновативен канал за растеж?

Корпоративен рисков капитал: Дяволът ... или иновативен канал за растеж?

Инвеститори И Финансиране

Популярни Публикации
UI срещу UX: Жизненоважното ръководство за дизайн на потребителския интерфейс
UI срещу UX: Жизненоважното ръководство за дизайн на потребителския интерфейс
Приемане на Firebase без сървъри - Мобилните и уеб приложенията стават лесно
Приемане на Firebase без сървъри - Мобилните и уеб приложенията стават лесно
Ценова еластичност 2.0: от теорията към реалния свят
Ценова еластичност 2.0: от теорията към реалния свят
Проучване на мултимодален дизайн - Урок за Adobe XD
Проучване на мултимодален дизайн - Урок за Adobe XD
Максималистичен дизайн и проблемът с минимализма
Максималистичен дизайн и проблемът с минимализма
 
Agile UX: Как да включите UX и продуктовия дизайн в Agile
Agile UX: Как да включите UX и продуктовия дизайн в Agile
Научете Markdown: Инструмент за писане за разработчици на софтуер
Научете Markdown: Инструмент за писане за разработчици на софтуер
CloudI: Привеждане на толерантността на Erlang към развитие на полиглот
CloudI: Привеждане на толерантността на Erlang към развитие на полиглот
Внедряване на безсървърни функции Node.js с помощта на Google Cloud
Внедряване на безсървърни функции Node.js с помощта на Google Cloud
Презентационен дизайн и изкуството на визуалното разказване на истории
Презентационен дизайн и изкуството на визуалното разказване на истории
Популярни Публикации
  • нова дата().gettime()
  • какво е сървърен възел
  • как да науча C++
  • Най-добри практики за обработка на изключения в javascript
  • получаване на клиенти като консултант
  • най-добри практики за проектиране на мобилни уебсайтове
  • c corp срещу s corp срещу llc
Категории
  • Растеж На Приходите
  • Финансови Процеси
  • Дизайнерски Живот
  • Съвети И Инструменти
  • © 2022 | Всички Права Запазени

    portaldacalheta.pt