V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
joymufeng
V2EX  ›  Scala

欢迎来访开放源码的 PlayScala 社区(http://www.playscala.cn)

  •  
  •   joymufeng · 2017-08-15 15:38:16 +08:00 · 4222 次点击
    这是一个创建于 2418 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Play Framework 从问世至今已经十个年头了,但是可惜的是这么优秀的框架在国内却鲜为人知。尤其是当 Play Framework 2.x 发布以后,基于 Scala 语言重写了整个框架。当 Scala 和 Play Framework 相遇,这本该是一段美好的佳话,可结局却是,面对 Scala 语言更多的人望而却步。 这其实都是因为人们潜意识里对未知事物充满恐惧。但其实 Scala 没那么可怕,相反了解它一点你会觉得它很可爱。例如很多人看到 Scala 使用::拼接元素,使用:::拼接列表,例如:

    val list1 = List("c", "a", "l", "a")
    val list2 = s :: list1 // list2: (s, c, a, l, a)
    val list3 = List("p", "l", "a", "y")
    val list4 = list3 ::: list2 // list4: (p, l, a, y, s, c, a, l, a)
    

    然后就开始吐槽:WTF,这是什么鬼? 别急,给我一分钟时间,看看能否说服你! 首先你需要了解一个基本概念,在 Scala 中一切都是方法:

    "a" * 3 //等价于: "a".*(3)
    2 - 1   //等价于: 2.-(1)
    

    所以没错,你之前看到的::和:::自然也是方法,只不过是为了简洁,省略了.和()。List 是由 head 和 tail 拼接在一起的递归结构(这种设计在模式匹配时非常方便)。List 的定义可以写成如下形式:

    head :: tail
    

    head 是首元素,tail 是剩余的 List。仔细瞧瞧,::看起来是不是很像胶水,将列表的头和尾紧紧地粘在一起,更进一步,:::可以把两个列表粘在一起。这样的代码是不是很简洁,并且富有表达力! 在 Scala 中,这种简洁的设计比比皆是,例如我们再来看看如何构建一个 Map 实例:

    val map = Map("name" -> "PlayScala 社区", "url" -> "http://www.playscala.cn")
    

    感受一下,是不是非常清晰明了。 当然 Scala 的魅力远不止如此,当你慢慢了解它时,你会慢慢深陷而无法自拔。 讲了那么多,我只想告诉你 Scala 并不可怕,其实在 Play Framework 中,你根本就不需要抱着 Scala 书籍啃完再写代码,PlayScala 社区会为你准备一篇 30 分钟的为 Play 初学者准备的 Scala 基础知识,读完你就可以投入 Play Framework 的怀抱了。

    好了,回归正题,那为什么要创建 PlayScala 社区呢? 主要原因是国内 Play Framework 的第一手中文学习资料非常稀缺,虽然在网上可以找到一些教程,但是知识的碎片化很严重,并且很多质量较差的文章会影响初学者的认知。PlayScala 社区正是基于这样的原因而诞生的,并且希望能够实现以下几个愿景:

    • PlayScala 社区开放源码,希望通过大家的努力,将 Play Framework 开发的最佳实践全都囊括进来,供大家日常开发参考。
    • 维护一个高质量的『学习』板块,系统而全面地介绍 Play Framework 开发的相关知识,并将 PlayScala 社区源码中的最佳实践在这里以文档的形式阐述,你可以认为它是 Play Framework 官方文档的一个有力补充。
    • 提供一个交流互动平台。PlayScala 社区的『分享』和『问答』板块是为『学习』板块服务,这两个板块沉淀下来的知识最终会被收录到『学习』板块。

    希望在大家的一起努力下,可以让更多的人了解并加入 Play Framework 的开发行列,不断增强 Play Framework 在国内的影响力。

    欢迎来访: PlayScala 社区

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5280 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:18 · PVG 16:18 · LAX 01:18 · JFK 04:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.