Сегодня я отмечаю один год, когда я работаю полный рабочий день, используя Elixir в качестве языка программирования. Я для начала построил scrumex.com, проработал 6 месяцев в новом банке (Solaris) и еще 6 месяцев в (Factory Berlin). Вот что я узнал.

Вы можете жить без объектов

Мой опыт работы с Ruby, и я привык изучать свои программы и думать о них с точки зрения объектов, которые могут содержать или заключать в себе данные. В функциональном языке, таком как Elixir / Erlang, мне не нужно об этом беспокоиться. Я могу просто и более прямо думать о данных как о вводе функции, манипуляции (или данных) и выводе. Жизнь проще, когда единственное, о чем вам нужно беспокоиться, - это согласованность вашей базы данных и то, как функции манипулируют вашими данными. На мой взгляд, 1/3 вещей, о которых мне приходилось беспокоиться, исчезли (объекты).

Ваша жизнь более "дзен"

Учитывая, что вы можете жить, не думая об объектах, тот факт, что Elixir унаследовал большой опыт и годы разработки BEAM VM от разработчиков Erlang, дает вам чувство расслабления, когда вам нужно решать сложные проблемы. С одной стороны, вам нужно думать только о своих данных, с другой - вы, скорее всего, столкнетесь с проблемой, решение которой у разработчиков Erlang уже есть. Вот почему я бы посоветовал всегда смотреть на то, как разработчики Erlang решают вашу «текущую» проблему, прежде чем писать код. Это может помочь.

Запросы на вытягивание - это больше о данных, чем о структуре данных

Раньше я использовал Ruby, и я помню, как долго обсуждал запросы на вытягивание на самые разные темы: шаблоны проектирования, имена объектов, форматирование и т. Д.
Теперь это в значительной степени упрощено. Обсуждения, которые мы ведем, в основном касаются того, как мы обрабатываем данные в рамках нашего набора функций. Форматирование дано как должное, поскольку теперь оно является частью языка, и мы используем плагин Atom для автоматического форматирования кода во время его написания. Модули - это просто пространство имен для функций, поэтому мы можем рефакторировать их, когда это необходимо, и нам не нужно слишком сильно об этом беспокоиться. То же самое и с функциями. Если контроллер слишком толстый, мы можем просто скопировать и вставить код в Context. Мы сосредотачиваемся на том, что мы раскрываем, как мы это делаем и что храним в нашей базе данных (и, конечно же, на нашей бизнес-логике).

Хотите прочитать эту историю позже? Сохраните в Журнале.

Рефакторинг менее страшен

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

Процесс развертывания все еще не твердый

Я развертывал с помощью Docker, одного и нескольких узлов, Heroku и Digital Ocean. Все это разные способы запустить ваш код в производство, но я заметил, что среди разработчиков еще нет «стандартной» практики для процесса развертывания. Лично я предпочитаю «edeliver» и небольшую машину на Digital Ocean, но мнения разные, и не все хотят использовать такие функции, как перезагрузка горячего кода (требуется дополнительное усилие, чтобы продумать вашу бизнес-логику). Так что нам как сообществу нужно улучшить этот фронт.

Тестировать - одно удовольствие

Больше нечего сказать. Просто легко, мне это нравится.

Наем трудный

Одна из самых сложных частей нынешнего сообщества Elixir, по крайней мере, в Берлине, заключается в том, что на данный момент довольно сложно нанять. Но то же самое происходит и с поиском хорошей компании для работы. Рынок небольшой и идет со всеми ограничениями корпуса. Конечно, с каждым днем ​​становится все лучше, но нам понадобится немного больше времени. Лучший способ найти разработчиков - это инвестировать в людей, которые говорят на разных языках программирования и имеют достаточно опыта, чтобы перейти на Elixir, и хотят его изучить.

Также

Сообщество потрясающее, программы не занимают много памяти, и я не понимаю, почему мы все просто не пишем программы на Erlang. Вы можете написать их, уйти на 20 лет, и они все еще будут работать. Чистая радость.

примечание: все в этом посте является личным мнением, и я не намеревался быть научным или точным, поэтому, пожалуйста, примите это во внимание, прежде чем оставлять комментарий :)

Хотите узнать больше? Подпишитесь на мою рассылку и не пропустите ни одного полезного совета по Эликсиру и функциональному программированию http://eepurl.com/gmrYKD

Github / lorenzosinisi
Twitter / lorenzosinisi

📝 Сохраните эту историю в Журнале.

👩‍💻 Просыпайтесь каждое воскресное утро и слушайте самые интересные истории из области технологий, ожидающие вас в вашем почтовом ящике. Прочтите информационный бюллетень« Примечательно в технологиях .