← All posts tagged Scala

yzh44yzh
Scala Забыл уже все. Сча гляжу на свой код, и страшно. На функциональный не похож, похож на покалеченое ООП. Не уверен, что нужно смешивать в одном языке обе парадигмы.
yzh44yzh
IDEA Scala Алилуйя, все работает, причем даже лучше, чем было со скалой 2.7.7 в прежних версиях IDEA и скала-плагина.

После подключения артефакта junit:junit:4.8.1 внезапно начали работать старые тесты, но только внутри IDEA. При запуске mvn test они не работали.

Унаследовал в тестах все классы от org.scalatest.junit.JUnitSuite и добавил анотации @Before @After и @Test к методам. После этого все заработало и из IDEA и из mvn test.

Все, теперь со спокойной душой можно идти спать )
yzh44yzh
IDEA Scala scala-плагин в IDEA пока не хочет поддерживать scala 2.8 (а мавеном проект вполне собирается). Пока придется оставаться на scala 2.7.7 ну и ладно )
yzh44yzh
IDEA Scala не, все равно с тестами не слава богу. Запускаемые из IDEA они работают правильно, а запускаемые при mvn test работают неправильно — не вызывается beforeEach и afterEach. Хотя если эти методы вызывать явно из каждого теста, то все работает. Все это очень странно, ибо IDEA и maven все запускают в идентичной конфигурации.
yzh44yzh
IDEA Scala scala-тесты таки запускаются нормально. Это у меня где-то было накосячено с настройками проекта.
Самое главное — исправить скала-фасеты, ибо по дефолту IDEA туда прописывает свои scala-compiler и scala-library, и они нифига не работают. Надо указать там на jar из мавен-репозитория
/home/yura/.m2/repository/org/scala-lang/scala-compiler/2.7.7/scala-compiler-2.7.7.jar
/home/yura/.m2/repository/org/scala-lang/scala-library/2.7.7/scala-library-2.7.7.jar
и после этого все ок работает
yzh44yzh
Scala А что обычно юзают в scala (java), чтобы посылать http запросы куда-нибудь и обрабатывать ответы. Быстрое гугление дало примеры с использованием org.apache.commons.httpclient.*
hc.apache.org

Это тру, или есть что-то более тру?
yzh44yzh
Scala Подружил скалу с MySQL, написал жуткие тесты, создающие таблицы, пихающие в них тестовые данные, достающие эти данные и сравнивающие их с тем, что было запихано.

Решил со всякими гибернейтами и прочим object-relational-mapping не пока связываться. Напрямую работать с SQL — ближе к функциональному стилю, значит ближе к скала :)
yzh44yzh
Scala Освоился с тестами, потихоньку пишу функционал, руководствуясь принципами TDD.

Вот только запускать тесты из IDEA никак не получилось. Чего-то там в IDEA было не то, в багтрекере обещали это пофиксить. Но в последнем на текущий момент EAP оно не пофикшено.

Ну и пофиг, написал bash-скрипт, который компилирует и запускает тесты с помощью org.scalatest.tools.Runner, и этот скрипт добавил в Run меню IDEA. И все клева.
yzh44yzh
Maven IDEA Scala Настроил многомодульный flex-scala проект под maven. Оказалось не сложно. Иерархия pom получилась такая:
— project pom
--- super-pom-scala
------ scala-module-A
------ scala-module-B
--- super-pom-flex
------ flex-module-A
Однако древовидная иерархия pom реализована в линейной структуре каталогов:
--- project-root
------ super-pom-scala
------ super-pom-flex
------ scala-module-A
------ scala-module-B
------ flex-module-A

Поддержка scala в IDEA довольно хреновая. Настройки модулей из помов не подымаются, их все равно нужно вручную настраивать, добывать все jar-зависимости и указывать их отдельно, несмотря на то, что все зависимости указаны в pom.

Scala facet сам не настраивается, и настроеный вручную не работает. Несмотря на то, что scala-compiler.jar и scala-library.jar указаны в фасете, их все равно нужно явно добавлять в зависимости каждого модуля.

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

Но в целом ничего, работать можно.
yzh44yzh
Maven Scala Goal:scala:cc "Compile the main and test scala source directory in continuous (infinite loop). !! This is an util goal for commandline usage only (Do not use or call it in a pom) !!!"

Пытаюсь представить, зачем это нужно... )