タグ

ブックマーク / nowokay.hatenablog.com (6)

  • 10年間のプログラミングの変化といえばクラウド、型推論、リアクティブ - きしだのHatena

    この10年間のプログラミングの変化、というのが流れてきたのだけど、個人的にはクラウド、型推論付き静的型、リアクティブかなぁという風に思ってます。 クラウド(とスマホ) 2008年にGoogle App Engineが出たり、最初のHadoopサミットが行われたり、ちょうど10年前に始まったとも言えるクラウドは、すでに流行ではなく常識になっています。 いまや、クラウドを考えずにシステムを組むということはないんじゃないでしょうか。 スマホもこの10年で広まり、端末にUI、データはクラウドということも当たり前になっています。 40%の視聴率をもった紅白で視聴者が同時投票するようなことも、AWSを使って危なげなく行えるようになっていますが、10年前にこのようなサービスをたった4時間だけ行うということはなかなか考えにくいもので、実現できるのも限られたベンダーだけだったと思います。けれどもいまではそれ

    10年間のプログラミングの変化といえばクラウド、型推論、リアクティブ - きしだのHatena
    kontonb
    kontonb 2018/01/09
  • 新しいリリースモデルはJavaを使う人 全員要注目だった - きしだのHatena

    9月の頭くらいに、Javaのリリースモデルが6ヶ月ごとの短期リリースになるということが発表されてました。 で、「へぇ〜」みたいな感じで見てたのですけど、JavaOneでの話を聞くと、これ結構大変なのかも、ということになってそうなので、ちょっとまとめてみます。 追記:2018年05月の状況をQiitaでまとめています。 [Javaのサポートについてのまとめ2018 - Qiita](https://qiita.com/nowokay/items/edb5c5df4dbfc4a99ffb) Javaの新しいリリースモデル 公式情報はこちらにまとめられています。(10/4にアップデートされてます) http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html ざっくり言えば、6ヶ月ごとに機能リリースを行い、3ヶ月ごとにメンテナンス/セキ

    新しいリリースモデルはJavaを使う人 全員要注目だった - きしだのHatena
    kontonb
    kontonb 2017/10/07
  • [java][netbeans]NetBeans8.2にJShellを組み込む - きしだのHatena

    JDK9から導入されるJShell、IDEに組み込めれば最強だと思ってたのが、NetBeansで試せるようになっていました。 ずいぶん前にNetBeansにJShellを組み込む話が出てたのに、一向に開発ビルドに載ってこないと思ってたら、プラグインとして独立して開発されていました。 まず、次のHudsonサイトからupdate.xmlのURLをコピーします。 prototypes-repl9 [Hudson] これです。 http://deadlock.netbeans.org/job/prototypes-repl9/lastSuccessfulBuild/artifact/nbbuild/nbms/updates.xml プラグインダイアログの、「設定」タブで「追加」ボタンを押して、「アップデート・センター・カスタマイザ」を開きます。 適当な名前をつけて、「URL」にさきほどのupda

    [java][netbeans]NetBeans8.2にJShellを組み込む - きしだのHatena
    kontonb
    kontonb 2016/11/18
  • 文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena

    Java SE 7から、switch構文で文字列が使えるようになりました。 public void hoge(String s){ switch(s){ case "a": System.out.println("AA"); break; case "b": System.out.println("BB"); break; default: System.out.println("Other"); } } ところが、残念なことに、sがnullの場合はdefaultには飛ばず、ぬるぽが発生します。 そこで、null判定は事前にif文で行うことになるので、次のようなif-else switchイデオムを使うと便利です。 if(s == null){ System.out.println("Null!"); }else switch(s){ case "a": System.out.printl

    文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena
    kontonb
    kontonb 2016/08/02
  • 品質の文脈でコメントの代わりのメソッド導入が安易に受け入れられない理由 - きしだのHatena

    前提 目的は品質であり、品質のために読みやすさを求める。 メソッドを導入するとコードの複雑度はあがる。 コメントの記述ではコードの複雑度はあがらない。 コードの複雑度が高くなるとバグがでやすくなる。 バグがでやすくなると品質はさがる。 ここまでは今回前提とさせてもらいます。なので、ここで異論があれば、あぁそこに考え方の違いがあったのね、ということで。 目的が読みやすさであれば、まあそれで読みやすい人もいるんですねぇ、ということで終わらせることもできます。 ただ、このまえのエントリでは、品質がテーマです。 そういう前提では、読みやすいだけじゃなくて、品質を落とさないということも大事になります。 メソッドの導入は、基的に複雑度をあげるので、それはそれでやりすぎるとバグの原因にもなっていきます。 もちろん、メソッドによって式や処理に名前をつけるというのは、複雑度をあげたことを補ってあまる効果が

    品質の文脈でコメントの代わりのメソッド導入が安易に受け入れられない理由 - きしだのHatena
    kontonb
    kontonb 2015/05/22
  • Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena

    Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? Mapには、lambda式を使ったメソッドが多く追加されていますが、たとえばgetOrDefaultメソッドのようなlambda式を使わないメソッドも追加されていて、これも便利です。 そして、このようなlambda式を使わないメソッドも、間接的にはlambda構文サポートでの言語拡張のおかげです。 Mapはインタフェースなので、Java7までの構文でメソッドを追加しようとすると、Mapを実装しているすべてのクラスに新しいメソッドの実装を追加する必要がありました。そしてそれは現実的に不可能なので、今までMapなど

    Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena
    kontonb
    kontonb 2013/05/24
    Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのはてな
  • 1