springまた技術キャッチアップ用のプロジェクト作りました。v2.2Springは5.0リリース前にマイルストーン版を使って感覚を見たかったため、特にreactorとRxJavaの違いを確認したかったため。selenideはユースケースを見たことが無かったのでなんの役に立つのか肌感覚を持つため。frameworkは公式ドキュメントに色々不明点がある*1ので、(今までやってきたライブラリやCLIツールではなく)自走するウェブアプリで色々確かめたかったためです。以下所感をまとめておきます。reactorによるウェブアプリ実装についてvert.xでも感じたことですが、reactive-streamsを使ってのウェブアプリ実装は十分に可能なものの、どの程度ペイするのかよく分からないというのが実情です。外部サーバとのI/Oが処理のほとんどとなりやすいウェブアプリにおいて非同期I/Oを短く簡潔に扱えるというのは利点ですが、リアクティブに処理を書く必要性・Backpressureの利点をきちんと享受したいケースがどの程度あるかというと疑問という感じでしょうか。これについてはそれなりの負荷がかかるサービスで比較検証する必要がありそうです。ab等を使った負荷検証をしてみます。静的解析ツールの支援を受けられないのはなかなかつらいなと思いました。signalを掴み損ねたケースとか、習熟すればすぐに見つけられるがそうじゃないとかなり厳しい「書き方の問題」が多数ありました。年月が解決する問題ではありますが、現時点では業務用途はだいぶきつい印象です。selenideでできることはコード短縮だけでないという話Selenideを使ってみて「あれこれって大してコード量減らないのでは......?」と思ったのでつぶやいた結果、公式アカウントに突っ込まれました。2017ブラウザのレンダリングを待つようなコードをいちいち埋めないでいいというのは、確かに大きな利点です。してしまいテストを遅くする傾向にあります。コードレビューで指摘し育てるのも手ですが、Selenideのようなソリューションで統一的に解決してしまうのは手でしょう。リダイレクト周りの検証とか、いまいち書き方がわからずWebDriverを直接叩くケースはまだまだありそうな感じでした。これだけ知っていればSeleniumについて気にしないで良い、というモノでは無さそうです。frameworkちょっとまだfalse-positiveや価値の低い解析結果が多い印象です。Framework)のデータベースが無いため、Nullableを許容するAPIでも「ここはNonnullだから!null渡さないで!」とコンパイルエラーになることが多いです。結局SuppressWarningをつけて回避しています。GitHub彼らが配布するQualifierの認知度が上がり利用されるようにならないと、まだ積極的な導入は難しそうという印象を持ちました。CI設定(2017年末)今年はビルド周りで自分の常識がいろいろ変わった年だったので...2014-03-02多文化拠点での覚悟について経験のまとめ。