Я собираюсь быть предоставлением короткого (30-40 минут) разговор ланча о Scala техническому штату в моей компании. Я хотел бы некоторые предложения за то, что будет самым соответствующим содержанием. У большинства людей, принимающих участие, будет опыт в Java и/или C# (плюс различные другие языки).
Что состоят в том, чтобы покрыть ключевые вещи? Я хотел бы дать краткое введение в синтаксис Scala так, чтобы люди не чувствовали себя потерянными при рассмотрении примеров кода. Я также освещу часть истории позади языка и его разработчиков. Что люди справки получили бы все возможное от разговора?
Люди почти наверняка приходят поговорить, чтобы получить ответ на вопрос: «Зачем мне использовать Scala?» Все, что вы можете предоставить, чтобы помочь им ответить, будет ценным.
Сведите к минимуму обсуждение истории и личностей, стоящих за Scala.
Краткий обзор синтаксиса полезен, но он должен быть кратким.
Проведите большую часть выступления, демонстрируя примеры и сравнения с Java. Покажите кейсы, в которых светит Scala. Вы должны в буквальном смысле запускать и выполнять код, чтобы люди получили реальное практическое представление о том, как все работает.
Обязательно прикрывайте и слабые места! Обеспечьте объективный и сбалансированный обзор.
Известны алгоритмы предотвращения взаимоблокировки , которые могут обнаруживать возникновение взаимоблокировки и избегать перехода системы в это состояние. Например, Алгоритм банкира .
-121--4617122-Определенно серая область. Классическим является то, сколько бизнес-логики нужно внести в вопрос базы данных.
Если бы мы хотели быть пуристскими и сказать, что бизнес-логика не принадлежит в базе данных, то ответ никогда бы не использовал их.
На практике мы можем сделать исключение, как мы часто делаем, и допустить логику по умолчанию в базу данных.
-121--2439274-Я выступил с подобной речью - в основном с теми, кто имеет Java-фон. Я чувствовал, что взять кусок реальной Java (около 30 строк) и итеративно добавить scala функции сработали довольно хорошо. 30 строк Java в конечном итоге оказались как 6 (шесть!) scala. В точку быть (конечно), что 6 строк более читаемы и ремонтопригодны, чем 30.
Я преобразовал scala в построчный Java-эквивалент, а затем представил:
Я обнаружил, что этот сегмент занимает довольно много времени, потому что аудитория очень заинтересована в минутах синтаксиса scala (особенно вокруг Перед тем, как выполнить бит сопоставления шаблонов, у меня был слайд, объясняющий различные вещи, которые вы можете использовать в матче.
Я сделал презентацию о переписывании классов Java на Scala. В нем много примеров Java -> Scala и (надеюсь) очевидны преимущества. Не стесняйтесь брать любой контент, который хотите ... презентация заняла 1 час 10 минут, так что вы можете вырезать некоторые вещи.
Презентация: http://www.colinhowe.co.uk/downloads/rewriting-java-in-scala.ppt
Вы могли бы сделать похуже, чем пробежаться по презентации Йонаса Бонера Pragmatic Real-World Scala . Возможно, пропустите некоторые дополнительные темы о различных применениях признаков и аннотаций самотипа.
Сложно. Приходится балансировать между новым и привычным. Например:
Поговорим о трейтах, их отличии от интерфейсов и множественном наследовании. Обратите внимание, что большинство методов коллекций во всей Scala можно найти в трейте Traversable
, который имеет единственный абстрактный метод: foreach
.
Поговорим о функциях и частичных функциях, покажем map
/filter
/foreach
, и как они используют функции.
Поговорим о сопоставлении шаблонов - покажем, как unapply
используется для обеспечения независимости представления, и в то же время классы примеров упрощают общий случай.
Прежде всего ИЗБЕГАЙТЕ любых тем, которые могут быть трудны для быстрого понимания, иначе вы можете потратить на них время. Например, отличные темы, о которых я бы не стал говорить: самоподобные типы, дисперсия, for-компоненты.
Выбирайте больше тем, чем у вас есть времени. Позвольте публике направить разговор в сторону тех тем, которые их больше интересуют. Если кто-то начинает слишком сильно углубляться в тему, скажите, что вы с удовольствием объясните ее более подробно позже, и спросите, не возражают ли они, если вы перейдете к другой теме. С другой стороны, если кажется, что все приковано к чему-то одному, не отвлекайтесь. Иначе может показаться, что вы хотите что-то скрыть.