我将在Scala上向我公司的技术人员进行短暂的(30-40分钟)午餐时间谈话。我想对一些最合适的内容提出一些建议。大多数人都会有Java和/或C#(以及其他各种语言)的经验。
要涵盖的关键事项是什么?我想简要介绍一下Scala语法,以便人们在查看代码示例时不会感到迷茫。我还将介绍该语言及其设计者背后的一些历史。什么能帮助人们从谈话中获得最大收益?
答案 0 :(得分:17)
人们几乎肯定会来谈谈这个问题的答案,“我为什么要使用Scala?”您可以提供的任何帮助他们回答的内容都很有价值。
将对Scala背后的历史和人物的讨论保持在最低限度。
语法的旋风之旅很有用,但请保持简短。
花了很多时间演示了Java的例子和比较。展示Scala闪耀的案例。你应该真正地运行并执行代码,这样人们就可以真实地亲身体验事物的运作方式。
确保也要掩盖弱点!提供客观和平衡的概述。
答案 1 :(得分:6)
我做了类似的讨论 - 主要是那些有Java背景的人。我觉得拿一块真正的Java(大约30行)并迭代地添加scala功能效果非常好。 30行Java最终以6(6!)个scala结束。当然,这一点是6行比30行更易读和可维护。
我将scala转换为逐行Java等价物,然后介绍:
我发现这个片段花了很长时间,因为观众对scala语法的细节非常感兴趣(特别是在函数表达式周围)。在进行模式匹配之前,我有一张幻灯片解释了你可以在比赛中使用的各种东西。
答案 2 :(得分:5)
坚韧。人们必须平衡新的和熟悉的。例如:
讨论特征,它们与接口和多重继承的区别。请注意,所有Scala集合中的大多数方法实际上都可以在特征Traversable
上找到,它具有一个抽象方法:foreach
。
说出函数和部分函数,显示map
/ filter
/ foreach
,以及它们如何使用函数。
讨论模式匹配 - 展示如何使用unapply
来实现表示独立性,同时案例类使常见案例变得容易。
首先避免任何可能很难快速理解的主题,或者您可能会浪费时间。例如,我不会谈论的伟大话题:自我类型,方差,理解。
选择比您有时间更多的主题。让公众引导他们对他们更感兴趣的topcis的谈话。如果有人开始过多地讨论一个话题,说你会很高兴稍后详细解释它,并问他们是否会介意你是否愿意另一个话题。另一方面,如果每个人似乎特别关注一件事,那就坚持下去吧。否则,你可能会想要隐藏某些东西。
答案 3 :(得分:2)
我做了一个关于在Scala中重写Java类的演示文稿。它有很多Java的例子 - > Scala和(希望)使收益变得明显。随意借用你想要的任何内容...演示需要1小时10分钟,所以你可能想要削减一些东西。
演示文稿:http://www.colinhowe.co.uk/downloads/rewriting-java-in-scala.ppt
答案 4 :(得分:1)
你可能比通过JonasBonér的演讲Pragmatic Real-World Scala更糟糕。也许可以跳过一些关于特征和自我类型注释的不同应用的高级主题。