ライブラリのコードを隠蔽する

ライブラリのコードを隠蔽する

  • 私は今、PHPでLaravelを使うプロジェクトに参加しています
  • ジョイン当初に驚いたのは下記の様なコードが散見されていたことです
return response()->json($result);

論点は2つ

  • ライブラリに致命的な脆弱性が見つかった際に徹夜を免れることができるか?
  • ライブラリがアップデートされた際にシグニチャが変更されてもすぐに対応できるか?

どうすればよかったか?

  • ライブラリのコードは問題があったとしても不可侵であるべきです
  • 問題が発生するリスクをヘッジするため、ライブラリのコードを利用するラッパー関数を準備しましょう
  • プロジェクトでライブラリにアクセスする場合はそのラッパー関数を利用する様にしましょう
  • これはフレームワークに限ったことでなく利用しているサードパーティのライブラリ全てに適用されるべきルールです
  • ライブラリは先人の知識の結集であり、とても尊いものです
  • しかし、どんなに優秀な人でもミスを犯し得ます
  • また、宗旨替えをしてシグニチャ命名規則を変更することは容易に予測できます

伝えたいこと

  • サードパーティのライブラリは不可侵であるべき
  • 脆弱性やバージョンアップに備えて使い易いインターフェースを一つ用意しましょう
  • たとえ、ライブラリが変わっても言語が変わってもインターフェースは生き続けます
  • これらは脆弱性や互換性を無視した変更に強く対応することを可能にします
  • 徹夜をしないで済む様に節度を守り、正しくライブラリを利用させてもらいましょう
  • 私はキャリアの最初の段階でこのことを同僚に教えてもらいました、今となっては非常によい財産です