コンテンツにスキップ
検索語を入力してください

    JNI とネイティブ境界

    Scala / JVMドメインコードはJNI、JNA、ネイティブライブラリを直接呼ばない。必要なときはインフラadapterに閉じ、狭いScala APIの背後にネイティブ実装を隠す。

    ネイティブコードを小さなモジュールの背後に隠す

    Section titled “ネイティブコードを小さなモジュールの背後に隠す”

    ネイティブ連携が必要なとき(暗号アクセラレータ、メディアコーデック、レガシー SDK)、狭いScala APIを公開する:

    • 境界を越える前に入力を検証する
    • ネイティブ失敗を型付きエラーにマップする
    • ネイティブ層が前提とする不変条件を文書化する

    ドメイン遷移でのネイティブ呼び出し禁止

    Section titled “ドメイン遷移でのネイティブ呼び出し禁止”

    ドメイン遷移は純粋なScalaのまま。ネイティブ処理はインフラadapterで行う。

    ドメイン / applicationテストではネイティブラッパーをmockまたはfakeする。実ネイティブ統合テストは明示的なCI jobを持つadapterモジュールに限定する。