Движение к функциональному программированию началось всерьез примерно десятилетие назад. Мы видели как такие языки как Scala, Clojure и F# стали привлекать внимание. Это движение было больше чем просто обычное восхищение «О, круто, новый язык!». Было что-то действительно побуждающее это движение — или мы так думали.
Рубрика «clojure» - 3
Прагматичное функциональное программирование
2017-08-18 в 9:55, admin, рубрики: clojure, functional programming, uncle bob, Совершенный код, функциональное программированиеЗаклиная техническое интервью
2017-04-18 в 7:00, admin, рубрики: aphyr, clojure, java, jvm, Алгоритмы, прекрасное, функциональное программированиеПеревод (возможно лучшей) статьи Aphyr.
Давным-давно, на Шпицбергене, когда ты была юной ведьмочкой всего сорока трех лет, мама взяла в свои ладони твои еще не покрытые шрамами руки, и сказала:
Видрун, зачатая от морских ветров в верхушках елей,
Видрун, зелень моих ветвей, радость и ноша моих дней,
Видрун, всех вдохновенней и умней, да станет мудрость нашего клана твоей:Никогда не читай Hacker News
Готовим многопоточность с core.async
2016-10-15 в 17:36, admin, рубрики: clojure, clojurescript, javascript, многопоточность, функциональное программирование
Всё больше набирает популярность паттерн использование каналов при создании
многопоточных приложений. Идея не нова, ее дизайн заложен ещё в далёком 1978 году
в виде CSP.Наиболее известная реализация сейчас повсеместно используется в Golang.
Мы же в статье рассмотрим реализацию CSP в core.async для Clojure, если интересно, добро пожаловать под кат.
Организация роутинга в clojure веб-приложении
2016-10-03 в 7:39, admin, рубрики: clojure, rest, routing, Проектирование и рефакторинг, Разработка веб-сайтов, функциональное программированиеСуществуют библиотеки на различных языках, имеющие общие черты. Это compojure, sinatra, grape, express, koa и подобные.
У них схожий подход к роутингу. Они не накладывают никаких ограничений и не предлагают структуру для организации url. Разработчики в таких условиях склонны не заботиться о структуре и впоследствии получают плохо поддерживаемый код.
Другая общая черта — это однонаправленность. Т.е. определенному запросу соответствует определенный обработчик. Разработчики вынуждены прописывать url строками в шаблонах. Нет возможности указать в виде конструкции языка, какой url сгенерировать. Это приводит к тому, что в представлениях остаются мертвые ссылки, и нет способа найти их, кроме как протыкать все страницы.
Я расскажу, как улучшить поддерживаемость кода в экосистеме Clojure, и покажу, как:
- организовать url'ы
- структурировать код обработчиков
- использовать языковые конструкции для генерации url
Мир не идеален
2016-09-01 в 15:32, admin, рубрики: Amazon Web Services, AWS, aws lambda, clojure, monitoring, функциональное программирование
Мир не идеален. В любой момент что-то может пойти не так. К счастью, большинство из нас не запускает ракеты в космос и не строит самолеты. Современный человек зависит от приложения в его телефоне и наша задача, сделать так, что бы в любой момент времени при любом стечении обстоятельств, он мог открыть приложеньку и посмотреть картинки с котиками.
Читать полностью »
Переписываем сценарии тестирования на Clojure за 24 часа
2016-08-29 в 9:25, admin, рубрики: clojure, тестирование, Тестирование IT-систем, функциональное программированиеПредлагаю читателям «Хабрахабра» вольный перевод статьи «Rewriting Your Test Suite in Clojure in 24 hours» от основателя CircleCI.

Эта история о том, как я написал компилятор для автоматической трансляции комплекта тестов CircleCI (14000 строк), в другую библиотеку тестирования за 24 часа.Читать полностью »
Как Clojure помогает ускорить написание Selenium-тестов
2016-08-22 в 14:14, admin, рубрики: clojure, selenium, вискас, Разработка веб-сайтов, Тестирование веб-сервисов, функциональное программирование Привет, читатель! Если доводилось писать Selenuim-тесты чуть сложнее чем на пару полей ввода и одну кнопку, то эта статья может пригодиться.
Наверняка знакомо чувство неправильности происходящего, когда внезапно отказывался работать тест-кейс длиной в пару минут, вынуждая тыкаться вслепую, чтобы найти поломавшийся css- или xpath-селектор в сложном Single Page Application, раз за разом запуская этот медленный сценарий, только чтобы дождаться вывода лога в консоль. Оказывается, можно писать Selenium-тесты с комфортом!
Про Selenium. Когда-то это был просто плагин для FireFox. Нажимаешь кнопочку "запись", и начинаешь дергать интерфейсы тестируемого сайта (формочки, ссылки). Практически без знания программирования, полученный сценарий можно править, подставляя нужные значения проверок. Всё — тест готов! Запускай каждый раз после деплоя, и проверяй, чего сдвинул локтем. Потом в Selenium добавили API для разных языков. В частности есть и для JAVA. Через API можно делать тоже самое: запускать браузер с требуемым сайтом, проверять переданные значения в формах, ходить по ссылкам и т.д. Беда в том, что скрипт выполняется медленно. Чтобы тестировать тесты, надо перезапускать сценарий, а это форменная пытка. Clojure (поверх JAVA) позволяет выполнять куски кода в работающей программе посредством REPL прямо в редакторе!
Материалы курсов по Clojure
2016-07-12 в 18:57, admin, рубрики: clojure, clojurescript, вискас, Разработка веб-сайтов, функциональное программированиеВ 2014 году группа профессиональных разработчиков на Clojure под руководством Дмитрия Бушенко провела первые и единственные онлайн-курсы по языку Clojure на русском языке.
Специально для курса мы записали 71 оригинальное видео общей продолжительностью 17 часов 25 минут и 44 секунды. Курс пользовался успехом — пришло более 200 человек, но материалы в открытом доступе не публиковались.
Этот сайт — те самые материалы.
Данные на фронтенде: шаг к приложениям будущего
2016-05-13 в 13:55, admin, рубрики: clojure, datascript, javascript, Блог компании JUG.ru Group, данные на фронтенде, данные приложения, Клиентская оптимизация, Разработка веб-сайтов, фронтенд, хранение данныхКлиент-серверная архитектура для разработчиков веб-приложений — это примерно как одна из черепах, на которой стоял мир в воззрениях наших предков. Трудно себе представить иное положение вещей. Однако бесчисленное количество веб-приложений сформировало новую потребность — управление данными на фронтенде. Пока нет единого подхода и реализации, есть только отдельные технологии, позволяющие работать с данными на клиенте. Да и с ними никто особо не заморачивается. А между прочим, пора. О том, что уже есть в плане работы с данными на фронтенде и что будет дальше, мы поговорили с Никитой Прокоповым aka tonsky.
Введение в Riemann: мониторинг и анализ событий
2016-04-15 в 8:39, admin, рубрики: clojure, riemann, selectel, Блог компании Селектел, метрики, селектел, системное администрирование, события, метки: riemann
В предыдущих статьях мы уже не раз затрагивали проблематику мониторинга, сбора и
хранения метрик (см., например, здесь и здесь). Сегодня мы хотели бы снова вернуться к этой теме и рассказать о необычном, но весьма интересном инструменте — Riemann.
Читать полностью »