• Scala Moscow User Group, встреча 14 марта 2014

      В прошлый раз мы провели ознакомительную встречу. Собралось около 25 человек, мы узнали кто в Москве занимается разработкой на Scala и какие есть интересные проекты. Главной темой выбрали курс по реактивному программированию на Coursera, который как раз тогда подходил к концу.

      В этот раз мы соберёмся послушать и обсудить два доклада:
      1. Алексей Иванов приедет из Питера и расскажет доклад «Monadic Bakery with Spray and Scalaz»,
        про то почему Spray и ScalaZ — не страшные звери, а хорошие друзья;
      2. Владимир Успенский расскажет про теорию типов и тем, как она связана с обычной разработкой в докладе:
        «Теория типов, или как мы занимаемся математикой, программируя на Scala».

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


      Узнать, как прийти на встречу
    • Principles of Reactive Programming в Москве

        Дорогие коллеги и энтузиасты разработки на Scala!

        Скоро заканчивается курс по основам реактивного программирования на coursera.org. Все лекции опубликованы, и задания уже ждут последних сроков.

        Курс оставил много впечатлений и вопросов, многие вещи ещё хочется обсудить. Давайте соберёмся, посмотрим вместе последние лекции о scalability, responsiveness и несколько других на выбор, а после обсудим, как лучше всего впустить реактивность в нашу жизнь.

        Чай, кофе и печеньки, разумеется, будут.

        Для начала количество участников будет довольно ограничено,
        пишите мне на почту v.uspenskiy@tcsbank.ru, постараемся все уместиться.

        Будем с нетерпением ждать вас в следующий четверг 26 декабря в 20:00, в нашем офисе на водном стадионе.
        Читать дальше →
        • +15
        • 5.9k
        • 3
      • Работа с реляционными базами данных в Scala

          Добрый день, сегодня хотелось бы рассказать, как наша команда работает с базами данных. У нас в компании в основном используется Oracle и в нашей команде много людей, кто умеет хорошо его готовить. Нам изначально хотелось получить полный доступ к его возможностям: иерархическим запросам, аналитическим функциям, передаче объектов и коллекций, как параметров запросов, и, может быть, если не будет другого способа — хинтам. Модель у нас не очень сложная, поэтому сознательно отказались от ORM.

          В качестве основы взяли Apache DbUtils и сделали для него простую обёртку на Scala. Ниже я расскажу, как возможности Scala, особенно её последней версии 2.10, помогли упростить работу с базой данных.

          А пытливых читателей, кто дочитает до конца, ждёт сюрприз.
          Читать дальше →
        • Scala WAT: Коллекции

          • Tutorial
          В прошлый раз мы разбирались с обработкой опциональных значений, выяснилось, что неправильно воспользовавшись элегантными средствами библиотеки Scala, можно продолжать стрелять себе по ногам.

          В этот раз перейдём к коллекциям. Стандартная библиотека для коллекций в Scala настолько богата, что может предложить готовые методы даже для самых требовательных разработчиков. В каких случая применять какие методы обычно не описывается и всё познаётся на опыте. Обычно, в начале все узнают filter и map, на этом дело может ограничиться, ведь с определённой фантазией можно реализовать множество алгоритмов только на этих функциях. Однако, эти способы могут быть неоптимальны или рождать невозможные для предметной области результаты, которые, однако же, придётся обработать.

          Ниже мы обсудим, какие функции стандартной библиотеки часто используются неправильно и что можно улучшить.
          Читать дальше →
          • +34
          • 15.8k
          • 5
        • Scala WAT: Обработка опциональных значений

            В сети и на Хабре уже довольно много статей вводного уровня про то, как начать писать на Scala, и раскрывающих особенности функционального подхода.

            Какое-то время назад мы полностью перевели на Scala один из основных для веба проектов. За это время я наблюдал эволюцию разработчиков, включая свою собственную, и у меня скопился объёмный список конструкций, которые тянет написать, если вы раньше писали на Java, и для которых правильное решение на Scala может не быть сходу очевидным. Данные рекомендации могут быть не очень понятны тем, кто до сих пор пишет на Java и не видел до этого код на Scala. Я не буду разъяснять работу стандартных функций и функциональных концепций, всё ищется по ключевым словам в сети.
            Читать дальше →
          • Новый Интернет-банк Тинькофф Кредитные Системы

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

              Для нас создать новый Интернет-банк было одной из самых важных целей за прошедший год. У нас уже было несколько подобных решений в прошлом и нужно было сделать что-то сильно лучшее.

              Мы изучали лучшие мировые продукты, смотрели что из этого подойдёт нашим клиентам, проектировали, разрабатывали, пытались пользоваться сами, если что-то не нравилось, делали заново. Было много дискуссий. И вот этим летом запустили свой новый Интернет-банк для клиентов.

              Самое приятное, что с первой нашей попытки журнал Global Finance признал наш новый Интернет-банк лучшим в России за 2012 год, похоже, мы оказались на верном пути.

              Ниже предлагается краткий обзор функционала и интерфейсов с большим количеством иллюстраций.

              Читать дальше →
            • Type classes в Scala


              В последнее время в сообществе Scala-разработчиков стали уделять всё большее внимание шаблону проектирования Type classes. Он помогает бороться с лишними зависимостями и в то же время делать код чище. Ниже на примерах я покажу, как его применять и какие у такого подхода есть преимущества.

              Статься расчитана не только на программистов, пишущих на Scala, но и на Java — возможно, они получат для себя ответ, как, хотя бы в теории, выглядит решение для многих прикладных задач, в котором компоненты не связаны между собой и расширяемы уже после написания. Также это может быть интересно разработчикам и проектировщикам на любых других языках.
              Читать дальше →
            • Scala Days 2012

                Я очень люблю Scala, во многом благодаря моей любви, мы используем этот язык в своих проектах: писать на нём большое удовольствие. Уже пару лет я смотрел и подумывал поехать на Scala Days. В прошлом году они были в Калифорнии: прекрасное место, но достаточно далеко и поехать я не смог. В этом же году Scala Days проводили в Лондоне (17-18 апреля), это была отличная возможность, Лондон намного ближе к Москве чем Стенфорд, я выкоротал недолгий отпуск и поехал.



                Ниже идёт обзор докладов, на которые я попал, и общие впечатления от мероприятия с фотографиями.
                Читать полностью и смотреть много больших красивых фотографий
                • +12
                • 8.3k
                • 5
              • Автоматическая проверка качества Java-кода (итерация 1)

                  Инспектор
                  Данный цикл статей я планирую, как историю в нескольких частях о том, как настраивается автоматическая проверка качества кода в нашем проекте. Процесс этот, вроде бы простой, оказался полным неочевидных деталей, так что появилось желание разъяснить подстерегаютщие трудности и их решения широкой аудитории, чтобы все могли сделать свой код чуть лучше, обойдя побольше грабель.

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

                  В этой итерации, я буду настраивать проверку инспекций. Мы всей командой используем IntelliJ IDEA и TeamCity компании JetBrains, поэтому можно использовать те средства, которые они предоставляют. Для начала в IntelliJ IDEA будет настроен профиль инспекций, соответствие кода которому будет проверяться при каждой сборке при помощи TeamCity. Метод это штатный и описан в официальной базе знаний по TeamCity, но не всё получалось очень гладко…
                  Копаем!
                • Простая компиляция Scala-кода во время исполнения

                    Итак, приступим пожалуй. Я люблю Scala не только за то, что она позволяет писать в два раза меньше кода, чем на Java. Понятного и выразительного кода. Помимо этого на Scala можно делать вещи вообще недоступные разработчикам на Java: generic’и высшего порядка, узнавать типы generic’ов в runtime при помощи манифестов.

                    Одна из таких вещей, о которой пойдёт речь — это компиляция Scala-кода во время исполнения программы. Это может быть нужно, когда хочется выполнить приходящий из удалённого источника код или написать самомодифицируемую программу, аналог функции eval в JS.
                    Читать дальше →
                  • Invitation to try Google App Engine

                      Гугл сегодня прислал:

                      Hello,

                      Thanks for signing up to try Google App Engine! Your account has been activated, so you can begin building applications!

                      To start creating applications with Google App Engine, simply follow this link (you may need to sign in with your xxx Google Account) and verify your account with a mobile phone number:

                      appengine.google.com


                      Уж не знаю чем напросился на приглашение, но погляжу. Интересно зачем они сделали авторизацию через мобильник. Наверняка базу мобильных номеров собирают :)

                      Читать дальше →