Subscribed unsubscribe Subscribe Subscribe

「国際化プログラミングの常識」をチラ見

@it Java

再び、釣りなんだと信じて釣られてみる。

■ 国際化は「ほどほど」に!
(中略)

 さらに、Javaプログラマーが利用する国際化対応機能についても、すべてを使いこなす必要はありません。むしろ、国際化対応機能をむやみに使うと、訳の分からないソースコードが出来上がってしまう懸念すらあります。目的をしっかり持ち、必要となる国際化プログラミングを選択しながら、ほどほどに適切に利用する必要があるのです。

国際化プログラミングの常識: Javaプログラムの国際化について

「ほどほど」が「国際化」という言葉に係る例をはじめて見たわけですが、次の節を見て、なぜ筆者が「ほどほど」というのか分かったような気がした。次の文中にあった図が端的に状況を表わしていると思う。

あー、「blanco」というプロジェクトの仕様書を連載用に転用したんだなあ、というのはさておき、確かに、ソースコード中に

try {
    ...
} catch (UnsupportedEncodingException e) {
    // 2001/12/30 棟方 追記: このメッセージの内容は
    //「サポートしていない文字コードが指定されました」です。
    String msg = bundle.getString(AppConstant.MESSAGE1);
    // エラーログに記録するのみ
    log.error(msg, e);
} catch (UTFDataFormatException e) {
    // 2001/12/30 棟方 追記:このメッセージの内容は
    //「不正な文字フォーマットです」です。
    String msg = bundle.getString(AppConstant.MESSAGE2);
    // エラーログに記録するのみ
    log.error(msg, e);
}

とかありまくったら「訳の分からないソースコード®」になるよなあ。というか、そういうコードを保守しまくっていた時期もあったなあと。

そこ連番つき定数とか使うところじゃないだろとか思うのは gettext 脳になっているからでしょうか。

(追記: ソースコード中の人名および日付はフィクションです。いかなる実在の人物や事象とは関係ありません。)