30
Наскальное программирование

«Наскальное программирование», Евгений Пальмов, Naumen

Embed Size (px)

Citation preview

Page 1: «Наскальное программирование», Евгений Пальмов, Naumen

Наскальное программирование

Page 2: «Наскальное программирование», Евгений Пальмов, Naumen

Scala как она есть.

❏ Scalable Language.❏ Создан Мартином Одерски в 2003 году.❏ Текущая версия 2.11.6.

Page 3: «Наскальное программирование», Евгений Пальмов, Naumen

Почему можно?

❏ JVM.❏ Мультипарадигмальный язык.❏ Сопоставимая с Java производительность.

Page 4: «Наскальное программирование», Евгений Пальмов, Naumen

Порадуйте заказчика* и самих себя**!

* Только временно** Если Ваша зарплата не зависит от количества строк кода

Page 5: «Наскальное программирование», Евгений Пальмов, Naumen

Scala пропагандирует использование неизменяемых значений. Только без фанатизма.

Page 6: «Наскальное программирование», Евгений Пальмов, Naumen

Ленивое выражение?В Scala это проще простого.

Page 7: «Наскальное программирование», Евгений Пальмов, Naumen

Trait’ы это как интерфейсы, только лучше.

Page 8: «Наскальное программирование», Евгений Пальмов, Naumen

Trait’ы могут быть реализованы частично.

Page 9: «Наскальное программирование», Евгений Пальмов, Naumen

Сложно сделать процесс созданиеобъекта одиночки проще.

Page 10: «Наскальное программирование», Евгений Пальмов, Naumen

Уходим от рутины с помощью Case Class’ов.

Page 11: «Наскальное программирование», Евгений Пальмов, Naumen

Механизм сопоставления с образцом на своем пределе. Вы можете сопоставлять и case class’ы!

Page 12: «Наскальное программирование», Евгений Пальмов, Naumen

Scala вводит единообразную систему типов.

Page 13: «Наскальное программирование», Евгений Пальмов, Naumen

Без исключений - тип есть всегда.

Page 14: «Наскальное программирование», Евгений Пальмов, Naumen

Без исключений - функция тоже объект.

Page 15: «Наскальное программирование», Евгений Пальмов, Naumen

Частичные функции могут сами фильтровать свои аргументы с помощью сопоставления.

Page 16: «Наскальное программирование», Евгений Пальмов, Naumen

Оставьте NPE в прошлом!

Page 17: «Наскальное программирование», Евгений Пальмов, Naumen

Просто `par` и любые операции над коллекцией начнут выполнятьсяпараллельно.

Page 18: «Наскальное программирование», Евгений Пальмов, Naumen

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

Page 19: «Наскальное программирование», Евгений Пальмов, Naumen

Не нужно бояться неявных параметров!

❏ Не подставляются динамически.❏ Не являются глобальными переменными.❏ Не сложны в использовании.

Page 20: «Наскальное программирование», Евгений Пальмов, Naumen

Неявные функции позволяют Scala выполнять преобразования типов по требованию.

Page 21: «Наскальное программирование», Евгений Пальмов, Naumen

Функционал любого класса можетбыть легко расширен сиспользованием неявных классов.

Page 22: «Наскальное программирование», Евгений Пальмов, Naumen

Scala предоставляет несколько вариантовстроковых интерполяторов. Вы дажеможете создать свой.

Page 23: «Наскальное программирование», Евгений Пальмов, Naumen

При компиляции Scala собирает огромное количество данных. Часть из них можно использовать.

Page 24: «Наскальное программирование», Евгений Пальмов, Naumen

Макросы - древний инструментметапрограммирования, получивший широкоераспространение ещё в языкахассемблера и C / C++.

Page 25: «Наскальное программирование», Евгений Пальмов, Naumen

Встречайте, макросы в Scala!

❏ Дружественны для разработчика.❏ Дружественны для пользователя.

Page 26: «Наскальное программирование», Евгений Пальмов, Naumen

Обычный макрос на Scala можетвыглядеть примерно так:

Хотелось бы взглянуть на реализацию...

Page 27: «Наскальное программирование», Евгений Пальмов, Naumen
Page 28: «Наскальное программирование», Евгений Пальмов, Naumen

Чтобы обойти сложность построения дереваабстрактного синтаксиса вручную,команда разработчиков Scala создает новыймеханизм - quasiquotes (квазикавычки).

Page 29: «Наскальное программирование», Евгений Пальмов, Naumen

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

Page 30: «Наскальное программирование», Евгений Пальмов, Naumen

Начать использовать Scala в своём проекте проще, чем кажется.

❏ Плагины для Maven, Gradle.❏ Система сборки SBT.❏ Легко подружить с legacy кодом на Java.