Компания Typeable временно не ведёт блог на Хабре
Зачем мы транспилируем Haskell в JavaScript
Привет, Хабр! Сегодня мы расскажем, почему мы пишем фронтенд на Haskell и компилируем его в JavaScript. Вообще говоря, подобный процесс называется транспиляцией:
Транспиляция — это процесс преобразования программы на языке X в эквивалентную программу на языке Y. В отличие от компиляции, языки X и Y находятся примерно на одном и том же уровне абстракции.
Язык моделирования Alloy и приключения с параллельными запросами к базе данных
Данная статья описывает небольшой пример того, как использование языка моделирования Alloy может помочь при разработке программного обеспечения.
О качестве программного обеспечения и инструментарии
В Typeable мы придаем огромное значение качеству программного обеспечения и прикладываем все усилия, чтобы обеспечить это качество. В настоящее время мы искореняем ошибки следующими способами:
- Анализ и создание спецификаций
- Устранение простых ошибок с использованием системы типов Haskell
- Стандартные юнит-тесты и интеграционные тесты
- Непрерывная интеграция
- Обязательные ревью кода
- Тестирование на стендах, проводимое QA инженерами
(мы используем Octopod для оптимизации процесса разработки и QA) - Тестирование в pre-production среде
- Ведение логов и контроль ошибок на этапе эксплуатации
Такое большое число шагов обеспечивает высокое качество кода, но при этом сказывается на затратах. Для выполнения этих шагов нужно и время, и труд.
Сравнение Elm и Reflex
Введение
В этой статье мы поговорим о двух принципиально разных подходах к реактивному программированию.
Elm, в отличие от Reflex — это целый язык, а не библиотека, поэтому сравнивать их не очень корректно. Тем не менее, можно показать разницу между подходами, а также рассказать, какие практические трудности могут возникнуть при разработке с использованием каждой из технологий.
Создаем веб-приложение на Haskell с использованием Reflex. Часть 1
Введение
Всем привет! Меня зовут Никита, и мы в Typeable для разработки фронтенда для части проектов используем FRP-подход, а конкретно его реализацию на Haskell – веб-фреймоворк reflex
. На русскоязычных ресурсах отсутствуют какие-либо руководства по данному фреймворку (да и в англоязычном интернете их не так много), и мы решили это немного исправить.
В этой серии статей будет рассмотрено создание веб-приложения на Haskell с использованием платформы reflex-platform
. reflex-platform
предоставляет пакеты reflex
и reflex-dom
. Пакет reflex
является реализацией Functional reactive programming (FRP) на языке Haskell. В библиотеке reflex-dom
содержится большое число функций, классов и типов для работы с DOM
. Эти пакеты разделены, т.к. FRP-подход можно использовать не только в веб-разработке. Разрабатывать мы будем приложение Todo List
, которое позволяет выполнять различные манипуляции со списком задач.
Сильные стороны функционального программирования
Привет! Меня зовут Катерина, и я испытываю самые тёплые чувства к функциональному программированию, использую функциональный язык на постоянной основе и даже немного преподаю.
Основной язык разработки у нас в Typeable — Haskell, и, пока все спорили о том, готов ли Haskell для продакшена, мы просто его использовали и считали конкурентным преимуществом. Нам хотелось бы поделиться своим мнением, основанным на этом опыте.
Параллельные вселенные для вашего CI/CD пайплайна в Octopod
Как мы строили параллельные вселенные для нашего (и вашего) CI/CD пайплайна в Octopod
Привет, Хабр! Меня зовут Денис и я вам расскажу как нас надоумило сделать техническое решение для оптимизации процесса разработки и QA у себя в Typeable. Началось с общего ощущения, что вроде делаем все правильно, но все равно можно было бы двигаться быстрее и эффективнее — принимать новые задачки, тестировать, меньше синхронизироваться. Это все нас привело к дискуссиям и экспериментам, результатом которых стало наше open-source решение, которое я опишу ниже и которое теперь доступно и вам.