Сохраню тут свой лог разработки - мало ли, кому пригодится. Лог разработки - мое изобретение, суть которого в том, что во время разработки у меня открыт word документ, в который вносятся все мои todo, мысли (эффект мишки тедди) и действия (текст, линки, куски кода, логов, скриншоты). Лабораторный журнал - кто имеет опыт работы в научной лаборатории, только удобнее потому как в цифре.
Позже, когда кто-то в команде задаст вопрос "а ты не помнишь, ты там писал...." ответ будет "помню, скажи когда приблизительно это было..." с последующим поиском в 1000 страничном вордовском доке. Все свои логи разработки с прошлых коммерческих проектов остались где-то там рядом с проектами - в корзине, а вот привычка сохранилась. Сейчас мы ею и воспользуемся.
Итак мне посреди ночи стала интересна Scala. Включаем google driven development и вперед.
Не выполняй все, что описано ниже как руководство - это лог разработки и тут история того, как я тыкался в попытках добиться результата. Чтобы тебе все же было полезно - я те абзацы, которые стоит выполнять, помечу пометкой OK а те, что не стоит - SKIP.
OK Первое, что меня интересует - книги/видео, которые есть по данной теме. Книги я нашел три:
Michel Schinz, Philipp Haller, Ржевский Дмитрий (пер.) "Руководство по Scala для Java программистов"
Обзор языка Scala от Руслана Шевченко OK Дальше установил себе на комп Scala. Что очень понравилось - никаких проблем не было. Качнул инсталятор msi и поставил в корень диска С: После установки запустил cmd а в нем написал scala и опля!
OK Потом пошел по русскоязычным статьям и вышел на замечательную "Первые шаги в Scala" Тут я и завис на ближайшие час-два, пробуя примерчики в консольке.
SKIP В общем, выводы какие? Писать со Scala java-программисту меньше, при том, что синтаксис понятен. Мне особенно понравились шаг8 и 9 из статьи.
Мне очень понравилось, что это синонимы
println("hello".endsWith("lo"))
println("hello" endsWith "lo")И вообще, нет операторов в Scala - все есть методы. Даже
println(1 + 2)стоит воспринимать как вызов метода с именем + и аргументом 2 у 1
println(1.+(2))Ух!
А такие вещи, как:
args.foreach(arg => println(arg))не сильно удивили, потому как был у меня полугодовалый опыт работы с Groovy - там удивлялся. Но то, что тут это есть - это клясс!
OK Идем дальше. Кодить в интерпретаторе не очень, а потому я хочу кодить на Scala вместе с Java в старой доброй IDE Idea. Как это сделать? Ищем плагин.
OK Вот тут вот можно почитать, что они накидали в этот плагин.
OK Установился плагин, перегрузилась IDE после чего создал HelloWorld maven приложение.
OK Там создал две source папочки scala (в test и main) рядом с java.
OK И создал HelloWorld Scala Script
OK Написал там очень банальное
SKIP и нифига не получилось. Запуск этого дела так
SKIP выдавал ошибку
SKIP Блин. Что это могло бы знать? Спросим у гугла...
SKIP Кажется первый ответ - самое оно!
SKIP Но там ничего вразмумительного не нашел. А может в настройки залезть?
SKIP Что за Compiler library и почему там none?...
SKIP Решил удалить плагин и поставить его другим способом. Скачал архив с этой странички и распаковал его содержимое в папку плагинов Idea
SKIP Что так же не помогло, потому как после перезапуска ни намека на то, что плагин хоть как-то установлен...
SKIP Установил снова как было через вкладку Plugins
SKIP Ну вот, теперь хоть какое-то проявление плагина
SKIP Только, мы вернулись к тому с чего начали - скрипт не запускается.
OK Интуитивно я зашел в настройки проекта (File->Project Structure) и там проделал следующее
OK Выбрал меню Facets (1), выбрал из списка Scala (2), нажал плюсик (3), потом выбрал из списка текущий проект (4) и нажал ок (5).
OK После этого картинка поменялась и теперь свой скрипт я могу запускать так
OK Но это еще не все, потому как вот
OK Ладно, идем обратно...
OK .. а там тот самый none
SKIP Чую разгадка где-то рядом. Зайду ка я в настройки Idea
SKIP Снова ничего вразумительного. Где же могут прописываться библиотеки компилятора? А где обычно прописываются библиотеки компилятора java?
OK Где-то в настройках проекта! Идем в Project Structure
OK Вот оно!
OK Теперь добавим по аналогии скалу! Добавим (1) библиотеку (2) назовем ее как-то (3) потом с помощью кнопки добавить класс (4) подобавляем все джарники с папки lib папки, в которую установлена была scala (5) после чего - ок (6)
OK А потом заменим тот none на компилятор, который я только что добавил!
OK Анука запустим-посмотрим?!!
OK Ура! На этом можно заканчивать, ибо уже пол 4-го утра и я откровенно зеваю! Я умничка и завтра продолжим эксперименты...
OK Кстати вот еще один мануал, который может пригодиться.
спасибо за подсказку, но с точки зрения пользователя, им откровенно насрать сколько вы мучились, им нужен конечный результат
ОтветитьУдалитьЕсли долго мучиться, что-нибудь получится. Они, если не нашли тут конечный результат, гугл им в помощь.
ОтветитьУдалитьА Вам спасибо за коммент. Хотелось бы Ваш блог почитать, а линка не нашел - подскажете?