2015/12/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 読んだ書籍2015

読んだ書籍2015




こっちのブログ記事でも書きましたが、本の部分だけ抜き出してみました。
全然読んでない!!






人月の神話【新装版】

人月の神話【新装版】


ピープルウエア 第2版 - ヤル気こそプロジェクト成功の鍵
ピープルウエア 第2版 - ヤル気こそプロジェクト成功の鍵

ソフトウェア開発を成功させるチームビルディング 5人のチームを上手に導く現場リーダーの技術

ソフトウェア開発を成功させるチームビルディング 5人のチームを上手に導く現場リーダーの技術



   
Javaエンジニア養成読本 [現場で役立つ最新知識、満載!] (Software Design plus)










SQLアンチパターン

SQLアンチパターン


プロジェクトを成功に導く 人を動かす調整力
プロジェクトを成功に導く 人を動かす調整力

現場で使える[最新]Java SE 7/8 速攻入門

現場で使える[最新]Java SE 7/8 速攻入門

Effective Java: A Programming Language Guide (Java Series)
Effective Java: A Programming Language Guide (Java Series)




2015/12/27 このエントリーをはてなブックマークに追加 はてなブックマーク - チームリーダとかやってみて最近気をつけてること

チームリーダとかやってみて最近気をつけてること




夏ぐらいから初めて開発メンバーのちっこいチームのリーダーをやったんだけど、
一応気をつけた事とかをメモしておこうという試みです。


開発チーム・・・自分含め4人ぐらい。


さよなら2015年、おいでませ2016年




もう僕は、すっかり年末モードになりました。
年を越す前に今年を振り返っておきたいと思います。




ざっくりハイライトです。



2015/12/24 このエントリーをはてなブックマークに追加 はてなブックマーク - KotlinのSeleniumライブラリKebabを作ってる #ktac2015 #jkug

KotlinのSeleniumライブラリKebabを作ってる #ktac2015 #jkug





こちらはKotlinアドベントカレンダー2015の24日目の記事です。





みなさん、Kotlin書いてますか?興味ありますか?
多分、どちらかの人がこのアドベントカレンダーを見てくれているのだと思います。

2014のKotlinアドベントカレンダーにも参加させていただきましたが、
ほんとにKotlin人口がここ1年で急激に増えて感慨深いものがあります(しみじみ)


今回のブログはgebインスパイア系のKebabというライブラリを作っているっていう話です。

https://github.com/yyYank/Kebab




名前は適当ですが、ケバブだと美味しそうですよねw
はい!…はい。




2015/12/12 このエントリーをはてなブックマークに追加 はてなブックマーク - 流行りの新技術のいなし方

流行りの新技術のいなし方






なんとなくだけど、
例えばはてブのホットエントリーに入るような情報というのは、正解やオススメは教えてくれる気がしている。

ある程度答えが明確になった後に書かれることが多いので。


でも実際にどうやってそこにたどり着いたのかというプロセスや
やり方は教えてくれないというか。


その人の経験則や知識として内在化してなかなか外に情報が出てこない。



2015/11/29 このエントリーをはてなブックマークに追加 はてなブックマーク - JJUG CCC Fall 2015でなんだか登壇させていただきました

JJUG CCC Fall 2015でなんだか登壇させていただきました





JJUG CCC Fall 2015に行ってきました!
JJUG CCC Fall 2015


そして、登壇までしてしまいました。
ホント今すごいですよ、開放感。もう年末の紅白見てこたつゴロゴロしてる気分。




ぼくの資料はこちらです。







資料レビュー

ここ1〜2週間ぐらい@irofさんや@backpaper0さん、@s_kozakeさんに資料のレビューをしていただきました。
本当に助かりました!!!

皆さんレビューの指摘が的確だし、コミュニケーションの取り方が親切だし、相手を尊重してる。
ホントにレビューというプロセス一つとっても学びがあるというかありがたいというか、、という感じで。

贅沢以外のなにものでもないなぁーと思いました。



発表練習

リハーサルは五回ぐらいしました。自分の家で。

発表内容が6章立てだったのですが、
章単位で区切ってムービーで録画、振り返りとして動画を確認、という作業を延々と繰り返しました。



多分独り言の激しい危ない奴と隣の部屋の人には思われたかもしれません。
自分の発表している姿をムービーに撮ったわけですが、色々ショック受けますよね。


・思った以上に滑舌が悪い
・ロックフラワーばりにクネクネしている



ロックフラワー知らない人はこんな感じです。




こんなクネクネしてる人の話誰も聞いてくれないがな…!!


ということで、なるべく身体の軸を安定させてフラフラしないように意識して練習しました。


あと、さくらばさんがポスチャーが大事、とTwitterで言ってたのをみて、なるべく 手で示すようにしたり表現するようにしたりを意識しました。…にしても不慣れすぎてもうひどかった。




・午前中
せろてぃーさんのすべらな〜い、基調講演見たかったんですが、




という感じで、目覚めたら11時でした。本当に申し訳ない。


・午後

午後から見たセッションはこんな感じです!
ホントに見たいのばかりで苦しいというか分身の術が使えるなら今すぐにでも!という気持ちいっぱいでした。



CD-1 苦手克服!例外スタックトレースから読み解くバグ
by 山本 裕介
#ccc_cd1


スタックトレース。まぁ普段読みはしますけど、
そこまで熟知出来ているかといえば自信が無い。
ということで、お話を聞きに行きました。


構成としては例外とエラーの違い、スタックトレースの見方
スレッドダンプの見方みたいな流れで、大体僕の想定通りでした。

スレッドダンプに関して、しっかり聞く機会が無かったので大変勉強になりました。
あと、IntelliJ IDEAでのライブコーディングが軽やかでした。


EF-2 How to speed up your application using JCache[通訳有]
by gregrluck
#ccc_ef2


JCacheのお話。というか、キャッシュという仕組みの話と言うか。
キャッシュって、僕の知ってる知識がいかに古いかというのを再確認出来ました。


・キャッシュは使った方が絶対に良い
・スケールアップ出来る
・スケールアウト出来る
・パフォーマンスがあがる

などなどのお話がありました。
特にRDBと比べたときのスループットの話や
JCacheの軽ーい話があり、詳しい話は時間切れ…という感じだった。。。



CD-3 よくある業務開発の自動化事情
by irof
#ccc_cd3


いろふさんの発表。
このお話、どうしてもいろふさん本人から聞きたくなり行ってみました。

リアルな自動化事情と落としどころ、綺麗めな解決策など
最近のトレンドと折衷案みたいなのが聞けて良かったです!




AB-5 Javaエンジニアに知ってほしい PostgreSQLアンチパターン
by 曽根 壮大
#ccc_ab5


正直この時間頭真っ白ですw
JSON型はテーブル設計が不定なプロトを作るときには有効で
仕様が固まってから正規化。というのはなるほどなぁと思いました。
あと、マテビューは安易に使うな見たいな話とか。
削除フラグの話とか。







正直ですね、そーだいさんの発表がほとんど頭に入ってきておらず、
気を紛らわすためにKotlinを書いて平静を装っていました。


そしていざ、壇上にあがり、HDMI端子をMacにつなぐと







リブート。








開始1分前。








大丈夫だ、まだ慌てる時間じゃない。
(いろふさんいわく、よっぽど焦ってたらしいです、ぼく)








ということで、たまたまに見に来てくださってたいろふさんのPCをお借りして
スライドを映しながらの発表となりました。


マジ死ぬかと思いましたね、ええ。


事前に準備しておくはずだった水と、ストップウォッチは
焦りすぎて発表前に用意出来ず。


JJUGの幹事の@miyakawa_takuさんの発表時間終了10分前、5分前のカンペは、ほとんど見る余裕無しというw(ごめんなさい)


色々ひっくるめて、反省材料がたくさん出来ました。





まぁ、放心状態ですよね。

発表したあとのビール美味しかった。

あと、あんなしょうもない発表でも興味持ってくれたというか、
「良かったよ」と声かけてくれる人が複数人いて。
本当にやったかいがありましたし、嬉しいなと思いました。ありがとうございます。


でも、僕はホンマはひしだまさんを見に行きたかった


壇上に立つからには来てくれた人に大して失礼の無いと言うか
面白いもの、ある程度意味のあるものにしたいと、一応頑張りました。


それにしても、本当、周りの方に助けられてなんとか発表が出来たと思っています。

圧倒的感謝ですよ、もう。ほんとに。
いろふさんいなかったらマジ死んでたし。



EF-7 コミュニティディスカッション~みんなもやろうコミュニティ運営~
by まーや&たろう
#ccc_ef7


そして、ぼーっとしながら、こちらのセッションに。
関Javaやテクブ、Java女子部、JKUG、django Girlとかだったかな?
色んなコミュニティの人がパネラーとしてパネルディスカッションが行われました。

ゆるくて、ワイワイ出来てなんか、見ている人と発表者が一緒に考えているような雰囲気が
心地よかったです!!とにかく楽しかった。


てらだよしおの赤裸裸タイムも気になったw





いつも通り、色んな方とお酒飲みつつお話が出来て楽しかった!!




LTも楽しかったです。


@mike_neckさんの話はLTじゃなくてもっとがっつり聞きたかったし、
Clojureの宣伝を果敢にしているあやぴーさんはたくましいなと思ったし
@zero_uさんはめっちゃ努力してるなぁとか思ったし

あと、@YujiSoftware さんが本当に僕のツボですwww
@miyakawa_takuさんとのマサカリに対するやり取り含め面白かったです。






本当に、来てくれた方ありがとうございます、という感じで。
いま、自分の考えてる事のほとんどがそれなので、
もうちょっと余裕が持てれば色んなセッションを楽しむ余裕が出てくるのかなぁと思います。
ということで、精進が足りない。精進します!!


たくさんの方とお会いして、お話し出来て、刺激をもらえて楽しかったです。
また春のJJUG CCCを楽しみにしてます!!




2015/11/14 このエントリーをはてなブックマークに追加 はてなブックマーク - JavaOne 2015 報告会 @ 東京に行ってきました #j1jp #jjug

JavaOne 2015 報告会 @ 東京に行ってきました #j1jp #jjug




※懇親会でTシャツもらいました!!わーい




Java One 2015報告会に行ってきました! JavaOne 2015 報告会 @ 東京

2015/11/08 このエントリーをはてなブックマークに追加 はてなブックマーク - 引っ越した

引っ越した




引っ越しました!!!

念のため、置いておきますね
欲しいものリスト

2015/10/31 このエントリーをはてなブックマークに追加 はてなブックマーク - Kotlin界隈の最近の動向ダイジェスト

Kotlin界隈の最近の動向ダイジェスト







最近やたらとめまぐるしい気がするKotlin動向をまとめました(ダイジェスト版)
というか、僕が最近忙しくて気づいたら色々動きがあるだけかもしれない。。。



2015/10/12 このエントリーをはてなブックマークに追加 はてなブックマーク - エンジニアリングしたかったけどマネジメントになっていた

エンジニアリングしたかったけどマネジメントになっていた



システムをエンジニアリングしたいな※1という思いが強い僕ですが、

気づいたらマネジメント的な部分※2を多くやっています。
というかチームビルディング的なところかもしれません。


2015/10/05 このエントリーをはてなブックマークに追加 はてなブックマーク - Javaの10進数からN進数変換はどうやったらスマートか

Javaの10進数からN進数変換はどうやったらスマートか








最近、進数変換が実装として必要な場面がありました。
10進数からN進数への変換。


みんなどうしてるの?

ということで解決策を考えてみます。


2015/09/27 このエントリーをはてなブックマークに追加 はてなブックマーク - Seasar Conference2015に行ってきました #seasarcon

Seasar Conference2015に行ってきました #seasarcon



Seasar Conference2015に行ってきました!


2015/09/26 このエントリーをはてなブックマークに追加 はてなブックマーク - 第2回関西Kotlin勉強会に参加&発表してきました

第2回関西Kotlin勉強会に参加&発表してきました




関西Kotlin勉強会に参加、発表してきました!

connpass.com





第2回関西Kotlin勉強会で発表してきたよ〜 #ashiyakt - 算譜王におれはなる!!!!
関西Kotlin勉強会 反省会 - シスアーキ in はてな


2015/09/17 このエントリーをはてなブックマークに追加 はてなブックマーク - 長い夏は終わった。KotlinのM13は君に語りかけるぜ!

長い夏は終わった。KotlinのM13は君に語りかけるぜ!







ということで、KotlinのM13がリリースされました。

ほぼ、公式blogのそのまま書くつもりなので、詳細は原文参照のこと。


Kotlin M13 is out!

今回の変更は言語の最終仕様の決定と言ってもいいでしょう。
そして、それぞれユーザーに意見を求めていた結果をフィードバックして、
言語デザインに反映しています。

2015/09/12 このエントリーをはてなブックマークに追加 はてなブックマーク - Java SE 8をジンワリ布教した

Java SE 8をジンワリ布教した






さて、来年にはJava SE 9が出るらしいですが。
最近、僕のプロジェクトもJava SE 8になりまして、
普段嬉々としてlambdaとかメソッド参照とか使いたがっている今日このごろです。


そんな中、ちょっとStream APIの布教活動したよーという話。


2015/08/29 このエントリーをはてなブックマークに追加 はてなブックマーク - とりあえずResultSet#getStringした時のPostgreSQLのjdbcドライバの挙動

とりあえずResultSet#getStringした時のPostgreSQLのjdbcドライバの挙動









いやぁ、夏なのに肌寒い日が続きますね。
そんな日はResultSet#getStringの挙動が気になりますよね。


JDBCの仕様に沿って、各ベンダーがjdbc実装をしているから、そりゃ挙動も変わってきます。
なぜかPostgreSQLの数値型をgetStringした場合の挙動を調べたのでメモがてらブログ書きます。




2015/07/31 このエントリーをはてなブックマークに追加 はてなブックマーク - ぼくがJavaとプロジェクト開発をどうやって学んだか

ぼくがJavaとプロジェクト開発をどうやって学んだか









たまたま、
「最近CとJavaを勉強しています。オブジェクト指向難しいです」
という学生さんと話す機会があった。


もっと学びたいし、身に付ける方法が知りたい。
現場の感覚を早く身に着けたいって感じのことを言ってた。


んで、その熱意が結構いいなぁと思ったので、
一体自分はどうやってプログラミングとかこの仕事に対するレベルアップを図ってきたか
考えてみよう。ということでブログを書く次第です。



2015/07/26 このエントリーをはてなブックマークに追加 はてなブックマーク - 人月の神話とピープルウェアを読んだ

人月の神話とピープルウェアを読んだ





ソフトウェア開発に関係する仕事をしている人なら必ず聞いたことがあるだろう2冊
人月の神話とピープルウェアを読みました。

人月の神話―狼人間を撃つ銀の弾はない (Professional Computing Series) ピープルウエア 第2版 - ヤル気こそプロジェクト成功の鍵

僕が読んだのは人月の神話の第三版とピープルウェアの第二版。
(新装版を読んだ人はぜひ、何が加筆修正されてるのか教えて欲しいです)


普段、そんな本読んでもブログに書こうとは思わないのですが、
昔から名著として語り継がれるだけあって、ホントに感銘をうけたので
ブログを書こうという気持ちになった次第です。



この記事は、内容を要約や解説するわけではなく、
単純な感想を書くつもりです。
本からの引用があれば明記するようにします。



2015/07/12 このエントリーをはてなブックマークに追加 はてなブックマーク - 神クラスにどう向き合うか考えてみる

神クラスにどう向き合うか考えてみる




最近、仕事で今見ているソースコードが
めっちゃHogeUtilとかFugaUtilとかだらけで、
ドメインのプレフィックス + Utilつけりゃなんでも良いのかよ…とか思って考えてます。

そんで、これはいわゆる神クラスというやつだなぁと。
そこに立ち向かうにはどうしたら良いのか、
(どうリファクタリングしたら良いのか、クラス設計したら良いのか)
みたいなことを考えてみます。




2015/07/11 このエントリーをはてなブックマークに追加 はてなブックマーク - 【小ネタ】Bloggerのコメント欄はHTMLがほぼバリデーションで引っかかる

【小ネタ】Bloggerのコメント欄はHTMLがほぼバリデーションで引っかかる





標題の通り。メモです。



brタグはOK
preタグNG
pタグNG
bタグNG
divタグNG
spanタグNG
liタグNG
uタグNG
strongタグはなぜかOK
delタグはNG
 はOK
<はOK
>はOK



したがって、コメント欄でジェネリクスとか書くときは
List<String> list = new ArrayList<>();
とか書かないとダメなのだ!
やだっ!

あと、4スペースとかでインデントしててもトリムされてしまうので
 
を4回とか。。。

2015/07/05 このエントリーをはてなブックマークに追加 はてなブックマーク - JUnitのTest用Visitorのメモ

JUnitのTest用Visitorのメモ




なんだかいつの日か、JUnitで使うテスト用のFileVisitorを作ってメモってたので、
ブログとして残しておく。

(イマドキはこういうのはgistとかにさっと書いてメモるもんなのかなぁ…)


大体、JUnitでのテストでネックとなるのが

・どうでもいいファイルをテストの間だけ作成する
・画像ダウンロードとかファイル出力とかのロジックで出来たファイルの検証がややこしい
・どうでもいいファイルをテストが終わったら削除する


とかだと思ってる。


今回はどうでもいいファイルを削除することと、
検証の方法の1つとして、生成されたファイル数をカウントするという
雑なVisitorを作ってみた。


2015/07/01 このエントリーをはてなブックマークに追加 はてなブックマーク - Kotlinの雑なテスト用DSLを作りなおした

Kotlinの雑なテスト用DSLを作りなおした







Kotlinでテスト用の雑なDSLを作るというのをやってみたんですが、
なんかイマイチなものが出来たなぁと思います。

記事を書いてからも改善出来ないかやり方を考えてたんですが、
もうちょっとマシなものが出来た気がするので、今回は続編記事です(まだ洗練されてませんが)。






2015/06/30 このエントリーをはてなブックマークに追加 はてなブックマーク - SIer to SIer

SIer to SIer





6月30日をもって、SIerのちっちゃい会社を辞めました。
7月からはSIerのちっちゃい会社で働きます。


僕が強く主張したいのは、転職タイミング的に夏のボーナスが出ないということです。
皆様のご好意をお待ちしてます!!!切実にビールとか技術書とか!!

ほしい物リスト











特に会社に大きな不満はありませんでした。
それに技術者のはしくれとして飯を食っていけるようになったのは
この会社のおかげなのでそこは頭上がりません。


ただ、この会社でやりたいことは全てやったなという
自分の中でのしきい値を超えただけです。

客観的に見てやり尽くしたわけではないでしょうが、
僕個人の主観としてはもうこれ以上はやることないなと。




1年前ぐらいの段階でその結論には至ってて、
あとは環境面、待遇面、業務内容などで良い会社
と巡り合えればなぁという気持ちでした。






これからも基本的にはSIです。今まで2次請けとかでしたが
1次請けとかやってく予定です。


あと、社内でプロダクト作って売ろうって話もあります。
(こっちはそこまで期待してない)



この会社以外にも軽く誘ってくれる会社だったりとか、
協力的な方もいたりとかで、感謝しています。






はい、ということで、ここから下は余談とかです。






今まで、会社にいてやろうとしていたことって
1人でも出来てしまうなってことが色々増えてきました。

1人で出来る事をプライベートワークとするか仕事とするか。
そういうことも転職にあたっては考えたりしました。


例えば、Androidのアプリ作るとか、
webサイト作るとか、勉強会とかで発表するとか。

あと、学習に関してもそう。
仕事でStruts使ってようがJava EE 7は覚えられるし、
他の言語だって覚えられる。
それは仕事とか環境のせいにしてはいけないし、
個人でやれることだと思いました。


逆に1人で出来なくて会社でやる意味のあることはなんだろうとか

チームビルディングとか大規模開発とか
顧客折衝とかシステムのパフォチューとか。


そういうのも転職のポイントだったかなぁと思います。








なぜSIerを続けるか、その1。


僕は、SIという感じのなんかウォーターフォールっぽい渦の中で
システム開発をしてきたりしてこなかったりしたわけですが、
いまだかつで、システムをインテグレーションしてる実感がわきません。

なんだか泥臭いことやカッコ悪いことばっかりしてる気がします。
ってあたりは以前にも書きました。

泥沼プロジェクト振り返り
現場ロックインが技術力さげてるのかもしれない


これは今まで居た会社がというよりは、
ひとえに、僕の力不足だと思ってます。


あと、「このプロジェクトは成功したぞー!」みたいな経験って今まであんまなかったなと。
そういう風に自分の力で導いてこれなかった。

だから本来の意味で、
SIerならシステムをインテグレーションしたいわい、という思いがあります。


そこのやり残した感があってSIerを続けたいなと思いました。
あと、単純にいろんなシステムでの経験値が少ない。
色んな業界の業務にも触れたいし場数を踏みたいなという。





なぜSIerを続けるか、その2。


なんかSIerはダサいことやってるとか、社畜がうんたらとかって
話題ばかりな風潮があんまり好きではないんです。
いや、僕もネタにすることあるんですけどね笑
でも、もっと明るい話があってもいいのになぁとか。



多重請負の構造とか契約形態とかっていうところまで考えは至ってなくて、
単純にプロジェクト単位とかチーム単位で幸せな話を増やしたいなぁと思います。


なんか、「技術がある人はSIer辞めてWebサービスの会社行くよね」
みたいなんもすごいモヤっとするんですよね。


そこまで僕に影響力があるわけではないですけど、
なんでしょう、憧れられるようなチームとかが
SIでいっぱい出来ればいいのに、と。



キャプテン翼という漫画で葵新伍ってキャラがいるんですが、

「ジャポネーゼ=サッカーの下手なやつを
ジャポネーゼ=サッカーの上手いやつに変えるんだ」

とか言ってまして、僕も気持ち的にはそんな感じに近いです。



などと、大袈裟なことを書いてみましたが、
いろんな場所で楽する術を身に着けたいですね、はい。
明日にはSIが嫌になってるかもしれません!!




30代前半を目処に、多分また結論を出します。
ジョブホッピーでヒッピーな感じにしたいわけもないんですが、
いろんな経験は積みたいし。


その頃に熟練度マックスだったらバトルマスターとか賢者とかなりたいですね
ってことです(出典:ドラクエ6)



でもまぁ、いい話があればいつでもお声かけください。
次の会社と自分と、、色々天秤にかけて真剣に考えると思いますので。
(我ながら甘い考えですね)





ほしかったものはこちら!!!
皆様のご好意をお待ちしてます!!!切実にビールとか技術書とか!!(2回目)

ほしい物リスト






2015/06/26 このエントリーをはてなブックマークに追加 はてなブックマーク - JJUG ナイトセミナー 「Reactive Streams特集」に行ってきました #jjug

JJUG ナイトセミナー 「Reactive Streams特集」に行ってきました #jjug




http://www.zhaojunlucky.com/architecture/what-is-reactive-systems/より引用


JJUG ナイトセミナー 「Reactive Streams特集」に参加してきました。

本記事では実際に参加して感じたこと、学んだことをメモがてらまとめようと思います。



今回参加の目的としては
・自分の中でバズワード化している「リアクティブ」な用語が分からない
・概念はどんなものか?
・ただのObserverパターンじゃないの?
・ただのFuture/Promiseじゃないの?
・ただのデータバインディングじゃないの?
・Stream APIっぽい関数型パラダイム的な何かじゃないの?

というところの曖昧さの整理とか勉強のためでした。


すでに色んな方がレポートを書いてます。みんな仕事が早いですね(^^;


JJUGのReactive Streams勉強会に行ってきました! - Java EE 事始め!
JJUG ナイトセミナー「Reactive Streams特集」に行ってきた #JJUG - mike-neckのブログ
JJUG ナイトセミナー 「Reactive Streams特集」に行ってきた #jjug - yukungのブログ



2015/06/25 このエントリーをはてなブックマークに追加 はてなブックマーク - Kotlinでテスト用の雑なDSLを作った

Kotlinでテスト用の雑なDSLを作った







Javaでまぁ、JUnitでテスト書きますよね。



テスト書くときにassertまでの間にインスタンス生成やら、
初期化やらset/getやらゴチャゴチャ書いてしまって見にくいな…って思ったことありませんか?

ということで、そこらへんを考えながらKotlinでテスト用のDSLを作ってみました。


2015/06/12 このエントリーをはてなブックマークに追加 はてなブックマーク - JavaのREPL、project kullaがスッゴイ便利!

JavaのREPL、project kullaがスッゴイ便利!







※注意

本記事は2015/06/12現在のproject kullaに関する情報です。
今後のJava SE 9のリリースやproject kullaの開発状況によっては内容が変わる可能性もありますのでご了承ください。




Java SE 9ではJavaにREPLが入る予定となっています。

その名もproject kulla!!


とある記事を読み、リリース前ですが今でも使えることを知りました。
これは使ってみたい!ということでトライしてみました。



2015/06/07 このエントリーをはてなブックマークに追加 はてなブックマーク - Javaエンジニア養成読本をようやく読んだので感想

Javaエンジニア養成読本をようやく読んだので感想







2014年の秋ぐらいにたしかJavaエンジニア養成読本という本が出てまして。
僕、すぐポチッと買ったんですよ。共同著者の皆さんに(8割ぐらい)サインまで貰ったんですけど、
ゆっくりゆっくり読んでたら全部読見終えたのが今日という…(激遅)


結論を言うと、以下の人は読みましょう。


・僕と同じぐらいのキャリアの人(2〜3年前後とか)
・Javaの研修は終わったぜー、これからプロジェクトで頑張るぜって人
・ワタシJavaチョットデキル人


Java覚えたての人、Javaを使って仕事しているけどなんだか自分の中に答えを持てない人。
ハッタリで仕事してる人。とか、とにかく一回読んで損はない内容だと思いました。

あと、Androidな人もよんでほしいなー。なんとなくですが。

うっすい本なのですぐ読めますよ!!!


ということで、感想を書いていこうと思います。



第3回かわいいKotlin勉強会で運営+発表してきました










2015年06月05日に行われた第3回かわいいKotlin勉強会で運営&発表してきました。
会場はドリコムさん!(いつもありがとうございます)


その時に話せなかったこぼれ話や補足をしようかなと思います。


2015/06/04 このエントリーをはてなブックマークに追加 はてなブックマーク - JavaエンジニアのためのJavaScript資料を目指して色々

JavaエンジニアのためのJavaScript資料を目指して色々









プログラマの中には何故かJavaScriptを避けたがる人がいるように思います。

フロントエンドのマルチブラウザ環境や
変化の早さ、テストの難しさなどを敬遠しているのかなと思っています。

[JavaFX] Why, Where, and How JavaFX Makes Sense

だけど、個人的には言語だけ見るとそんな必要もないなと思うのです。
JavaScriptは素直で便利なやつだと思ってます。


そこで、今回はJavaエンジニアに贈るJavaScriptについて、
という気持ちを込めて記事を書きます笑



2015/05/28 このエントリーをはてなブックマークに追加 はてなブックマーク - Java SEのパッケージを独断と偏見だけで断捨離する

Java SEのパッケージを独断と偏見だけで断捨離する









Javaの歴史も20年。
脈々と後方互換が守られてバージョンが上がってるわけですが、
ライブラリも豊富になっていき、覚えることも増えてきている気がします。

だけど、逆に今さら覚えなくても良いものもたくさんあるんじゃないか。
という疑問が浮かんできました。


それに加えて、個人的なことだけど、
Javaの色々を調べるうちにだんだんJavaが分からなくなった。
ので、全体図を俯瞰してみたくなりました。

ということで、Java SE のパッケージを眺めるのが良いかと思い、
それぞれ見ていくことにします。


2015/05/22 このエントリーをはてなブックマークに追加 はてなブックマーク - いまだにAPTって言葉使ってるの日本人だけっぽい

いまだにAPTって言葉使ってるの日本人だけっぽい











皆さんはAPTって言葉聞いたことありませんか?

Dagger2、Android Annotations、Lombokとかああいったものを使う時に
一緒に使われるシーンがあるようです。


APTって何気なく使っている方が多くて、なんとなくひっかかりました。
APTそのものをちゃんと説明している人は少ないなーって。


2015/05/06 このエントリーをはてなブックマークに追加 はてなブックマーク - 現場ロックインが技術力さげてるのかもしれない

現場ロックインが技術力さげてるのかもしれない





技術を学ぶというのはすごい個人差のあることだと思います。
個人特性もあるし、興味の向く対象も違う。
組織にはいろんな人間がいる。


そんな中、いくら「技術力を学ぼう!」と啓蒙しても、
響かないことってありませんか。



最終的には人それぞれの問題にはなってくるのだけれど、
それって、現場ロックインが一因なのではないかなと思う。





2015/05/01 このエントリーをはてなブックマークに追加 はてなブックマーク - 【コードリーディング】Kotlin to JavaScriptコンパイラメモ

【コードリーディング】Kotlin to JavaScriptコンパイラメモ







KotlinのAltJSな部分を最近見ているのですが、 やはりコンパイラの部分は気になります。

ということで処理の流れを追いかけます。今回はほぼ、自分用の簡単なメモです。


2015/04/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】AltJS?それ、Kotlinで出来るよ

【Kotlin】AltJS?それ、Kotlinで出来るよ










KotlinはJavaScriptへのコンパイラ(Kotlin to JavaScriptなコンパイラ)を搭載しています。


ただ、これまでKotlinでJavaScriptをやるというのはネガティブな印象が強かったと思います。
実用段階でないとか、機能として不充分とか。
一方で、KotlinがAltJSになるんではないかという注目をされている人も多少なりともいるようです。


で、足りないんだとしたらどこが足りてないのか、とか自分で確かめるしか無いな、と。

試した結果としては結構使えるんじゃないかなと思いました。




2015/04/27 このエントリーをはてなブックマークに追加 はてなブックマーク - 【圧倒的当事者意識】DroidKaigiに行ってきた

【圧倒的当事者意識】DroidKaigiに行ってきた






はい。僕は圧倒的第三者です。
DroidKaigiというAndroidの大きなイベントに参加してきました。






最近はAndroidから少し離れ気味な僕。マッチョなActivityを増やす日々だったりするので、
正直Androidの最新動向が分からない。ベストプラクティスとは。みたいな感じでした。


Androidの情報ってネットには多いんですが、
ググってもよく分からん情報ばっかり出るし何が正解か分からないなーってところもありました。


そんな中、DroidKaigiというイベントが目に入りました。
運営人も豪華メンバーというか有名どころばかり。




Webマーケティング的な部分も含めてなんか上手く取り組まれていて、
自然に興味がわきました。


参加募集開始数分で定員が埋まったわけですが、なんとか潜り込めました。
10時調度から全裸待機してた甲斐がありました。



2015/04/21 このエントリーをはてなブックマークに追加 はてなブックマーク - Javaのコレクションフレームワークで物足りないならGS Collections使ったほうが良いかもしれない

Javaのコレクションフレームワークで物足りないならGS Collections使ったほうが良いかもしれない







最近ちょっと話題になっているJavaのコレクションフレームワークライブラリである、
Goldman Sachs社のGS Collectionsというライブラリを試してみました。
GS Collections - GitHub



Java Day TokyoやJJUG CCC 2015 Springで僕は興味を持ち始めました。




結論としては題名通り。


2015/04/16 このエントリーをはてなブックマークに追加 はてなブックマーク - 泥沼プロジェクト振り返り

泥沼プロジェクト振り返り






ちょっと前まで結構激しく泥沼化したプロジェクトにいた。
その頃はプロジェクトも僕も相当疲弊していて、何も考える時間がなかった。

ある程度、月日が経って今なら
もう少し客観的にあの頃のことが考えられるかなと思い書いてみることにする。
振り返りをし、自分としてもプロジェクトとしてもどうあるべきであったかとか
そういう立派なことが考えられればいいのだが。



とかく、Slide Shareとか世の中は成功事例は多く発信される。
けど、失敗事例のほうが共通して当てはまったりする。



2015/04/15 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Javaの仕様が決まるとき】JSRの歩き方(基本編)

【Javaの仕様が決まるとき】JSRの歩き方(基本編)





Javaでのプログラミング、特にJava EEを用いたコーディングとかをしていると、
僕は「あれこれってどういう仕様なんだろう」ってなることが結構あります。


2015/04/12 このエントリーをはてなブックマークに追加 はてなブックマーク - 株式会社サムライズムに行ってきたのを思い出したので、レポート #ikemoku

株式会社サムライズムに行ってきたのを思い出したので、レポート #ikemoku



サムライズムさんがもくもくイベントっぽいのやるということで参加してきました!



4月9日(木) ふくろうJava #ikemoku


【JJUG】JJUG CCC 2015 Springに参加してきました




2015年4月11日に行われたJJUG CCC 2015 Springに参加してきました。

午前中はサボって13時から参加。。。(ごめんなさい)


2015/04/04 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】KotlinでもJava EE 8 のMVC1.0(Ozark)は動くよ

【Kotlin】KotlinでもJava EE 8 のMVC1.0(Ozark)は動くよ




Kotlin meets Java EE 8!!!


KotlinサイトとGlass Fishサイトより引用




はい、動きます。
しなくてもいい苦労をしたくなる僕です。




元ネタ
MVC 1.0(Java EE 8)をとりあえず動かしてみた - Java EE 事始め!

Java EE 8 のearly draftとやら。MVC1.0と言われるJAX-RSとかあたりによく似てる気がしないでもないやつです。


2015/03/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)Null安全性の変更、システムライブラリsequence、KDoc

【Kotlin】M11(マイルストーン11)Null安全性の変更、システムライブラリsequence、KDoc


JetBrains社サイトより引用




さてさて、KotlinM11リリースの謎の翻訳連載、四回目です!!
今回で最後。




第1回はKotlinのM11で変わったポイントでAndroid向けのものと、
第2回はCompanion Object、lambda、関数オブジェクトなどについて、
第3回はリフレクションについて紹介しました。


【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト

【Kotlin】M11(マイルストーン11)リフレクションも便利になったよ


そして今回はその他もろもろまとめてドン!って感じです。
どれも見逃すわけにはいかないのです!!


ということで、Null安全性の変更、システムライブラリsequence、KDoc etc...について翻訳します。



注:翻訳について





===================== 以下、Kotlinブログの翻訳 =============================



2015/03/29 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)リフレクションも便利になったよ

【Kotlin】M11(マイルストーン11)リフレクションも便利になったよ


JetBrains社サイトより引用




前回はKotlinのM11で変わったポイントでAndroid向けのものと、
Companion Object、lambda、関数オブジェクトなどについて紹介しました。



【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト




なぜか連載ぽくなっていますが(笑)、今回はリフレクションについてです。
リフレクションの変更も結構Kotlinに影響与えるものだと思いますね。
Kotlinのコンパイルやリフレクションを使ったシンタックスなど色々と波及するところだと思うので、
注目していて損はない!!!


ということで、今回はリフレクションの変更について翻訳します。




注:翻訳について




===================== 以下、Kotlinブログの翻訳 =============================



2015/03/27 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト

【Kotlin】M11(マイルストーン11)の目玉、Companion Objectとlamdaと関数オブジェクト





JetBrains社サイトより引用




前回はKotlinのM11で変わったポイントでAndroid向けのものを紹介しました。
【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある


ただ、その他にも大きな変化があったんです。
新規機能や変更が多いので何回かに分けてこのブログで書いていこうと思います。


今回はCompanion Objectとlambdaの変更、関数オブジェクトの変更について翻訳します。


注:翻訳について


===================== 以下、Kotlinブログの翻訳 =============================


2015/03/21 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある

【Kotlin】M11(マイルストーン11)はAndroid開発者のためにある



JetBrains社サイトより引用



2015年3月19日にKotlinのM11(マイルストーン11)がリリースされました。
そしてリリース内容を色々眺めていたのですが、テンションの上がる内容ばかり。
Android技術者がKotlinを使いやすくする前向きな姿勢がJetBrainsのアップデートからも読み取れます。

今回は、変更の中で特にAndroid開発者向けの変更と思われるものを
リリース情報をJetBrainsのブログから雑に翻訳してみました。
元記事はこちらです。
Kotlin M11 is Out!


注:翻訳について

以下翻訳です。







【JUnit】出来るの?かもしれない@Aftrer処理をメソッド単位でSkipする方法






例えば、テストクラスで@Afterな処理があったとして、
どうしてもTestA、B、Cではその後処理が必要なのだけれども
TestEで不要だということありませんか???ありますよね?(多分あんまりない)。

TestEのためだけに@Afterで定義しているメソッドをいじるのはなんだか嫌ですよね



これはテストがNなのに対して@Afterの処理が1なので起こり得る問題なのではないかと思います。
そういう時のためのTipsです。



2015/03/18 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Android】Intentを発行してファイルパスを取得する

【Android】Intentを発行してファイルパスを取得する









Android端末からファイルを選択してファイルパスを取得したいと思った時、
どうやろうかなぁって思い調べたらこの記事を見つけました。

Androidでファイル選択ダイアログができなかったのでIntentでファイル選択アプリを呼び出す




この記事見た時になるほどなぁと思ったんですが、「あれこれする」ってどうすりゃいいんだ、と。
勝手に続きを書こうかなと思います。








・Android端末から外部のIntentを発行してFileエクスプローラのアプリを起動する(Google Driveとか)
・onActivityResultからファイルパスを取得する
・InputStreamを生成する



いたってシンプルです。





ファイルエクスプローラーを開き、指定したファイルパスを取得するソースは以下のとおりです。

    // 識別用のコード
    private final static int CHOSE_FILE_CODE = "12345";
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("file/*");
        startActivityForResult(intent, CHOSE_FILE_CODE);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {
            if (requestCode == CHOSE_FILE_CODE && resultCode == RESULT_OK) {
                String filePath = data.getDataString().replace("file://", "");
                String decodedfilePath = URLDecoder.decode(filePath, "utf-8");
                imageText.setText(decodedfilePath);
            }
        } catch (UnsupportedEncodingException e) {
                // いい感じに例外処理
        }
    }



こんな感じでエクスプローラー向けにIntentが飛びます。任意のアプリでファイルを指定すると
onActivityResultイベントが発生し、ファイルの情報をIntentから取得できます。




Fileインスタンスの取得やInputStreamの生成はこんな感じです。Java SE6が主流なAndroid。多分。

File file = new File(decodeFilePath);
FileInputStream fis = new FileInputStream(file);






IntentからgetDataStringで取得できるというのがまず分かりませんでした。
これが正解っぽい。
file://という文字列はいらないです。接頭辞としてfile://から始まり、端末のフルパスが続くようなので、
先頭の部分を置換で切り取ってます(もしかしたら端末に酔ってはうまくいかないとかあるのかな)。


あと、取得したファイルパスはURLエンコードされてるのでそのまま使おうとするとハマりました。







今回は以下のことを目的にソースとハマりどころを書いてみました。
・Android端末から外部のIntentを発行してFileエクスプローラのアプリを起動する(Google Driveとか)
・onActivityResultからファイルパスを取得する
・InputStreamを生成する


ハマりどころなどはこんな感じでした。

・Intentでファイルエクスプローラアプリに通知する
・onActivityResultで選択したファイルの通知を受け取る
・Intent#getDataStringでファイルパスは取得できる
・file://は不要っぽいので切り取る
・パスはURLエンコードされているのでデコードする





気がかりな点としては端末依存していないか。
汎用的に使えるような処理になっているのかがちょっと気になりますね。
(例えば端末Aでは・Intent#getDataStringが"file://....."の文字列を返し、端末Bでは"//..."になってるとか)


今どきのAndroidな人はこんなこと考えずとも分かるのかなぁ。
あと外部のアプリケーション頼みなので、ダサいですね。

アプリ内部でエクスプローラー相当の機能を設けたほうがアプリによる差異が出なくて
平和なんだろうな。




2015/03/15 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Kotlin】逆引きKotlinというサイトをはじめました

【Kotlin】逆引きKotlinというサイトをはじめました










こちらの記事で以前にKotlinには逆引きサイトが無いということに関して
言及しました。そして僕の考えとしては、

・Kotlinを使う参入障壁下げる
・日本語の情報を増やす

という観点から必要性を感じていました。


そして、年末に僕の個人的な今年の抱負として、
「Kotlinの逆引きサイトを立ち上げる」という目標がありました。
で、今月作業を始めまして、なんとかベータ版的な内容量ではありますが形に出来ましたので
ご報告としてエントリを書いてます。


そう、宣伝です(笑)


こちらがそのサイトです。

逆引きKotlin



今のところは以下の様なページが有ります

・Kotlinをインストールする
・KotlinプラグインをIntelliJ IDEAに導入する
・KotlinプラグインをAndroid Studioに入れる
・AndroidでHello World
・KotlinをEclipseで動かす(非推奨)
・変数を宣言する
・型を宣言する
・インスタンスを生成する
・配列を生成する
・関数を宣言する
・条件分岐を行う
・ifを式として扱う
・switchみたいな条件分岐がしたい
・ループ処理を行う







サイトに対しての加筆・修正プルリク新規ページ作成のプルリクなどお待ちしています。
基本的には僕が作っていくつもりですが、公開することでなんらかのフィードバックが得られれば嬉しいなという
狙いがあります(他力本願)。








サイトのソースはGitHubで管理してます。 https://github.com/yyYank/kotlin-rev-solution


mkdocsというpython製の静的サイトジェネレーターを利用してサイトは構築しています。
マークダウン方式で書いてますので、ここらへん
.mdファイルを新規作成するか、既存のものに加筆修正してプルリクしていただければ、こちらで内容を確認の上マージ致します。









今回は簡単ではありますが、サイト開設のアナウンスと、サイト開設の経緯、
また、ソースは公開状態であり、どなたからでもリクエストを受付けているというお話でした。


このサイト開設により、Kotlinを気軽に試せる方が増えてくれればなぁと思っています。


最近の話で言うと、きりみんさんの某記事でKotlinに一気に注目する人が増えたのが
嬉しい誤算でなんだかあっけにとられています笑

2015年のAndroid開発はKotlinで決まりかもしれない - みんからきりまで




冒頭でも述べたように、まだベータ版といったレベルで情報量は少なく、
「逆引きって言う割には逆引出来ないじゃん」みたいな状態ですが、
地道に情報を増やしていき網羅的なものにしていきたいなぁと思っていますので、
温かい目で見ていただければなぁと思っています。。。。








2015/03/01 このエントリーをはてなブックマークに追加 はてなブックマーク - 続・【Selenium WebDriver】wait処理のCustomConditionを作る

続・【Selenium WebDriver】wait処理のCustomConditionを作る



http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用


前回に書いた記事の waitのCustomConditionなのですが、微妙な気がしたので書き直しました。



2015/02/26 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Selenium WebDriver】wait処理のCustomConditionを作る

【Selenium WebDriver】wait処理のCustomConditionを作る



http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用





・selenium-java version 2.44.0






WebDriverWaitは描画処理などの関係でwaitをかけることに特化したクラス。
waitを使うときには以下のように書く。



 
 WebDriverWait wait = new WebDriverWait(driver, 10);
 wait.until(ExpectedConditions.alertIsPresent());
 // 処理
 doSomething();
 ・・・・
 



WebDriverWaitのインスタンスを生成し、untilメソッドで引数で
渡した条件(ExceptedCondtionインスタンス)がtrueになるまで待つ。

(正確に言えば、untilメソッドの引数は
com.google.common.base.Functionインターフェースか
com.google.common.base.Predicateの具象クラスインスタンス。
ExceptedCondtionはFunctionを継承している)



ExpectedConditionsはExpectedConditionインターフェース型の
無名クラスインスタンスを生成するstaticメソッドを持っているのでこのような記述になる。
(ExpectedConditionsクラスとExpectedConditionクラスって紛らわしい)




2015/02/21 このエントリーをはてなブックマークに追加 はてなブックマーク - しょぼちむにデータモデル設計について教えてくださいの会 #syoboben に行ってきました

しょぼちむにデータモデル設計について教えてくださいの会 #syoboben に行ってきました










友人のsyobochimが勉強会やるということで、裏方(運営)的なポジションで参加させていただきました。
しょぼちむにデータモデル設計について教えてくださいの会 #syoboben


勉強会の様子はtogetterで雰囲気を感じていただければと思います。
ゆるふわと見せかけてガチ勢が来たしょぼちむ勉強会



会場はドリコムさん。こんなかんじ。エントランスにはベイマックスがいました。





以下、発表を順に振り返ってみます。。。。



2015/02/18 このエントリーをはてなブックマークに追加 はてなブックマーク - 【お約束】Kotlin + AndroidでHello Worldすぐ出来たよ

【お約束】Kotlin + AndroidでHello Worldすぐ出来たよ



最近まではJavaでAndroidアプリを作っていたのですが、
ようやく使いたかったKotlinでAndroidアプリを作り始めました。


ということで、ド定番のHello Worldをやってみました。






2015/02/08 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Selenium2 WebDriver】マルチブラウザのWebDriverをJUnitから実行する

【Selenium2 WebDriver】マルチブラウザのWebDriverをJUnitから実行する




http://www.code-thrill.com/2012/03/selenium-walkthrough.htmlより引用






とりあえずIEとChromeとFirefoxを簡単に動かせる実装をする






・IEとChromeなどのDriver.exeを用意する



ダウンロードはSeleniumのオフィシャルから。



・プロパティファイルを用意する



こんな感じ


#IE
driver.ie.exe=C:\\IEDriverServer.exe
driver.ie.key=webdriver.ie.driver
driver.ie.driverclass=org.openqa.selenium.ie.InternetExplorerDriver

#Chrome
driver.chrome.exe=C:\\chromedriver.exe
driver.chrome.key=webdriver.chrome.driver
driver.chrome.driverclass=org.openqa.selenium.chrome.ChromeDriver

#Firefox
driver.ff.driverclass=org.openqa.selenium.firefox.FirefoxDriver







JUnit4.9から導入された@Ruleを利用して、マルチブラウザ対応をしてみようと思う。
便利ですね。Ruleアノテーション。最近まで全然知らなかったので地味に感動してる。










まずは簡単なRuleクラスとデータの受け渡し用のstaticなクラスを作る。
(誰かデータの受け渡し方にもっと良い方法があれば教えてください)






public class BrowserRule implements MethodRule {
    private final String[] paths;

    public BrowserRule(String... paths) {
        this.paths = paths;
    }

    public Statement apply(final Statement base, FrameworkMethod method, Object target) {

        return new Statement() {
            @Override
            public void evaluate() throws Throwable {
                for (String path :  paths) {
                    ModeContext.setBrowserName(path);
                    base.evaluate();
                }
            }
        };
    }
}


public class ModeContext {

    private static String browserName;
    private ModeContext () {}
    
    public static void setBrowserName(String name) {
        browserName = name;
    }
    
    public static String getBrowserName() {
        return browserName;
    }
}





呼び出し側はこんな感じで@Ruleをつけてコンストラクタ引数に任意のブラウザ名を渡すだけ。
keyのバインドがダサいなぁ。。。。

Firefoxに関しては、Systemプロパティの設定が不要らしい。普通に動く。
(ブラウザの設定を変えたりするにはプロファイルの設定とか必要だったりするらしい。)





public class HogeHogeTest {

    @Rule
    public BrowserRule browserRule = new BrowserRule("ie"); // ie
    //public BrowserRule browserRule = new BrowserRule("chrome"); chrome
    //public BrowserRule browserRule = new BrowserRule("ff"); firefox
    //public BrowserRule browserRule = new BrowserRule("ie","chrome","ff"); これもできる

    public WebDriver driver;


    @Before
    public void startUpClass() throws Exception {
        Properties prop = loadProperties();
        final String browser = ModeContext.getBrowserName();
        final String[] PROP_KEYS = new String[] { "driver." + browser + ".exe", "driver." + browser + ".key", "driver." + browser + ".driverclass"};
        if(!browser.equals("ff")) {
            Path path = Paths.get(prop.getProperty(PROP_KEYS[0]));
            System.setProperty(prop.getProperty(PROP_KEYS[1]), path.toAbsolutePath().toString());
        }
        Class<?> clazz = Class.forName(prop.getProperty(PROP_KEYS[2]));
        driver = (WebDriver) clazz.newInstance();
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        driver.manage().timeouts().setScriptTimeout(3, TimeUnit.MINUTES);
        driver.get("http://localhost:8080/hogehoge");
    }

    private Properties loadProperties() {
        try {
            ClassLoader loader = Thread.currentThread().getContextClassLoader();
            Properties prop = new Properties();
            prop.load(loader.getResourceAsStream("DriverSetting.properties"));
            return prop;
        } catch (IOException e) {
            throw new IllegalStateException("failed load DriverSetting.properties ", e);
        }
    }
}















ここまで作るのだけならとても簡単です。
ただ、ここから実際に複数のブラウザでテストを実行すると
テストが赤くなりまくりますね。ブラウザの差異があるのでどうしてもそうなってしまう。
差異とは、画面描画時の位置が微妙に変わりElementNotBisibleExceptionが発生したりとか
そういうことです。そのほかにもブラウザ特有のものとか、、、きっとあるでしょう。



やるなら、はじめに1つのブラウザから始めることを推奨します。
その後マルチブラウザ対応というのが良いのではないでしょうか。















2015/01/30 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Selenium2】WebDriverでハマったところとかTips8選

【Selenium2】WebDriverでハマったところとかTips8選



http://www.softwaretestingclass.com/what-is-selenium-webdriver-selenium-training-series/より引用








最近、Selenium WebDrvierを利用する機会を得ている。


自動テストはやはり便利。打鍵やるのはバカらしいなって気分になる。
ただ、あんまり難しいことしようとするとどうしても作りこみが必要。


GebというWebDriverのラッパーがかゆいところに手が届く感じらしいので、
次回は検討しようかなぁ。

参考
脱・独自改造! GebでWebDriverをもっとシンプルに


使い始めて感じたことやTIPSをメモがてら残しておこうと思う。


2015/01/13 このエントリーをはてなブックマークに追加 はてなブックマーク - 各言語のWeb REPLサービスまとめ

各言語のWeb REPLサービスまとめ





http://ivandemarino.me/2012/02/27/PhantomJS-REPL-it-s-ready-for-a-taste/より引用






「○○言語はどんな環境でも動きますよ」
「△△だから導入が簡単」

とかって言葉は各方面で聞きますが、
なんだかんだ、インストールだのダウンロードだの、少しの手間がかかってしまいます。


新しい言語を覚えてみよう、ちょっとためしにコーディングしようみたいな時
その手間が惜しい。


環境構築したは良いけどすぐ飽きちゃう気がする。だからやめとこっかなー、みたいな。



そういうめんどくさがりの人のために、今回はWeb REPL(またはWebコンソール)を
提供しているサイトをまとめてみました。



Webブラウザと接続できるネットワークさえあれば気軽に試せるなんていいと思いませんか?