Эдуард Клементьев «Использование Scala для backend задач»
Upcoming SlideShare
Loading in...5
×
 

Эдуард Клементьев «Использование Scala для backend задач»

on

  • 1,921 views

 

Statistics

Views

Total Views
1,921
Views on SlideShare
863
Embed Views
1,058

Actions

Likes
0
Downloads
3
Comments
0

3 Embeds 1,058

http://www.e-legion.ru 1056
http://www.e-legion.com 1
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Эдуард Клементьев «Использование Scala для backend задач» Эдуард Клементьев «Использование Scala для backend задач» Presentation Transcript

  • Использование scalaдля backend задач.
    Эдуард Клементьев
    eklementiev@gmail.com
    GGA Software Services
  • Проект: iamscientist.com
    Научная социальная сеть
    Цели: создание научного сообщества онлайн, быстрый поиск экспертов
    Задачи: агрегация и кластеризация контента о научных публикациях
  • Где используется scala.
    Импортеры raw данных.
    Обработка: валидация, кластеризация профайлов (работа с векторами), определение уникальных статей и слияние, построение полнотекстовых индексов.
    Импортеры в базы данных. Mongodb, Solr.
  • Почему scala?
    Scalavs Ruby
    Scalavs Java
  • Почему не ruby?
    Производительность
    Отсутствие статической проверки типов
    Отсутствие нормальной поддержки параллельного программирования
  • Почему не java?
    Громоздкий код
    Отсутствиемножества фич, которые делают разработку приятней и код более читаемым (closures, mixins,implicit conversions, …)
  • Scala
    Выполняется также быстро как и java(jvm)
    Код такой же компактный как и на ruby
    Статическая проверка типов
    Программирование в функциональном стиле
    Параллельное программирование
  • Архитектура.
    S3
    Mongodb
    S3
    Web applications
    and services
    Importer
    Raw data
    Workers on ec2 cloud
  • Приложение
    Интерфейс командной строки
    Deployment: capistrano
    Задачи раздаются с помощьюэкторов.
    Для некоторых задач используется hadoop.
  • Concurrency
    Actors from scala standard library
    Akkaactors
  • Concurrency
    Amazon ec2 nodes
    Master
    Do some job
    Scala daemons
    s3
    EC2
  • Сборка проекта
    Sbt: simple build tool
    Convention over configuration
    Scala DSL для конфигурования
    Загрузка зависимостей из maven репозиториев
  • Teстирование
    Scala specs (порт rspecдля scala)
    Internal DSL для написания тестов.
  • Работа с jsonи mongodb.
    Json: org.json (java)
    Mongodb (bson): java driver
    Обертки на скала для преобразования в нативные коллекции
  • Спасибо за внимание.Вопросы?