分类: scala

Scala实战:并发-Future和Promise

并发编程是很困难的,特别是在你没有很好的设计与抽像你的功能层次时。传统的并发解决方案是采用多线程和共享变量,这使得随着代码的增加你很难找到错误根源。 Scala中采用了更好的方案,它不是只基于更低层次的线程的。Scala为用户提供了更高级的抽象:Futures和Promises(Akka还提供了基于actor模式的编程范式,是一种更高层次的并发编程抽象。本文主要讲解Futures和Promises

Akka实战:构建REST风格的微服务

使用Akka-Http构建REST风格的微服务,服务API应尽量遵循REST语义,数据使用JSON格式交互。在有错误发生时应返回:{"errcode":409,"errmsg":"aa is invalid,the ID is expected to be bb"}类似的JSON错误消息。 代码: https://g

Akka实战:分散、聚合模式

分散、聚合模式:简单说就是一个任务需要拆分成多个小任务,每个小任务执行完后再把结果聚合在一起返回。 代码 https://github.com/yangbajing/akka-action 实例背景本实例来自一个真实的线上产品,现将其需求简化如下: 传入一个关键词:key,根据key从网上抓取相关新闻 可选传入一个超时参数:duration,设置任务到期时必须反回数据(返回实际已抓取数据) 若

Scala实战-通过微信聊天窗口实现应答式点餐 1:连接微信API

当前代码tag: v0.0.1,https://github.com/yangbajing/wechat-meal/tree/v0.0.1 微信公众号提供了详尽的API文档说明,提供了明文和加密两种接入方式。这里,我们选择加密的接入方式微信公众号接入指南。 本此实战的代码部署到了Heroku,读者也可以下载代码尝试部署到Heroku并连接微信公众号。本章末尾讲讲述Heroku的部署及怎样与微信公众

Scala实战-通过微信聊天窗口实现应答式点餐 0

近来学习Play 2和Akka,想着找一个实战性的项目练练手。正好近来公司提供晚餐,每天看着程序媛拿着手机一个一个的找人点餐,耗时多、且容易点漏、又打断了自身的工作……哥觉得小妹儿工作好累啊。作为一个全栈工程师,为公司小妹儿减轻工作负担义不容辞啊。 就在想,就在想……用什么方法可以简化这个点餐流程呢?把玩着手中的微信,看到同事们在公司群里胡吹海吹,Duang!有了,就做一个基于微信公众号的点餐系统

使用Akka Http,ActiveMQ搭建一个邮件发送服务器

代码地址:https://github.com/yangbajing/scala-applications/tree/master/email-server 应用功能是实现一个基于队列的邮件发送服务,每个邮件发送者(使用smtp协议)作为一个sender。多个sender可以在同一个组(group)中,每个组中的sender将串行发送邮件。 邮件内容可以通过REST API提交,以可以使用JMS发

Play 2 示例(种子)项目

项目地址:https://github.com/yangbajing/play-seed play 2 slick 3 slick-pg 0.9 scalatest 2 gulp redis postgresql 9.4 实现了简单的用户认证和session控制功能。采用redis来保存session值。自定义play action和play filter来判断session有效性和重设ses

Scala技巧

记录使用Scala开过程中的一些小技巧和陷阱 Future 不要在Future上使用filter方法。

Scala小题目:001

练手题 题目def strtr(src:String, from:String, to:String):String from 和 to是等长的字符串, 要求将src中值为from(i)的字符转换成to(i)例如: strtr(“abcdaf”, “ac”, “AC”) == “AbCdAf” 先来个Java风格版的代码:def java1(src: String, from: String,