首页
学习
活动
专区
工具
TVP
发布

Play & Scala 技术分享

专栏成员
66
文章
94500
阅读量
31
订阅数
SBT无痛入门指南 顶
SBT 是 Scala 的构建工具,全称是 Simple Build Tool, 类似 Maven 或 Gradle。 SBT 的野心很大,采用Scala编程语言本身编写配置文件,这使得它稍显另类,虽然增强了灵活性,但是对于初学者来说同时也增加了上手难度。另外由于SBT默认从国外下载依赖,导致第一次构建非常缓慢,使用体验非常糟糕! 如果你是一名Scala初学者,本文希望帮你减轻一些第一次使用的痛苦。
joymufeng
2019-09-17
5.4K1
图解 Scala 基本语法 V2018.12.17
在线运行地址:图解 Scala 基本语法代码片段
joymufeng
2019-03-12
3900
函数式编程 - Type Class 介绍
Type Class (类型类) 的概念来自 Haskell,表示一系列函数的集合,在概念上, Type Class 和面向对象领域的泛型接口比较类似。
joymufeng
2019-03-12
9180
Play For Scala 开发指南 - 第10章 MongoDB 开发
在 Reactive 越来越流行的今天,传统阻塞式的数据库驱动已经无法满足Reactive应用的需要了,为此我们将目光转向新诞生的数据库新星 MongoDB 。MongoDB 从诞生以来就争议不断,总结一下主要有以下几点:
joymufeng
2019-03-12
1.5K0
Play For Scala 开发指南 - 第9章 Json 开发
Play 内置了一套JSON库,以帮助开发者简化JSON操作。目前Play的JSON库包含以下功能:
joymufeng
2019-03-12
1.5K0
Play For Scala 开发指南 - 第8章 用户界面
Twirl 是 Play 内置的模板引擎,负责数据层展示与用户行为收集。Twirl 被设计成一个独立的模块,可以脱离 Play 环境单独使用。Twirl 采用Scala作为底层模板语言,所以你无需学习额外的语法便可以轻松上手。
joymufeng
2019-03-12
1.5K0
PlayScala 开发技巧 - 实时同步 MongoDB 高可用方案
MongoDB 从 3.6 开始为开发者提供了 Change Streams 功能,利用 Change Streams 功能可以非常方便地监听指定 Collection 上的数据变化。例如在 mongo shell 中,我们可以通过如下方式监听 shopping 数据库 order 表上的变化:
joymufeng
2019-03-12
6580
Scala一分钟小课堂 - Value Classes
Value Classes 主要用于扩展已有类的方法和创建类型安全的数据类型,功能上类似隐式转换,但是在运行时比隐式转换更节省内存。所有的 Value Classes 都继承自 AnyVal ,例如:
joymufeng
2019-03-12
5040
SBT 常用开发技巧
SBT 一直以来都是 Scala 开发者不可言说的痛,最主要的原因就是官方文档维护质量较差,没有经过系统的、循序渐进式的整理,导致初学者入门门槛较高。虽然也有其它构建工具可以选择(例如 Mill), 但是在短时间内基本上不可能撼动 SBT 的地位,毕竟它是 Scala 名正言顺的亲儿子。当然还有另外一个原因可能导致其它构建工具永远没有机会,Scala 语言以其卓越的编译器著称,编译器支持的丰富特性需要和构建工具进行无缝对接,例如 Scala 的 Macro 需要和构建工具的增量编译密切配合,在和编译器对接方面,SBT 具有先天优势。既然别无选择,只能选择默默忍受。下面分享在SBT使用过程中的一些常用技巧。
joymufeng
2019-03-12
1.8K0
IntelliJ IDEA 开发技巧 - 参数名提示(parameter name hints)
IntelliJ IDEA 2016.3引入一个参数名提示功能(parameter name hints): 这个功能在参数比较多时还是挺实用的,但是遗憾的是Scala插件并没有提供这个功能,但是通过
joymufeng
2018-05-17
2.1K0
Play For Scala 开发指南 - 第3章 常用类介绍
3.1 String 在Scala中,String更加方便好用: //原始字符串一对三引号"""括起来,可包含多行字符串,内容不需要转义 """Welcome here. Type "HELP" for help!""" //类型转换 "100.0".toDouble //判断字符串相等直接用"==",而不需要使用equals方法 val s1 = new String("a") s1 == "a" // true //字符串去重 "aabbcc".distinct // "abc"
joymufeng
2018-05-17
8360
Play For Scala 开发指南 - 第2章 Scala基本语法
2.1 运行Scala代码 感谢Scala.js项目,我们可以在浏览器中运行Scala代码。点击ScalaFiddle开始我们的Scala之旅吧! 2.2 Scala的特性 每一种编程语言的存在都有意义,Scala存在的意义是为了让那些热爱编程的人更加热爱编程。Scala的设计简洁而优雅,很多地方都彰显了编程语言的一致性,例如在Scala的世界里:  一切都是对象 你可以直接调用基本类型上的方法: 1.toDouble     // 1.0 10.toHexString // a "1".toInt   
joymufeng
2018-05-17
6570
Play For Scala 开发指南 - 第1章 Scala 语言简介
Scala是可伸缩语言(Scalable Language)的缩写,读作skah-lah, 于2004年1月20日发布了第一个公开版本。其实早在2001年,Martin Odersky就开始Scala的设计工作,Martin 是瑞士洛桑联邦理工大学(EPFL)计算机与通信科学学院的一名教授, Martin曾和Haskell 语言设计者之一 Philip Wadler合作,设计了一个原型系统GJ, 最终演变为 Java 泛型。Martin还曾受雇于 Sun 公司,编写了 javac 的参考编译器,这套系统后来
joymufeng
2018-05-17
1.4K0
Play For Scala 开发指南 - 第4章 第一个Play项目
 准备环境  安装JDK8 单击这里下载并安装JDK8,安装完成后在命令行查看Java的版本号: C:\Users\Lenovo>java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) 如果上面的命令执行报错,请手动将路径"Java安装目录/bin"
joymufeng
2018-05-17
2.8K0
Scala Macro 现状介绍
1. Scala Macro Scala Macro 是 Scala 2.10 版本增加的一个新的语言特性,让开发者可以在编译期动态修改/生成代码,为开发工作提供了很大的灵活性。Scala Macro 发展的高峰是 Scala 2.11 版本,增加更多新特性,其中最耀眼的便是QUASIQUOTES,它可以帮助开发者屏蔽编译器底层的细节,很大程度上简化了Macro的编写工作。到了Scala 2.12,Scala Macro 基本上没有太多变化,并且直到目前为止,Scala Macro 一直被打着EXPERIM
joymufeng
2018-05-17
1.5K0
为什么要创建开放源码的PlayScala社区?
Play Framework从问世至今已经十个年头了,但是可惜的是这么优秀的框架在国内却鲜为人知。尤其是当Play Framework 2.x发布以后,基于Scala语言重写了整个框架。当Scala和Play Framework相遇,这本该是一段美好的佳话,可结局却是,面对Scala语言更多的人望而却步。 这其实都是因为人们潜意识里对未知事物充满恐惧。但其实Scala没那么可怕,相反了解它一点你会觉得它很可爱。例如很多人看到Scala使用::拼接元素,使用:::拼接列表,例如: val list1 = Li
joymufeng
2018-05-17
8310
HTTP Cookie的域名和路径匹配
介绍 本文主要通过整理RFC6265 - HTTP State Management Mechanism文档的域名和路径匹配章节,然后加以实验验证,最后梳理出一些技术要点,仅供大家参考。 Domain Matching 假设request_domain为请求域名,cookie_domain为cookie的domain属性,如果request_domain和cookie_domain以点"."结尾,则先将尾部的点"."移除。 如果request_domain和cookie_domain满足以下任一个条件,则称
joymufeng
2018-05-17
2.2K0
Play Scala 2.5.x - Play Web开发基础
介绍 本文的目标是通过一个用户登录示例,简要的介绍使用Play进行Web开发的基本流程。本文并不会手把手教你如何创建一个Play应用,而是通过核心的代码片段传递Play的一些设计理念,为不熟悉Play框架的同学提供一个快速了解的途径。 创建登录Controller 在controllers目录下创建ApplicationController类: package controllers import play.api.mvc._ class ApplicationController extends Con
joymufeng
2018-05-17
1.4K0
Play Scala 2.5.x - Play JSON开发指南
1 JSON开发简介 Play提供了一套基于jackson开发的JSON库,帮助开发者便捷地处理JSON数据。目前Play的JSON库可以实现以下功能: 自动完成JSON对象和case class之间的双向转换 验证JSON数据的合法性 直接作为HTTP的请求/响应数据,方便开发RESTful服务 目前Play的JSON库已经分离成独立项目,所以你可以很容易地将它引入到自己的项目: libraryDependencies += "com.typesafe.play" %% "play-json" % pla
joymufeng
2018-05-17
1.2K0
Scala基础 - 下划线使用指南
欢迎访问PlayScala社区(http://www.playscala.cn) 下划线这个符号几乎贯穿了任何一本Scala编程书籍,并且在不同的场景下具有不同的含义,绕晕了不少初学者。正因如此,下划线这个特殊符号无形中增加Scala的入门难度。本文希望帮助初学者踏平这个小山坡。 1. 用于替换Java的等价语法 由于大部分的Java关键字在Scala中拥有了新的含义,所以一些基本的语法在Scala中稍有变化。 1.1 导入通配符 *在Scala中是合法的方法名,所以导入包时要使用_代替。 //Java
joymufeng
2018-05-17
1.5K1
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档