Как стать автором
Обновить

Инструменты разработчика на языке Elm

Разработка веб-сайтов *JavaScript *Функциональное программирование *Elm *
Tutorial

С момента публикации статьи Основы разработки на языке Elm (руководство по инструментарию для начинающих) прошло полтора года. За это время в инструментарии для языка разработки веб-интерфейсов Elm произошли многочисленные изменения: появилась более удобная система сборки с возможностью генерации нового проекта; для редактора Atom набор дополнений в некоторых отношениях теперь лучше, чем для популярного тогда среди разработчиков на Elm редактора LightTable; заработал инспектор состояния приложения. Давайте пройдёмся по этому набору на простом примере.


Инструменты разработчика на языке Elm: обложка

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 7.8K
Комментарии 11

Основы разработки на языке Elm (руководство по инструментарию для начинающих)

Разработка веб-сайтов *JavaScript *Функциональное программирование *Elm *
Tutorial

От автора: вместо этой статьи рекомендую прочитать более актуальную Инструменты разработчика на языке Elm.


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


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


LightTable с запущенным приложением на Elm

Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 22K
Комментарии 13

Сравнение Elm и Reflex

Блог компании Typeable Программирование *Haskell *Функциональное программирование *Elm *

Введение


В этой статье мы поговорим о двух принципиально разных подходах к реактивному программированию.


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

Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 3K
Комментарии 2

Приложение на Elm за считанные секунды

JavaScript *Функциональное программирование *
Из песочницы

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


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



Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Просмотры 13K
Комментарии 6

Elm. Удобный и неловкий

JavaScript *Elm *

Поговорим о Elm.


Elm — функциональный язык программирования для frontend-разработки. Синтаксис похож на Haskell, но значительно упрощен и специализирован. Исходный код на Elm компилируется в нативный JavaScript. Скомпилированный JavaScript содержит код приложения, которое управляют поддеревом DOM.

Читать дальше →
Всего голосов 18: ↑14 и ↓4 +10
Просмотры 20K
Комментарии 8

Как я писал приложение на Elm

Разработка веб-сайтов *JavaScript *Функциональное программирование *

Если вы совсем не знакомы с Elm, то, если вкратце, это функциональный язык программирования и платформа для написания web-приложений. Код, написанный на Elm, компилируется в JavaScript и встраивается на страницу. Более подробно про основы можно почитать например здесь на Хабре или же просто на официальном сайте . Я же хотел суммировать свой опыт, который получил, написав своё первое приложение, поэтому в статье будет большое число очевидных вещей, чуть-чуть неочевидных и много ссылок.

Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 15K
Комментарии 37

Elm или функциональное программирование для веб, понятное чайнику

Разработка веб-сайтов *Функциональное программирование *
Недавно, просматривая интересные репозитории на github в поисках вдохновения я наткнулся на проект Elm — функциональный реактивный язык программирования, созданный для веб, потомок ML и Haskell. У меня нет большого опыта в функциональном программировании, но посмотрев посадочную страницу, я увлекся этим творением на несколько часов, позабыв о работе и окружающем мире. Меня сразу вдохновила та простота, которая, как мне казалось раньше не присуща функциональным языкам программирования.
Еще раз повторюсь, что я не силен в функциональном программировании, плохо знаком с математическими концепциями, на которых оно строится и изучению Elm удлелил, пока что, не очень много времени. Я считаю, что лучше бы эту статью написал кто-то другой, более осведомленный, но, таковых не нашлось, а до тех пор, я решил возложить эту ношу на себя, быть может, моя статья поможет кому-то открыть для себя прелести функционального программирования для веб, или по новому взглянуть на, казалось бы привычные вещи. Большинство материалов, представленных в статье взяты из официальной документации и переведены в довольно свободной форме. Всех страждующих, прошу под кат.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Просмотры 32K
Комментарии 22

Elm. Удобный и неловкий. Композиция

JavaScript *Elm *

Продолжим говорить о Elm 0.18.


Elm. Удобный и неловкий
Elm. Удобный и неловкий. Json.Encoder и Json.Decoder
Elm. Удобный и неловкий. Http, Task


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


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

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 3.9K
Комментарии 3

Разбираем ELM архитектуру в рамках мобильного приложения

Блог компании Vivid Money Программирование *Проектирование и рефакторинг *Разработка под Android *Kotlin *

Это вторая часть серии статей об архитектуре android приложения vivid.money. В ней мы расскажем в деталях о том, что из себя представляет ELM архитектура. В связи с тем, что наша реализация доступна в open source в качестве библиотеки Elmslie, в статье будет использоваться нейминг из нее.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 6.4K
Комментарии 9

ROS, ELM и черепашка

Разработка веб-сайтов *Функциональное программирование *Разработка робототехники *Разработка для интернета вещей *Elm *
Robotic Operation System позволяет взаимодействовать своим подсистемам по механизмам «подписка на топик» и «вызов сервиса» по своему специальному протоколу. Но есть пакет rosbridge, который позволяет общаться с ROS извне с помощью websocket. Описанный протокол позволяет выполнять основные операции по взаимодействию с другими подсистемами.

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

Я решил совместить приятное с полезным и изучать ROS (по которой сейчас идет курс) и ELM вместе.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 5.3K
Комментарии 5

Elm. Удобный и неловкий. Json.Encoder и Json.Decoder

JavaScript *Elm *

Продолжим говорить о Elm 0.18.


Elm. Удобный и неловкий
Elm. Удобный и неловкий. Композиция
Elm. Удобный и неловкий. Http, Task


В этой статье рассмотрим вопросы энкодеров/декодеров.


Декодеры/энкодеры используются для:


  1. преобразование ответов от сторонних ресурсов (Http, WebSocket и прочее);
  2. взаимодействия через порты. Подробнее про порты и нативный код расскажу в следующих статьях.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 4.4K
Комментарии 5

Elm. Удобный и неловкий. Http, Task

JavaScript *Elm *

Продолжим говорить о Elm 0.18.


Elm. Удобный и неловкий
Elm. Удобный и неловкий. Композиция
Elm. Удобный и неловкий. Json.Encoder и Json.Decoder


В этой статье рассмотрим вопросы взаимодействия с серверной частью.

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 4.2K
Комментарии 0

Боремся со слишком большими Msg в Elm приложениях

Разработка веб-сайтов *Программирование *Функциональное программирование *Elm *
Tutorial

Согласно Elm Architecture, вся логика приложения сконцентрирована в одном месте. Это довольно простой и удобный подход, но с ростом приложения можно увидеть функцию update длиной 700 строк, Msg с сотней конструкторов и Model, не умещающуюся в экран.


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

Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 1.5K
Комментарии 5

Побеждаем ELMS Delivery Client

Софт
Сначала объясню, о чем речь.
Что такое ELMS? ELMS (e-academy License Management System) — это веб-сайт для распространения ПО, который каждый администратор программы может настроить в соответствии с потребностями своего подразделения. Факультеты-подписчики MSDN Academic Alliance всего мира могут пользоваться ELMS бесплатно, так что ее использование не приведет к дополнительным затратам.

Зачем нужна ELMS? ELMS — это основанная на веб-технологиях система управления, упрощающая распространение ПО среди студентов в соответствии с политикой лицензирования программы MSDN AA.
Ссылка

Основная идея этой системы заключается о том, что пользователь скачивает специальное приложение, которое скачивает установщик лицензионного ПО и разархивирует его. Идея не так чтобы очень хорошая, но на первый взгляд терпимая. Но, как это часто бывает с продуктами Microsoft, всё пошло не так, как надо.
Читать дальше →
Всего голосов 19: ↑15 и ↓4 +11
Просмотры 921
Комментарии 4

Пять перспективных языков программирования со светлым будущим

Разработка веб-сайтов *Программирование *Функциональное программирование *Rust *Elixir/Phoenix *
Перевод

КДПВ


Если разделять языки программирования по популярности, то они делятся на три эшелона. Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, PHP, C#, C++ и Objective-C. Несмотря на то, что некоторые из ведущих языков возможно увядают, вам лучше знать один или несколько из них, если вы хотите иметь возможность легко найти работу.


Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Scala, Go, Swift, Clojure и Haskell — языки, которые я бы отнёс ко второму эшелону. Некоторые компании используют эти языки для отдельных сервисов, но широкое применение встречается редко (за исключением Swift, который начинает обгонять Objective-C в качестве основного языка для iOS). Go и Swift имеют хорошие шансы на переход из второго эшелона в первый в течение ближайших двух-трёх лет.


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


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


Читать дальше →
Всего голосов 77: ↑67 и ↓10 +57
Просмотры 150K
Комментарии 146

Как мы выбрали архитектуру слоя представления на новом проекте и не прогадали

Блог компании Vivid Money Разработка мобильных приложений *Проектирование и рефакторинг *Разработка под Android *Kotlin *

Всем привет! Меня зовут Даниил Климчук. Год назад я пришел в vivid.money третьим Android-разработчиком. Несмотря на это, в проекте практически не было кода, а первые фичи только начинали разрабатываться. Нам нужно было запустить новое банковское приложение в европе, где придется конкурировать с такими компаниями, как Revolut. Уже тогда было понятно, что команда очень быстро значительно вырастет. Конечно, стоило сразу задуматься о том, как будет развиваться архитектура проекта. Через год, когда проект запустится, на это не останется времени, а оправданий вносить значительные изменения просто не будет. Одним из ключевых решений на начальном этапе стал выбор архитектуры слоя представления. В этой статье я поделюсь тем, как мы его принимали.

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 8.5K
Комментарии 9

Как работает Автотрекинг

Разработка веб-сайтов *JavaScript *Программирование *ReactJS *Ember.js *
Перевод

Это пост - третий из серии постов об автотрекинге - новой системе реактивности Ember.js. В этой серии я также обсуждаю общие принципы реактивности и то, как они проявляются в мире Javascript. (Прим пер.: ссылки на переводы предыдущих двух: 1. Что такое реактивность? 2.Что делает реактивную систему хорошей? )

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.4K
Комментарии 0

Что делает реактивную систему хорошей?

Разработка веб-сайтов *JavaScript *Программирование *ReactJS *Ember.js *
Перевод

Этот пост является вторым в серии статей об авто-трекинге — новой системе реактивности в Ember.js. Я также обсуждаю концепцию реактивности в целом, и как она проявляется в JavaScript.


От переводчика: Крис Гарретт — работает в компании LinkedIn и является одним из core-контрибьюторов js-фреймворка Ember. Он принимал активное участие в создании нового издания фреймворка — Ember Octane. Одним из краеугольных камней этой редакции является новая система реактивности на основе автоматического отслеживания (autotracking). Несмотря на то, что его серия написана для Ember-разработчиков в ней затрагиваются концепции, которые полезно знать всем веб-программистам.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 5.6K
Комментарии 1

Пять перспективных языков программирования со светлым будущим (3 года спустя)

Разработка веб-сайтов *Программирование *Rust *Kotlin *Elixir/Phoenix *

КДПВ


В 2016-м году я опубликовал перевод статьи про 5 перспективных языков программирования, в которой прогнозировался их рост в ближайшие 2-3 года.
Зачастую прогнозы так и остаются прогнозами, без последующего анализа. Но я решил, что это непорядок. И посколько 3 года уже пролетели, пора подвести промежуточные итоги и посмотреть, что произошло с этими языками за это время.


Однако, прежде чем мы перейдём к пятёрке наших героев, хочется уделить немного внимания предсказанному в той же статье переходу Swift и Go из второго эшелона в первый.


про эшелоны

В исходной статье языки программирования условно делятся на 3 эшелона по популярности.
Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, C# и т.д.
Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Большинство языков в первом эшелоне прочно укоренились на своих позициях. Поэтому выпадение языка с лидирующих позиций занимает ощутимое время, а для языка второго эшелона очень трудно пробиться в первый.
К третьему эшелону относятся непопулярные языки, а также относительно новые перспективные языки (о которых пойдёт речь), которые только начинают свой путь наверх. Некоторые языки пребывают в третьем эшелоне на протяжении многих лет, не получая популярности, в то время как другие врываются на сцену всего за пару лет.

Читать дальше →
Всего голосов 70: ↑64 и ↓6 +58
Просмотры 69K
Комментарии 154

Пишем под android с Elmslie

Блог компании Vivid Money Программирование *Проектирование и рефакторинг *Разработка под Android *Kotlin *
Tutorial

Это третья часть серии статей об архитектуре android приложения vivid.money. В ней мы расскажем об Elmslie - библиотеке для написания кода под android с использованияем ELM архитектуры. Мы назвали ее в честь Джорджа Эльмсли, шотландского архитектора. С сегодняшнего дня она доступна в open source. Это реализация TEA/ELM архитектуры на kotlin поддержкой android. В первой статье мы рассказали о том почему выбрали ELM. Перед прочтением этой статьи лучше ознакомиться как минимум со второй частью, в которой мы более подробно рассказывали том собственно такое ELM.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 3.4K
Комментарии 4