タグ

ブックマーク / nagise.hatenablog.jp (8)

  • Javaのリスク考察 2018年版 - プログラマーの脳みそ

    Java10以降、Java SEのリリースサイクルを6カ月単位とすることが発表されてしばらく経ち、また、予告通りJava11からいよいよJavaのサポート体制も変更となった。 稿ではJavaを使い続けるリスク、あるいはほかの言語ランタイムを使い続けるリスクについて検討してみたい。プログラム言語は用途に応じて様々なものが使い分けられている。特に稿では選択肢が多く、またJavaのシェアも高いサーバーサイドのWebシステムという戦場で検討してみたい。 「Javaリスク」という単語、語呂が良い— なぎせ ゆうき (@nagise) 2018年10月11日 pic.twitter.com/tBGvupxtJ4— rf (@rf0444) 2018年10月11日 ランタイムの有償化リスク 無償で提供されていたプログラム言語のランタイムが、突如有償化するリスクをまず考えてみよう。この点で、Java

    Javaのリスク考察 2018年版 - プログラマーの脳みそ
  • ジェネリクスの代入互換のカラクリ - プログラマーの脳みそ

    Javaジェネリクス再入門 - プログラマーの脳みそでは、「変数の型の宣言」の項で「ジェネリクスの<>の中は一般のJavaの型の代入互換性とは異なる。このことはよく覚えておかなくてはいけない。」と言ったものの、深入りはしなかった。 このあたりについて深入りしてみようじゃないか。 とりあえずサンプルコードはJavaで記述していくが、このあたりはジェネリクス指向の概念の部分だから、あまり言語に依ることはない。便宜的にJavaで書く、としておこう。 まず、型変数の境界について考えるために以下の継承関係のクラスを用意しておく。 public class A {} public class B extends A {} public class C extends B {} public class B2 extends A {} public class C2 extends B {} これは図で

    ジェネリクスの代入互換のカラクリ - プログラマーの脳みそ
  • Javaでセミコロンなしでプログラムを書く - プログラマーの脳みそ

    java-ja温泉2日目の夕。 @yoshiori がpythonのワンライナの楽しさを得々と語っていた。 @yoshiori「Brainf*ck を Python-oneliner にコンパイルする Python-onelinerを書いたけど全ッ然反応がなかった。こんなに面白いのに!」 @yamashiro「だって分かりにくいもん」 西尾先生が通常ワンライナではtry-catchが使えないけど子プロセス立ち上げて例外を出力してパースすればエラー処理ができるとか(http://www.nishiohirokazu.org/blog/2006/08/python_12.html参照)そんな話で盛り上がる中、 @nagise「Javaでセミコロンなしでプログラムが書けるような気がしてきた」 Javaの場合、普通にセミコロン(;)でマルチステートメントにかけるのでただ1行にしようというなら改行

    Javaでセミコロンなしでプログラムを書く - プログラマーの脳みそ
    igaiga07
    igaiga07 2010/03/25
    こういうの大好き
  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
  • 2010年版インスタンス生成考 - プログラマーの脳みそ

    2010年現在のアクセスレベルの限界 - プログラマーの脳みそではpublic, protected, private, パッケージプライベートという4つのアクセスレベルではうまく行かない事例という視点だったけど、例に挙げたDIコンテナ云々というのはアクセスレベルの不備というよりも、コンストラクタの不備と捉えるべきだ。 コンストラクタを使わないインスタンス取得 Javaの場合、インスタンス生成はコンストラクタによって行われる。そのクラスの外部から、インスタンスを得ようとする場合の一番基的なインスタンス取得方法は、new によってインスタンスを新たに生成する方法。 しかし、たとえばGoFデザインパターンのSingletonであるとか、あるいはFlyweightであるとか、返すインスタンスが常にnewされるわけではなく、既存のインスタンスを使い回して返すような作りに使用とした場合、コンストラ

    2010年版インスタンス生成考 - プログラマーの脳みそ
  • 2010年現在のアクセスレベルの限界 - プログラマーの脳みそ

    前提条件を破った場合、どのような挙動をするのか? - 都元ダイスケ IT-PRESSで言及をもらったので 現代は4つのアクセスレベルでの可視性制御の限界が囁かれていて、打破するためにいろいろ模索しているところ はてなブックマーク - Nagiseのブックマーク / 2009年12月24日 についてちょっと具体的な話をしておこう。 このブックマークコメントは可視性と公開APIと非公開(内部)APIと - 都元ダイスケ IT-PRESSに対してつけたものだった。このエントリは設計する際にJavaの4つのアクセスレベルをどう使い分けるかを書いた良エントリだと思う。 privateで困る例:自動テスト JUnitといった自動テストコードを書くことを考えてみよう。クラス内だけで再利用される冗長コードをprivateメソッドとして括り出した。このメソッドが単体独立で動作検証が可能なのであれば、そのI/

    2010年現在のアクセスレベルの限界 - プログラマーの脳みそ
  • FizzBuzz ループ→再帰→Composite→Strategy→Visitor - プログラマーの脳みそ

    最近FizzBuzzをblogで書くといいよみたいな流れになっている(曲解)ので FizzBuzz - 文殊堂 と id:monjudoh が言ったからというわけではないのだけど、FizzBuzzとアルゴリズムの書き換えの話をしよう。 やや昔のエントリになるけどもJavaでFizzBuzzを再帰で作ったというエントリをみつけた。 public class FizzBazzSaiki{ public static void main(String[] args){ System.out.println(func(args.length>0?Integer.parseInt(args[0]):30)); } public static String func(int i){ if(i == 1) return "1"; System.out.println(func(i-1)); return

    FizzBuzz ループ→再帰→Composite→Strategy→Visitor - プログラマーの脳みそ
  • java-ja15回で考えたこと - プログラマーの脳みそ

    イベントレポートとかは他に挙げている人が多いので割愛。ここではjava-ja15回で挙がったネタとかで想起されたことを書くことにしよう。プログラマの馬鹿話ってこんなんだぜ的な。 宮武蔵はアジャイラー説 宮武蔵が五輪の書でアジャイルを説いているという説。僕は五輪の書を読んでいないので判断は保留。先物相場が世界に先駆けて日で生まれていたみたいな突飛な面白さがあっていい。会場でも賛否両論と言った感じの反応。 武蔵の肖像画が理解できない人は少なかったみたい。Seasarカンファレンスでネタを飛ばしたら全然理解してくれなくて会場が凍った話とか。たとえ話を出してたとえをみんな知らなかったら確かに泣ける。@cactusmanが今日はスーツコスプレですとか言って会場を凍らせた話も。僕らがそもそも少数派だから会場でネタを言う時は身内で通じたからと言って安易に語ってはいけないというありがたい話。 @t_

    java-ja15回で考えたこと - プログラマーの脳みそ
  • 1