読者です 読者をやめる 読者になる 読者になる

問い:Java 8のStream APIは業務でどんな時に使うの? 答え:あなたがfor文使いたい時

※ サンプルがJDK7までとJDK8までで意味が変わっていてわかりにくいという指摘があったので、少し直しました。 ※ boxedを使う書き方だと無駄なAutoboxingが走るとの指摘を頂きましたのでmapToObjを利用するように変えました。 Java8の目玉機能の一つにStream …

Java Day Tokyo 2014に参加してきました

勉強会はブログに参加記事を書くまでが勉強会だと以前習ったので、昨日参加してきたJava Day Tokyoの感想とか書いときます。 Java SE 8がちょうどでたばかりということもあって、今回はほとんどのセッションがJava8祭りでした。 https://oj-events.jp/public…

Macで複数バージョのJavaを切り替えたい

JDK8でたよーって、ことで色々触っている今日このごろ。 やっぱラムダ式とか使えるようになって大分普通になった感じ。 で、ここで問題になるのがまだ全面的にJava8に移行したわけでもないのでJava7とどう共存して環境を切り替えるか。たぶん、Java使ってい…

Javaを使うメリットはありますか? はい、それはもちろんあるに決まってます!

/.Jに聞け:Javaを使うメリットは? | スラッシュドット・ジャパン デベロッパー え、ありますよね? Webアプリに限っても。 というか、上げてるデメリットが現代的じゃないなぁ... 個人的には少数精鋭チームを作れてないならJavaはかなり有りな選択だと思っ…

JUnitで現在時刻が関わるテストを解いてみた

これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd に書いてある問題がUnitTestを書いていく上での教材にとても良さそうだったので、…

レガシーコードも年末に向けて大掃除! - jMockitを使おう

さて、今年もあと僅かになりましたが、この1年間で溜まりに溜まったコードの負債を大掃除してみませんか? レガシーコードだから書くのが大変? プロダクト側を改修したいけどそもそもテストが無いから改修が怖い? ですよねー。 なのでjMockitを使って既存…

Java Mission Control + Flight RecorderをGlassFish4で使ってみた

Java SE 7 Update 40が先日でました。なんとこの子はついに待望のFlight Recorder(ちゃんとした版)が実装されたのですよ! 本番環境の障害調査用にと個人的にはJRockitの機能がHotspotに統合されるHotRockitプロジェクトで一番注目してた機能でした。 一応…

Java向けの障害解析ツールHeapStatsをGlassFishに入れてみた

こちらで紹介されているJava向けの障害解析ツールHeapStatsが便利そうなので導入してみた。 HeapStats で GlassFish 4 障害解析 #glassfishjp from Yuji Kubota 環境はGlassFish3.1 + JDK7 + CentOS 6.3(32bit) まずは、運用環境にrpmを使ってインストール. …

JavaでHTTPアクセスを記録/再生してテスト時に使える、Betamaxを試してみた

id:ikikko さんのこちらの記事を参考にJavaでHTTPアクセスを記録/再生してテスト時に使える、Betamaxを試してみました。 このBetamaxというのはその名の通り、テープに記録/再生するものなわけですが、その対象が映像ではなくHTTPアクセスだと言うことです。…

GlassFishの監視JMXを取得してみた - その2

その1でGlassFishのリソースをJRuby使ってJMX経由を取得するサンプルを書いたので、 それを元にmongodbに放り込むスクリプトを作ってみた。 https://github.com/koduki/glassfish_monitor まだ、エラーハンドリングとか全然書いてないけど、とりあえずは動く…

GlassFishの監視JMXを取得してみた - その1

いくつかのシステムをGlassFishで運用しているんだけど、障害があった時とか、アクセスと負荷の相関とかを統計出来るように、監視オプションを有効にしてみた。 単に、それだけだと、管理コンソールでリアルタイムに現在のステータスがわかるだけで嬉しくな…

JPAでちょっと嵌った話。

最近、JPAを使うことがあったのですが、慣れてなくて結構ハマってしまいました。 高機能だし、面倒なことを簡単に書ける素敵な感じなのですが、普通のことを普通にかけない残念ちゃんでもあります。 メモがてら嵌ったこと書いてきます。表題は当時の気持ちで…

Androidでレガシーコードを書き続けないためのたった1つの方法

答え:テストできるように作る 周りでAndroid開発してる話を聞くのですが、どうもテストがしづらかったり、修正が大変だったりする模様。ここを直してあそこがバグるみたいな。 本屋で参考になりそうな本を探すも、入門系かリファレンス系が殆どで、「どうい…

StAXとDOMのパフォーマンスを計測してみた

今まで、javaでXMLを利用するときは専らDOM系、必要に応じてSAXにチューニングしてたんだけど、今さらながらStAXを使ってみた。 StAXはpull型のパーサーで比較的記述製が高く、かつ高速と評判。試しに書いてみたけど、少なくともJDKの素のDOMと比べるなら記…

JavaEEでもTDD - JPA編 - 2

こっちの続きです。 環境構築はできたと思うので、本命のTDD入ります。まだの人は前回の記事見るか、githubからできたものをを落としてください。 1. 記事の投稿をしよう! まずは、記事の投稿機能を実装します。現在、ArticleにはIdしか存在しないので、タ…

JavaEEでもTDD - JPA編 - 1

JavaEEでUnitTest書く方法はモックを使うとかglassfish-embedded使うとか色々合ったわけですが、先日コンテナ非依存のテストツールであるArquillianがJBossより正式リリースしたので、試して見ることにしました。まずは、こないだ痛い目を見たのでJPA周りをT…

コーディングのアンチパターンを自分なりにまとめてみた

コードレビューをしてると「なんじゃこりゃぁ!?」というコードにまれに出くわします。既存のコードとの兼ね合いでなってる場合は、致し方無くても、新規コードまで真似するのは良くないですよね。 そろそろ新人エンジニアの中には「はじめてのこーでぃんぐ…

BufferedReaderのIterableなラッパーを書いてみた

XMLやらJSONやら構造化テキスト万歳の時代だけど、レガシーなシステムとの連携や何より作成のしやすさでCSVを扱う機会はまだまだ多いですよね。 で、自分が扱うCSVは大抵「Header」「Body」「Footer」に分かれます。このFooterが曲者。 Listにしてしまえば、…

JPA 2.0を触ってみた。

iBatisの開発もほぼ終了しちゃったので、検証がてらJPAを触ってみた。どうせ、JavaEE6は使ってるし、これが使えるならベスト。 Hibarnateをはるか昔に使ったことはあるのだけど、基本的なところは変わらずっぽいかな。 もちろん、細かいところは大きく変わっ…

PKUを久しぶりに解いてみる

後輩の教育向け & 自分のリハビリ(+英語学習)のためにPKUの問題を解いていくことにした。 まずは超かんたんなところということで、Numeral System(2685)あたりを。 昔といたことがあるはずな上に、基本レベルだというのに解くのに30分くらいかかってしまった…