きしだのはてな このページをアンテナに追加 RSSフィード

2017-03-20(月) Java9で小の月を列挙する

[][]Java9で小の月を列挙する 04:55 Java9で小の月を列挙するを含むブックマーク

jshell> LocalDate.of(2017,1,31).datesUntil(LocalDate.of(2018,1,1),Period.ofMonths(1)).
   ...> filter(d -> d.getDayOfMonth() != 31).
   ...> map(LocalDate::getMonth).
   ...> toArray()
$163 ==> Object[5] { FEBRUARY, APRIL, JUNE, SEPTEMBER, NOVEMBER }

あ、ふつうにこれでよかった

jshell> Arrays.stream(Month.values()).filter(m -> m.maxLength() != 31).toArray()
$165 ==> Object[5] { FEBRUARY, APRIL, JUNE, SEPTEMBER, NOVEMBER }
トラックバック - http://d.hatena.ne.jp/nowokay/20170320

2017-02-20(月) Learn about asynchronous processing with Dagger by PPAP

[]Learn about asynchronous processing with Dagger by PPAP 11:28 Learn about asynchronous processing with Dagger by PPAPを含むブックマーク

At the previous article, I introduce the DI function in the Dagger.

PPAPで学ぶDaggerによるDI - きしだのはてな(Japanese)

Dagger is known as a DI container, but it is not known that can be used as an asynchronous framework.

There had been the function, but there was not a document about it. nowadays there is a document but we can not notice it can be used for an asynchronous process.

https://google.github.io/dagger/producers.html


At a server side, already they may have used DI containers such as Springframework or CDI.

Moreover the DI on Dagger is not enough for a server side, it can not be a candidate often.

But in the case of using as asynchronous processing framework, it is useful even with SpringFramework or CDI.


続きを読む

2017-01-09(月) PPAPで学ぶDaggerによる非同期処理をZipkinで確認

[]PPAPで学ぶDaggerによる非同期処理をZipkinで確認 08:26 PPAPで学ぶDaggerによる非同期処理をZipkinで確認を含むブックマーク

前回、Daggerで非同期処理をやってみました。

PPAPで学ぶ、Daggerによる非同期処理 - きしだのはてな

ただ、こういうログでの実行結果を見せられて、ほら非同期になってるでしょって言われてもよくわからないと思うので、Zipkinで見てみます。

f:id:nowokay:20170108211421p:image


Zipkinは、GoogleDapper論文を参考にTwitterが開発してオープンソースにした分散トレースシステムです。

http://zipkin.io/


続きを読む

2017-01-08(日) PPAPで学ぶ、Daggerによる非同期処理

[]PPAPで学ぶ、Daggerによる非同期処理 21:19 PPAPで学ぶ、Daggerによる非同期処理を含むブックマーク

前回は、DaggerのDI機能を紹介しました。

PPAPで学ぶDaggerによるDI - きしだのはてな

DaggerはDIコンテナとしては知られていますが、非同期処理フレームワークとして使えることはあまり知られていないと思います。機能はあったのに、ドキュメントがなかったし、ドキュメントも非同期処理に使えることがわかりにくいし。

https://google.github.io/dagger/producers.html


サーバーサイドではSpringFrameworkやCDIなどのDIコンテナがすでに使われているのと、DaggerのDIでは機能不足であるため、Daggerが候補になることはあまりありません。

でも、非同期処理フレームワークとしてであれば、SpringFrameworkやCDIを使っている状況でも有用です。


続きを読む

トラックバック - http://d.hatena.ne.jp/nowokay/20170108

2017-01-05(木) PPAPで学ぶDaggerによるDI

[]PPAPで学ぶDaggerによるDI 08:43 PPAPで学ぶDaggerによるDIを含むブックマーク

Daggerってありますよね。コンパイル時に依存性を解決するのでパフォーマンス的に有利なDIコンテナです。

https://google.github.io/dagger/

依存関係の不備がコンパイル時にエラーになって発見できるのも、実行時にエラーが出たときの修正の難易度が高いAndroidアプリにはありがたいということで、Androidでよく使われてるようです。


基本的なオブジェクトの定義

I have a pen.

public class Pen {
    @Override
    public String toString() {
        return "ペン";
    }   
}

I have an apple.

public class Apple {
    @Override
    public String toString() {
        return "アッポー";
    }
}

Ohh!!! Apple Pen!!!

public class ApplePen {
    Pen pen;
    Apple apple;

    public ApplePen(Pen pen, Apple apple) {
        this.pen = pen;
        this.apple = apple;
    }

    @Override
    public String toString() {
        return "" + apple + pen;
    }
}

続きを読む