Предложенное содержание в течение ланча “Введение в Scala” разговор

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

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

12
задан 3 revs, 3 users 100% 28 December 2012 в 02:01
поделиться

5 ответов

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

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

  • Краткий обзор синтаксиса полезен, но он должен быть кратким.

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

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

17
ответ дан 2 December 2019 в 04:53
поделиться

Известны алгоритмы предотвращения взаимоблокировки , которые могут обнаруживать возникновение взаимоблокировки и избегать перехода системы в это состояние. Например, Алгоритм банкира .

-121--4617122-

Определенно серая область. Классическим является то, сколько бизнес-логики нужно внести в вопрос базы данных.

Если бы мы хотели быть пуристскими и сказать, что бизнес-логика не принадлежит в базе данных, то ответ никогда бы не использовал их.

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

-121--2439274-

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

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

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

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

6
ответ дан 2 December 2019 в 04:53
поделиться

Я сделал презентацию о переписывании классов 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

2
ответ дан 2 December 2019 в 04:53
поделиться

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

1
ответ дан 2 December 2019 в 04:53
поделиться

Сложно. Приходится балансировать между новым и привычным. Например:

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

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

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

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

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

5
ответ дан 2 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: