Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

Angular2 Form

NgForm - ts - API

↑のサンプルどおりに作ればOK

<div class="container">
  <h1>Artist Form</h1>
  <form #artistForm="ngForm" (ngSubmit)="onSubmit(artistForm)">
    <div class="form-group">
      <label for="name">Name</label>
      <input type="text" class="form-control" ng-control="name" id="name" name="name" required ngModel #name="ngModel">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>
    {{name.value}}
</div>
  • name属性は必要
  • #artistForm というのは変数名 artistForm に "ngForm" を入れるという意味
  • "ngForm" は ngForm ディレクティブ ?
import { Component, OnInit } from '@angular/core';
import { NgForm } from '@angular/forms';

@Component({
  selector: 'app-artist-form',
  templateUrl: './artist-form.component.html',
  styleUrls: ['./artist-form.component.css']
})
export class ArtistFormComponent implements OnInit {

  constructor(
  ) { }

  ngOnInit() {
  }

  onSubmit(f: NgForm) {
    console.log('----------------', f.value)
  }

}

Angular CLI

Angular CLIによるAngular2入門 / Angular2アプリを爆速開発 - Qiita

play slick で Connection is not available になった

Connection is not available,

configの書き方が変わったらしい

slick {
  dbs {
    default {
      driver= "slick.driver.MySQLDriver$"
      db {
        dataSourceClass = "slick.jdbc.DatabaseUrlDataSource"
        properties {
          driver = "com.mysql.jdbc.Driver"
          url = "jdbc:mysql://localhost:3306/<スキーマ名>?characterEncoding=UTF-8&serverTimezone=UTC&nullNamePatternMatchesAll=true"
          user=root
          password=""
        }
        url = "jdbc:mysql://localhost:3306/<スキーマ名>?characterEncoding=UTF-8&serverTimezone=UTC&nullNamePatternMatchesAll=true"
      }

      username=root
      password=""
    }
  }
}

Scala逆引きレシピ

Scala逆引きレシピ

Choreographyについて雑多に書き出して考えてみる

マイクロサービスアーキテクチャを考える基に

Choreography・コレオグラフィー

pub/sub

RabbitMQ? akka?

とりあえずakkaで考えてみる。

理屈

  • Publisher(顧客サービス)
  • Topic(顧客イベント)
  • Subscriber(ロイヤリティポイントサービス、郵送サービス、メールサービス)

  • Subscriberはどのイベントの時に呼び出されるべきかをTopicに登録する(購読)

  • 顧客サービスがTopicに対してイベントをPublishする(出版)
  • イベントが発行されたことをSubscriberが検知する

Note

なんかこのやり方だと、TopicとSubscriber側で両方デプロイしなきゃいけない気がするけど、それはいいのかな?

Publisher, Subscriber

Playframework, finatra等で良さそう

Topic

akka-remote http://kimutansk.hatenablog.com/entry/20140924/1411509232

理屈はわかった、じゃあ実際の作りは?

  1. クライアントが顧客サービスに対して、顧客登録のリクエストを送信する
  2. 顧客登録のリクエストを受け付けた顧客サービスはTopicに対して顧客登録イベントを出版するためのリクエストを送信する
  3. Topicはリクエストを受け付けたら顧客登録イベントを出版する
  4. TopicのSubscriberは出版されたイベントを受けて、ロイヤリティポイントサービス、郵送サービス、メールサービスへリクエストを送信する

これでいいのか???

Note

メールサービスがロイヤリティポイントサービスの結果の値を必要とする場合には、Topic側でそのような作りにする必要がありそう。

etc

https://www.tothepoint.company/blog/microservices-the-most-occurring-obstacles/ http://microservices.io/patterns/microservices.html http://eventuate.io/exampleapps.html https://www.tothepoint.company/blog/microservices-the-most-occurring-obstacles/ http://pkaczor.blogspot.jp/2015/12/akka-ddd-integrating-eventstore.html

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャ

gcli で作ったものを動かしたら・・・

DEPRECATED Action signature.  Must be `cli.ActionFunc`.  This is an error in the application.  Please contact the distributor of this application if this is not you.  See https://github.com/urfave/cli/blob/master/CHANGELOG.md#deprecated-cli-app-action-signature

というメッセージが出た 自分が定義したコマンドの戻りの型定義をしてやればOKだった

func CmdInsert(c *cli.Context) {
}

func CmdInsert(c *cli.Context) error {
  return nil
}

Go言語によるWebアプリケーション開発

Go言語によるWebアプリケーション開発

Scala で 文字列の配列を日本語の読み順に並び替える方法

Scala Seq[String] は以下のようにすることで並び替えが可能 stackoverflow.com

Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版

DDDを学ぶ その1

以前ザーッと本を読んだものの正直DDDのことを全然理解できていなかった

DDDConf01

togetter.com

に参加して自分の中でやっぱりDDD必要だなってなったのと

今自分の関わっているプロジェクトが複雑になってきて、自分自身のコードがその場しのぎで書いているような感じになってきてしまっているので、再度DDD入門しようと思う。

DDDの本を読んでいて難しいのはやはり、ページ数多くて用語がたくさん出てきてどの用語が何を表しているのかが頭に入ってこないところだと思う。

というわけで用語について簡単に押さえることで少しでも本を読み進められるようになろうと思う。

戦略的モデリング

戦略的設計の原則

コンテキストマッピング

境界づけられたコンテキスト = ドメインモデルを適用する際の概念的境界

戦術的モデリング

重要な概念

集約

戦術的モデリングツール

集約 エンティティ 値オブジェクト サービス ドメインイベント

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

実践ドメイン駆動設計

実践ドメイン駆動設計