Рубрика «scala» - 9

Существует миф, что банки — это очень закостенелые структуры, в которых нет места эксперименту. Чтобы опровергнуть этот миф, мы провели небольшое интервью с Валерием Выборновым — начальником отдела разработки лабораторного кластера супермассивов в Сбербанк-Технологиях. У себя в команде они не боятся пользоваться всей мощью Scala, Akka, Hadoop, Spark, и даже пишут прототипы на Rust.

«Придётся писать самим. Сели и написали»: жизнь разработчиков лабораторного кластера супермассивов в Сбертехе - 1

Основные вопросы:

  • Обсуждение примера экспериментального проекта (работа с социальным графом) с техническими подробностями;
  • Используемые языки и технологии (Scala, Akka, Hadoop, Spark, Rust, и т.п.);
  • Можно ли прийти в Сбертех сразу на руководящую должность? Как там внутри всё организовано, какие есть грейды?
  • Как живётся простому разработчику? Подробности внедрения Сберджайла;

Читать полностью »

Недели две назад InfoQ напомнил, что официальная поддержка Java 9 заканчивается… в Марте 2018г. (т.е. через 20 дней :)

Вот cсылка на официальный EOL от Oracle, в которой в разделе "Java SE Public Updates" черным по английскому говорится, что Java 9 будет поддерживаться до Марта 2018, а Java 8до Января 2019 (или позже) и Декабря 2020 (или позже).

Читать полностью »

Закончив очередной проект на Java, я попытался разобраться в причинах накопившегося раздражения. Да я люблю Яву и все такое, но… Есть несколько «но», которые досаждают. Приходится писать довольно много шаблонного кода, с генерацией которого вполне может справиться сам компилятор, IDE, конечно, выручает, но это не решение проблемы, а скорее костыль: если что-то изменилось, нужно перегенерить и вычистить и т.д. Проверки на null! Это зубная боль, по-хорошему, нужно делать их всегда дабы не нарваться на «нежданчик» в виде NullPointerException в самый неподходящий момент. Короче говоря, появилось желание посмотреть, что еще появилось в природе и сможет ли это нечто заменить мне Java. Дальше имеет смысл описать участников данного сравнения. Сразу скажу, что не претендую на полноту анализа, к сожалению, у меня было слишком мало времени, чтобы как следует познакомиться с каждым языком.

Обязательные требования к претендентам, которые у меня были:

• Язык общего назначения
• Кроссплатформенность (хотя бы Windows/Linux)
• Стабильность
• Статическая типизация
• Автоматическая уборка памяти
• Поддержка полноценной объектно-ориентированной парадигмы
• Хорошая поддержка в IDE (Eclipse, IDEA или на худой конец NetBeans)
• Безгемморойный доступ к существующим фреймворкам/библиотекам
• Производительность на уровне Java
Читать полностью »

Приветствую! В этой статье будет показан алгоритм поиска ближайших к заданному слов из корпуса в терминах метрики Левенштейна. Наивным spellchecking-ом назван потому, что не учитывает ни морфологии, ни контекста, ни вероятности появления скорректированного слова в предложении, однако в качестве первого приближения сойдет вполне. Также алгоритм может быть расширен на поиск ближайших последовательностей из любых других сравнимых объектов, нежели простой алфавит из Char-ов, и, после допиливания напильником, его можно приспособить и для учета вероятностей появления скорректированных слов. Но в данной статье сосредоточимся на базовом алгоритме для слов определенного алфавита, скажем, английского.

Код в статье будет на Scala.

Всех заинтересовавшихся прошу под кат.
Читать полностью »

Статья публикуется от имени Сергея Масленникова, sergeymasle

Gatling

Продолжаем цикл статей про нагрузочное тестирование на фреймворке gatling.io. В этой статье расскажем про основные приемы использования Gatling DSL, которые в большинстве случаев используются при разработке любых скриптов нагрузочного тестирования. Итак, прошу под кат.

Читать полностью »

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

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

Читать полностью »

Как я осознал, что такое распределенные системы - 1 Привет!

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

Автор книги Роланд Кун — звезда первой величины в области распределенных систем, один из разработчиков Akka. Под катом предлагаем перевод его программной статьи о распределенных системах и акторной модели, размещенной на сайте GitHub
Читать полностью »

DevDay на функционале - 1

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

DevDay про микросервисы. Запись лучших докладов - 1

В прошлую пятницу мы собрали 140 разработчиков, чтобы поговорить о микросервисах — деплое, координации, согласованности. Делимся с вами записью двух лучших, по мнению участников, выступлений.
Читать полностью »

Паттерн Model-Update-View и зависимые типы - 1

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

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js