ブックマーク / blog.kengo-toda.jp (5)

  • 「非nullのint配列」をアノテーションで表すのは `@NonNull int[]` ではない - Kengo's blog

    正解は int @NonNull [] です。な、なんだってー! 当です。Java言語仕様書にも記載がありますが、配列を修飾する場合は [] の手前にアノテーションを書く必要があります。JVM仕様書に記載の例のほうがわかりやすいかもしれません: @Foo String[][] // Annotates the class type String String @Foo [][] // Annotates the array type String[][] String[] @Foo [] // Annotates the array type String[] 組み合わせて考えると、「要素も配列自体も非nullのString配列」は @NonNull String @NonNull [] になります。コレクションは @NonNull List<@NonNull String> みたいにわ

    「非nullのint配列」をアノテーションで表すのは `@NonNull int[]` ではない - Kengo's blog
  • Javaライブラリを配布する際のログ周りにおける配慮と実践 2020 - Kengo's blog

    この記事は、2013年に書いた記事を現状に合わせてアップデートするものです。結論から言うと、当時から id:miyakawa_taku さんがおっしゃっていた「APIは依存に含めて良い」を支持するものです。あるいは無難にバージョン 1.7.30 を使っておきましょう。 blog.kengo-toda.jp slf4j-apiに1.7, 1.8, 2.0の3バージョンが生まれた 現在slf4j-apiには3つのバージョンが存在します。現在のSLF4Jエコシステムを考える上では、これらの違いを抑える必要があります: 1.7.x Java 1.5から利用できるバージョンです。安定版にこだわるなら未だこのバージョンを使う必要があります。 1.8.x JPMS(a.k.a. jigsaw)を採用しServiceLoaderを使ってBindingを呼び出すようになったバージョンです。Java 1.6が

    Javaライブラリを配布する際のログ周りにおける配慮と実践 2020 - Kengo's blog
  • SLF4Jの使い方をfindbugsで自動検証する - Kengo's blog

    今日、拙作findbugs-slf4jのGitHub Pageを作りました。このブログではこのプロジェクトについて日語で紹介したいと思います。 概要 拙作PMDプラグインをもとに、2012年8月から実装を開始したfindbugsプラグイン SLF4J利用時のよくあるトラブルを未然に防ぎ、コードの品質を担保する 全自動なので、開発者各々の個性に影響されずに品質の底上を実現できる 既存の課題:SLF4Jの直感的ではないインタフェース SLF4J(Simple Logging Facade for Java)はJava向けに開発された、ログ用のFacadeです。開発者はSLF4Jが提供するインタフェースを利用することで、「高パフォーマンスなログ処理」と「利用者に好きなログ基盤を選ばせる自由」を提供することができます。例えばLog4j 2のような新しいログ基盤でも、プログラムがSLF4Jを使って

    SLF4Jの使い方をfindbugsで自動検証する - Kengo's blog
  • Basic of Golang - Kengo's blog

    miyakawa_taku
    miyakawa_taku 2013/04/13
    Go 言語のとっかかり。
  • Javaライブラリを配布する際のログ周りにおける配慮と実践 - Kengo's blog

    2020-07-22更新: 以下の投稿で情報をアップデートしています。 https://blog.kengo-toda.jp/entry/2020/07/21/223136 いつも購読させていただいている id:teppeis さんのブックマークに以下のエントリが流れてきて、なるほどこいつはたしかに厄介だと思いました。 javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ ただSLF4Jが最も先進的かつ著名なインタフェースである以上、配布側としてはSLF4Jを使いつつ問題を解決したいところです。他のインタフェースを使ったりオレオレ実装を使ったりしてしまうと、それこそユーザの自由度を奪ってしまう形になります。 実際、SLF4Jを配布パッケージに含めないという簡単な解決法がありますので、簡単に紹介します。悲劇を繰り返さないためにライブラリ開発者がす

    Javaライブラリを配布する際のログ周りにおける配慮と実践 - Kengo's blog
    miyakawa_taku
    miyakawa_taku 2013/03/17
    compile スコープでの依存先として、 SLF4J のバインディングだけでなく、 API も外すべきだという議論。ユーザはバージョンを上書きできるから、 slf4j-api は compile スコープでも良いのでは? (コメント済み)
  • 1