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

Post on 11-Apr-2017

384 Views

Category:

Internet

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

top related