Подтвердить что ты не робот

Рекомендуемый контент за обеденный перерыв Обсуждение "Введение в Scala"

Я собираюсь дать короткий (30-40 минут) обеденный перерыв на Scala техническому персоналу моей компании. Я бы хотел, чтобы некоторые предложения касались того, что было бы самым подходящим контентом. Большинство посетителей будут иметь опыт работы на Java и/или С# (плюс различные языки).

Каковы основные моменты? Я хотел бы кратко представить синтаксис Scala, чтобы люди не чувствовали себя потерянными при просмотре примеров кода. Я также расскажу о некоторых историях, стоящих за языком и его дизайнерами. Что поможет людям максимально использовать возможности беседы?

4b9b3361

Ответ 1

Люди почти наверняка приходят поговорить, чтобы получить ответ на вопрос: "Почему я должен использовать Scala?". Все, что вы можете предоставить, чтобы помочь им ответить, будет ценным.

  • Доводите до минимума обсуждение истории и личностей, стоящих за Scala.

  • Вихревой тур по синтаксису полезен, но держите его коротким.

  • Проведите хороший кусок разговора, демонстрируя примеры и сравнения с Java. Показывать случаи, когда Scala светит. Вы должны буквально запускать и выполнять код, чтобы люди получали реальное, практическое чувство, как все работает.

  • Удостоверьтесь в том, что у вас есть недостатки! Обеспечьте объективный и сбалансированный обзор.

Ответ 2

Я дал аналогичный разговор - в основном, для тех, у кого есть Java-фона. Я чувствовал, что взятие куска реальной Java (около 30 строк) и итеративное добавление функций scala работало довольно хорошо. 30 строк Java в конечном итоге оказались 6 (шесть!) scala. Точка (конечно) состоит в том, что 6 строк являются более читабельными и поддерживаемыми, чем 30.

Я преобразовал scala в линейный Java-эквивалент и затем представил:

  • Тип вывода
  • Опция
  • Затворы
  • Сравнение шаблонов (в списках)
  • Введите псевдонимы
  • Рекурсия хвоста

Я обнаружил, что этот сегмент занял довольно много времени, потому что аудитория была очень заинтересована в мелочах синтаксиса scala (особенно вокруг функциональных выражений). Перед выполнением бит соответствия шаблону у меня был слайд, объясняющий различные вещи, которые вы могли бы использовать в матче.

Ответ 3

Tough. Нужно уравновесить новых и знакомых. Например:

  • Разговор о чертах, как они отличаются от интерфейсов и множественного наследования. Обратите внимание, что большинство методов во всех коллекциях Scala действительно можно найти по признаку Traversable, который имеет один абстрактный метод: foreach.

  • Говорите о функциях и частичных функциях, покажите map/filter/foreach и как они используют функции.

  • Разговор о сопоставлении с образцом - показать, как unapply используется для обеспечения независимости представления, в то время как классы case упрощают простой случай.

Прежде всего, ИЗБЕГАЙТЕ любую тему, которая может быть трудно понять быстро, или вы можете тратить время на них. Например, отличные темы, о которых я бы не говорил: типы self, дисперсия, для-понимания.

Выберите больше тем, чем у вас есть время. Позвольте публике направлять беседу в сторону topcis, в которой они больше заинтересованы. Если кто-то начинает слишком сильно задумываться над темой, скажите, что вам будет приятно объяснить это более подробно позже и спросить, не возражают ли они, если вы перейдете к другая тема. С другой стороны, если все, кажется, собираются в одном, в частности, остаются с ним. В противном случае может показаться, что вы хотите что-то скрыть.

Ответ 4

Я представил презентацию о повторной записи классов Java в Scala. В нем много примеров Java → Scala и (надеюсь) делает очевидным выигрыш. Не стесняйтесь брать любой контент, который вы хотите... презентация заняла 1 час 10 минут, поэтому вам может понадобиться вырезать некоторые вещи.

Презентация: http://www.colinhowe.co.uk/downloads/rewriting-java-in-scala.ppt

Видео: http://skillsmatter.com/podcast/java-jee/re-writing-java-classes-in-scala-and-making-your-code-lovely

Ответ 5

Вы могли бы сделать хуже, чем прохождение презентации Jonas Bonér, Pragmatic Real-World Scala. Возможно, пропустите некоторые продвинутые темы там, в разных приложениях черт и аннотаций самонастройки.