• Паттерн передачи scala.concurrent.Promise в актор: особенности использования и альтернативы

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


    Интересно почитать много примеров асинхронного кода на Scala, с промисами, фьючами и акторами? Добро пожаловать под кат!

    Читать дальше →
  • Как я осознал, что такое распределенные системы

    • Перевод
    Привет, Хабр!

    В скором времени у нас выходит изысканная новинка для разработчиков высшего класса — "Реактивные шаблоны проектирования".

    Автор книги Роланд Кун — звезда первой величины в области распределенных систем, один из разработчиков Akka. Под катом предлагаем перевод его программной статьи о распределенных системах и акторной модели, размещенной на сайте GitHub
    Читать дальше →
    • +14
    • 5,4k
    • 3
  • DevDay на функционале



      Планов на декабрь много: и завалы на проекте разгрести, и новогодние праздники распланировать. Если среди всей этой предновогодней беготни захотелось пищи для ума, айда к нам — 15 декабря обсудим функциональное программирование. Мы поделимся секретами написания быстрого бекенда, вместе разрушим десяток мифов о ФП и устроим холивар про будущее ФП/ООП.
      Хочу пищи для ума
    • DevDay про микросервисы. Запись лучших докладов



        В прошлую пятницу мы собрали 140 разработчиков, чтобы поговорить о микросервисах — деплое, координации, согласованности. Делимся с вами записью двух лучших, по мнению участников, выступлений.
        Смотрите, что получилось
        • +11
        • 5,3k
        • 1
      • Scala в ЕРАМ: обучение и проекты

          Scala резко стала популярной несколько лет назад. Несмотря на это, на рынке технология остается редкой: если сравнивать количество вакансий для Scala-разработчиков и, например, тех, кто пишет на Java или Python, становится ясно – у первых выбор не так велик. Но это говорит и о том, что хорошие Scala-разработчики – на вес золота.

          В ЕРАМ таких специалистов пока немного, но потребность растет: у нас появляется больше Scala-проектов. Мы даже открыли лабораторию по Scala в Петербурге, где сами учим разработчиков почти с нуля. Как туда попасть, кто осваивает Scala в ЕРАМ и какие проекты мы делаем – под катом.


          Читать дальше →
        • Паттерн Model-Update-View и зависимые типы



            Model-Updater-View — функциональный паттерн, успешно применяемый в языке Elm в основном для разработки пользовательских интерфейсов. Что бы им воспользоваться надо создать тип Model, представляющий полное состояние программы, тип Message, описывающий события внешней среды, на которые программа должна реагировать, меняя свое состояние, функцию updater, которая из старого состояния и сообщения создает новое состояние прораммы и функции view, которая вычисляет по состоянию программы требуемые воздействия на внешнюю среду, которые порождают события типа Message. Паттерн очень удобный, но у него есть маленький недостаток — он не позволяет описать какие события имеют смысл для конкретных состояний программы.

            Схожая проблема возникает (и решается) и при использовании ОО-паттерна State.

            Язык Elm простой, но очень строгий — он проверяет, что функция updater хоть как-то обрабатывает все возможные сочетания модели-состояние и сообщения-события. По этому приходится писать лишний, пусть и тривиальный — как правило оставляющий модель без изменений, код. Я хочу продемонстрировать, как этого можно избежать в более сложных языках — Idris, Scala, C++ и Haskell.
            Читать дальше →
            • +16
            • 4,8k
            • 2
          • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

            Подробнее
            Реклама
          • Микросервисы: деплой, координация и согласованность данных



              Про микросервисы не рассказывал только ленивый. Вот и мы не ленивые. Решили поговорить о микросервисах. Но только не ещё раз о том, что это такое, а о том, как мы их сервируем в 2ГИС. Например, наши бекенды держат 15 млн пользователей в месяц. На встрече поговорим о деплое, координации и согласованности данных.
              Подробности про DevDay
              • +13
              • 8,7k
              • 9
            • DEV Labs 2017. Онлайн-митап по разработке на Scala. 25 ноября

              Продолжаем экспериментировать с форматами и темами мероприятий Soft Labs. 25 ноября приглашаем всех желающих на открытый митап посвящённый разработке на Scala. Поговорим об этом языке в исторической перспективе, а также рассмотрим несколько примеров его использования для решения актуальных задач.

              В программе мероприятия два выступления:

              «Язык Scala: прошлое, настоящее и будущее». Докладчик — Владимир Сонькин

              Поговорим о причинах появления языка Scala и о его влиянии на развитие индустрии и на язык Java. Затронем самые важные технологии, создаваемые с помощью Scala, такие как Akka и Spark. Посмотрим на проблемы языка и поговорим о том, как эти проблемы могут быть решены в следующей версии языка Scala 3 (Dotty). Обсудим перспективы языка Scala в будущем.


              «Scala, SQL и NoSQL: старый друг лучше новых двух»? Докладчик — Александр Брейман

              Кому доверить свои ценные данные – проверенной реляционной БД или современной «web-scale» БД? Как обрабатывать данные – на сервере, на клиенте, и на сервере, и на клиенте, или ни там, ни там? Если выбор сделан, можно ли передумать, когда половина проекта уже разработана? И кто из этой тройки тот старый друг, который лучше новых двух?
              Читать дальше →
            • Глобальная теплокарта Strava: теперь в 6 раз горячее

              • Перевод
              Рад объявить о первом крупном обновлении глобальной тепловой карты в Strava Labs c 2015 года. Это обновление включает в себя в шесть раз больше данных, чем раньше —  в сумме 1 миллиард активностей со всей базы Strava по сентябрь 2017 года.

              Наша глобальная теплокарта — самая крупная и подробная, и это самый прекрасный в мире набор данных такого рода. Это прямая визуализация активностей глобальной сети атлетов Strava. Чтобы дать представление о масштабе, то новая теплокарта включает в себя:

              • 1 миллиард активностей
              • 3 триллиона точек долготы/широты
              • 13 триллионов пикселей после растрирования
              • 10 терабайт исходных данных
              • Общая дистанция маршрутов: 27 миллиардов километров
              • Запись общего времени активности: 200 тысяч лет
              • 5% земной суши покрыто тайлами


              Тепловая карта Москвы демонстрирует функцию поворота/наклона в Mapbox GL
              Читать дальше →
            • Книга «Scala. Профессиональное программирование»

                image Привет, Хаброжители! Наконец-то мы можем предложить вам результаты титанического труда наших переводчиков и редакторов – долгожданное классическое издание по языку Scala. Все, кому известна аббревиатура JVM и не чуждо функциональное программирование, несомненно, оценят эту книгу (переоценить ее невозможно). Основной автор этого фолианта — Мартин Одерски, разработчик и идеолог языка Scala, стоявший у самых его истоков. Эта книга станет незаменимым приобретением для всех серьезных специалистов, имеющих опыт работы с Java и JVM. Авторы преследовали цель научить читателя всему необходимому, чтобы уверенно писать на языке Scala работоспособные и даже боеспособные приложения. Все примеры в издании скомпилированы с использованием Scala версии 2.11.7, за исключением тех, что имеют пометку 2.12, — они скомпилированы с использованием версии 2.12.0-M3

                Читать дальше →
              Самое читаемое