タグ

ブックマーク / irof.hateblo.jp (10)

  • Optionalの取り扱いかた - 日々常々

    JavaSE8で追加されたjava.util.Optionalにはnullとの戦いに終止符を打ってもらいたいと思っているんですが、思ってるだけだと何も起こらないので、使い方とか思ったこととかを一通り書いておきます。 Optionalのファクトリメソッド Optionalのインスタンスメソッド 値を取得するもの 値を使用するもの Optionalのまま扱うもの まとめ なお、一通りと言いつつOptionalIntとかはスルーしています。機会と書くことがあればそのうち書くかもしれません。 Optionalについては諸事情(遅筆とか理解不足とか分量とか)によりJavaエンジニア養成読では軽い紹介にとどまっておりましたので、補足としてお読みいただけると幸いです。あと、この辺も参考にどうぞ。 OptionalのJavadoc 一通り触って適当にコメント書いたコード(GitHub/sandbox)

    Optionalの取り扱いかた - 日々常々
  • 「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみる - 日々常々

    気象庁の地震情報|平成25年04月13日05時48分 気象庁発表 4/13のAM5:33にM6.0らしい地震がありました。各地で大きな被害が無いことを祈りつつ。 フジテレビのアナウンサーさんが淡路島の電車の状況を聞いたと言う話 【放送事故】フジテレビが淡路島民に「電車動いてますか?」と質問 「淡路島は電車ありません」 - NAVER まとめ だいたい見てると「電車無いのを知らずに聞いてしまった」のを叩く向きに思えます。実際のところ、聞いたこと自体はNGなのでしょうが、これをシステム開発の話に置き換えると見えるものがある気がしました。 以降はJavaの語彙で書きますが、これって NullPointerException っぽいなと。 コードっぽい何かで書いてみる こんな感じ。 運行状況 = 淡路島.get路線().get運行状況(); get路線() が何を返すのか知らないけど、これが nu

    「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみる - 日々常々
    kamatama_41
    kamatama_41 2013/04/14
    『ifとnullが嫌い』激しく同意
  • 文字列連結と+演算子について整理しておく - 日々常々

    何度か書いているけど、整理的な意味で。今後は「このエントリ参照」にするつもりで書いてみる。 文字列連結から見るシステム内で扱う型について - 日々常々 Javaプログラマであるかを見分ける10の質問 に答えてみる - 日々常々 String の連結ネタの続き - 日々常々 前書き Stringなんてboxed primitive*1でもないただのクラスのくせに、中途半端に贔屓されて*2てムカつく*3し、その中途半端ぶり*4がなお腹立たしい……。そして +演算子 で連結して問題が起こるような状況、つまりそんな長々と文字列連結したいような場合は、きっと他の適した型がある。StringBuilderじゃなく、もっと別の何か。業務要件で文字列を組み立てる目的を考えれば、たぶんテンプレート的なものに落ち着くんじゃ無かろうか。ライブラリ的な所でなら逐次書き出し等になるような。どちらにせよ文字列の組み立

    文字列連結と+演算子について整理しておく - 日々常々
  • junit-4.11.jar が単独で使えない - 日々常々

    寂しがりだから Hamcrest と一緒に使ってあげてね。 やってみる こんな風に書いて。 import org.junit.*; import static org.junit.Assert.*; public class HogeTest { @Test public void hoge() { fail("しぱーい"); } } こうして。 $ javac -cp junit-4.11.jar HogeTest.java $ ls HogeTest.class HogeTest.java junit-4.11.jar だーん。 $ java -cp ./junit-4.11.jar:. junit.textui.TestRunner HogeTest .F Time: 0.003 There was 1 failure: 1) warning(junit.framework.Test

    junit-4.11.jar が単独で使えない - 日々常々
  • Java SE 8 で入る Lambda の構文は新しいメソッド用と言うわけでもなく - 日々常々

    Java SE 8 でようやく Project Lambda が入ります。何が嬉しいかってーと内部イテレーターですね。内部イテレーターってそのオブジェクトの中でぐるんぐるんするんで、外からは「この処理をしてくださいな」と渡す必要があります。それを簡単に書けるようにしたのが Project Lambda の構文。よくfilterとか新しく追加されるメソッドと一緒に紹介されますが、それだけでもありません。 現行のJava*1でも、何らかの処理をするインスタンスを渡せば出来なくはないんですが、やっぱりなんだかんだで面倒くさくございます。たとえば Collections#sort に渡す Comparator とかがそれにあたります。こういうの。 メソッド引数に new Comparator とか出てきてインタフェースを無名クラス実装して渡す。コード自体はIDEが適当に埋めてくれるので書くのはそれ

    Java SE 8 で入る Lambda の構文は新しいメソッド用と言うわけでもなく - 日々常々
  • 職業PGにわかるFizzBuzz - 日々常々

    なんかFizzBuzzが書けないPGがどーとか定期的に話題になってるけど、私に言わせれば説明の仕方が悪い。 こうすれば誰でも書ける。 これだから最近の若いもんは……。 GoogleDocsのスプレッドシート、方眼紙作るのに向いてませんね……。

    職業PGにわかるFizzBuzz - 日々常々
  • 誤った共通化 - 日々常々

    前に書いた キョウミタコード と同系列のネタです。 「コードは共通化するべきである」 これ自体に真っ向から全否定することはまーないかなと思います。例えばこんな感じで処理A1-3から処理Bを呼ぶのパターンはよくあります。 コードの共通化。いいですねー。同じような処理をまとめておくとメンテコストがぐぐっと下がる気がします。これをしなきゃ、どんどんコピペされたメソッドが増えていくことでしょう。同じような処理はまとめていくことは重要です。 ところでこの図を見てください。 ……わかります?一度処理をまとめているにもかかわらず、まとめた処理がまた枝分かれしています。それもまとめる前と同じ単位で。コードで書くとこうなります。 class A { void method1() { B.method(1); } void method2() { B.method(2); } void method3() {

    誤った共通化 - 日々常々
    kamatama_41
    kamatama_41 2012/07/09
    共通化厨の自分がやってそうで怖い。
  • Groovyの文字列検索メソッド(eachMatch)の結果取得 - 日々常々

    GWだからGroovyの勉強してます! 音は 第6回「Groovyイン・アクション読書会」IN 関西 に参加申込してしまったので慌てて勉強してるだけだったりします。 発端 Groovyイン・アクションの写経をしていたら assert 通らないのがあったんです。 Groovyイン・アクション70ページのstring.eachMatchのassertが通らないのは、が間違ってるのか、写経間違えてるか、バージョンの違いか()無しだとmatchがStringになってんだよなー。かといって適当に()つけても変な挙動するし。 2011-05-05 18:33:38 via Echofon myFairStringy = 'The rain in Spain stays mainly in the plain!' BOUNDS= /\b/ rhyme = /$BOUNDS\w*ain$BOUNDS/

  • 「プログラマが体験するべき50の危険なこと」と「きのこ本」 - 日々常々

    「プログラマが体験するべき50の危険なこと」 - Togetterまとめ*1 プログラマが体験するべきではない50の危険なこと - Life like a clown はてなブックマーク - Togetter - 「「プログラマが体験するべき50の危険なこと」」 あるあるネタです。よくある危険な体験談なので、共感を得られるのも当然だと思います。ですが、単に並べるだけでは苦笑やネガディブなネタになってしまい、何も改善されません。 笑って済ませるのは悪です。そんなの皆わかってるでしょうけど、改めて「そんなもの」にしてしまわないように意識して欲しいと思うのです。どこが危険であり、どう改善するべきか。また、なぜそのような事が行われるか。そして実際体験する事になった場合の対処等に展開できたらいいなと思っています。最終目標はこれらの多くを無くす事です。こんな事、体験させるべきじゃないんです。 発端 子

    kamatama_41
    kamatama_41 2011/06/02
    いくつか普通にやってしまっていることがありました。反省しよう。
  • 勉強会にいこう - 日々常々

    プログラマになろうで「外の勉強会に行きましょう」とか書きましたけど、「そんな事言われても…」と感じる方も結構居ると思います。そんな方の気持ちを少しでも楽に出来ればと思って書いてみます。 いつどこでやってるの? まず存在を知らなければ参加も出来ませんね。という事で私が見つけてるところ。 Welcome to Twitter - Login or Sign up ATNDカレンダー検索 IT 勉強会カレンダー Twitterは言うまでもないですね。ATNDカレンダー検索はATNDの検索をしてくれるもの*1。IT勉強会カレンダーは id:hanazukin さんが個人で趣味でされているものらしいのです*2が、あらかたの勉強会の情報は集まっています。参加されてる方の話を聞くと、こちらで知ったって方も結構居ます。 募集サイトはいくつかあります。(随時追記) イベント開催支援ツール アテンド : AT

  • 1