codefest 2011. Галако О. — О scala и lift для тех, кому мало java, и не...
DESCRIPTION
TRANSCRIPT
![Page 1: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/1.jpg)
О Scala и Lift
Для тех, кому мало Java, и не только
Галако Олег,Джар Софт
![Page 2: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/2.jpg)
Кому и зачем?
• Удобнее, мощнее, «правильнее» Java
case class Person(name: String, age: Int) // = 20+ строк на Java://factory method, getters, equals, hashCode, toString, serialization и др.
List(1, 2, 3, 4, 5).filter(_ % 2 == 1).map(_ * 2).mkString(",") // 2,6,10
• Грамотная статическая типизация
• Надёжнее динамических языков
• Обуздать многоядерность
![Page 3: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/3.jpg)
Популярные языки на JVM
groovy
jython
scala
clojure, jrubyfantom
Кол-во вакансий как показатель популярности
![Page 4: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/4.jpg)
: основные факты• 2001, Швейцария, профессор Мартин Одерски
• ScaLa = Scalable Language
• Статическая типизация + OOП + ФП
• Свободно смешивается с Java
![Page 5: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/5.jpg)
: основные факты
• Начат в 2007, первая версия - 2009
• Использован опыт Rails, Wicket, Django и др.
• Активно использует функциональную сторону Scala
<button name="b">Push me</button>"@b [onclick]" #> ajaxInvoke(() => {println("server"); Alert("client")})
• Изменения кода - в браузере через секунды
![Page 6: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/6.jpg)
С чего мы начинали?
Самостоятельное изучение
Энтузиазм, общение, интерес
Демонстрация в прототипе для небольшого проекта
Семинары в компании
Cкрипты
Полноценное самостоятельное веб приложение
![Page 7: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/7.jpg)
Первый проект
• Прототип за выходные
• Мощная типизация для объединения метаданных и функционала (traits)
val activationDate = new PersistentSimpleField(this, DayType, "Date of the first registered impression") with Required with Indexed
new DeleteEntityResource(new Category) with SingleIdRequired with AdminSessionRequired with DBLogging
• Встроенная поддержка XML
• Lift для обработки REST и JSON
Самодокументирующийся REST + JSON веб сервис
![Page 8: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/8.jpg)
Удобные скрипты на JVM
• Скрипты на Java? Вряд ли.
• Привычные Java-библиотеки, переносимость
• Компактный, читаемый код
• Мощные средства для стандартных задач: парсинг, анализ данных, HTTP клиент и т.д.
![Page 9: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/9.jpg)
Текущий проект
• Лучшая реализация Comet и AJAX
• Удобная интеграция с Facebook Graph API
• Интеграция с Hibernate, Hibernate Search (Lucene)
• Функциональный код легче модифицируется
• Дизайнер может редактировать шаблоны сам
Интерактивное Facebook приложение на Lift
![Page 10: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/10.jpg)
Планы
• 3500+ Java классов, с 2000 года
• Включение Scala в сборку заняло 2 часа
• SOAP & Struts => JSON REST & Lift
• Ядро ротатора на Akka
Scala в старом большом Java проекте на 1500 запросов/с
![Page 11: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/11.jpg)
Сложности
• Меньше готовых ответов
• Многолетние Java-привычки
• Много возможностей, но за всем сразу не угнаться
• Средства разработки: Eclipse сильно отстал
![Page 12: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/12.jpg)
ProfitПовышение квалификации
+
Сокращение объёмов,
повышение читаемости кода
+
Новые удобные и интересные решения
=
Эффективность
![Page 13: CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только](https://reader035.vdocuments.site/reader035/viewer/2022081801/5478ea76b4af9fe2158b4690/html5/thumbnails/13.jpg)
Вопросы?
Галако Олег,Джар Софт
twitter.com/ojowoo