https://github.com/j5ik2o/akka-persistence-dynamodb
sbt.version = 1.3.0 にしてビルドしたら以下のエラー
以前、sbt-coursierにしたときも同様のエラーでたことある
$sbt clean compile
[info] Loading settings for project global-plugins from idea.sbt,sbt-updates.sbt,plugins.sbt ...
https://github.com/j5ik2o/akka-persistence-dynamodb
sbt.version = 1.3.0 にしてビルドしたら以下のエラー
以前、sbt-coursierにしたときも同様のエラーでたことある
$sbt clean compile
[info] Loading settings for project global-plugins from idea.sbt,sbt-updates.sbt,plugins.sbt ...
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
「CHAPTER1 目的ごとに変数を用意する」の話題
やっていること
勉強会に参加する方は、以下の映画料金表を参考して、映画料金を決定するドメインモデルを考えて実装してください(実装言語はScalaを想定しています。が、チームで相談して違う言語を選択してもよいです)
具体的には、入力として顧客や時間の条件を与えると何らかの計算を行い、出力として映画の価格を返してくれるクラスを実装するイメージです(ドメイン駆動設計の戦術的なプラクティスにこだわらなくてもOKです)。入力条件から複数の映画料金が求められる場合は安い価格を決定してくださいね…。クラスは何個作っても構いません。ただし永続化とかGUIのことは考えないでください。動作を確認できる、コンソールアプリケーションかユニットテストがあれば十分です。
https://cinemacity.co.jp/ticket/
以下の要件を満たすのは必須ではないですが、時間がある方は挑戦してみてください。思った以上に複雑な要件なので注意してください。 また、レディースディ(女性でかつ毎週水曜は安くなる)など新しいルールを作って実装してもOKです。
package domain
import java.time.temporal.ChronoUnit
import java.time.{DayOfWeek, LocalDate, LocalDateTime}
import enumeratum._
sealed trait Age extends Ordered[Age] {
def breachEncapsulationOfValue(today: LocalDate): Int
入力されたリストの要素を2倍し合計する関数
def loop(in: List[Int], acc: Int): Int =
in match {
case Nil => acc // 終了条件
case head :: tail =>
val result = head * 2 // headのタスク
loop(tail, acc + result) // 残りのリストと計算途中を渡して処理を継続
}
public static boolean isNameHashUpperCase(String name) {
boolean result = false;
for (int i = 0; i < name.length; i++) {
if (Character.isUpperCase(name.charAt(i)) {
result = true;
break;
}
}
return result;
object PersistentWalletAggregate { | |
def behaviorProxy( | |
id: WalletId, | |
chargesLimit: Int = Int.MaxValue | |
): Behavior[CommandRequest] = | |
Behaviors | |
.supervise(Behaviors.setup[CommandRequest] { ctx => | |
val childRef: ActorRef[CommandRequest] = | |
ctx.spawn(WalletAggregate.behavior(id, chargesLimit), WalletAggregate.name(id)) |
object TestMain extends App { | |
import akka.stream.scaladsl._ | |
import akka.actor._ | |
import akka.stream.ActorMaterializer | |
import scala.concurrent._ | |
import scala.concurrent.duration._ | |
implicit val system = ActorSystem() | |
implicit val ec = system.dispatcher | |
implicit val mat = ActorMaterializer() |
curl -v -X GET https://oss.sonatype.org/content/repositories/releases/com/github/j5ik2o/reactive-redis-core_2.12/1.0.20/reactive-redis-core_2.12-1.0.20.pom INT(-2) ↵ 3243 22:31:44
Note: Unnecessary use of -X or --request, GET is already inferred.
* Trying 23.22.160.79...
* TCP_NODELAY set
* Connected to oss.sonatype.org (23.22.160.79) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
package btree | |
package btree | |
type Node interface { | |
Size() int | |
Sum() int64 | |
Min() int64 | |
Max() int64 | |
Find(value int64) *int64 |