ライブラリを導入するときの審査項目(安全性・信頼性・将来性)

0

2022年04月03日 7:56

この記事を読むメリット

ライブラリを導入しない理由を言語化してみました。
このライブラリ導入したくないなーと業務で思ったりしたらこの台本を使ってください!

そもそもなぜライブラリ導入時に審査をするのか

セキュリティ担保(脆弱性があったときに更新対応が大変)

導入したライブラリに脆弱性が見つかったときに対応が必要になるので大変です。

大きなサービスであれば、ユーザーに対してメールを送信しなければなりませんし、
メール送信されたユーザー側の心理としてはなんか怖そう退会するみたいな感じになるかもしれないです。
信頼を失う可能性があります。

サービス運営していてメール通知をすると大抵退会者が出てきます。
その通知内容がネガティブなものならさらに退会者出そうで嫌ですよね。

変更に強くなる(ライブラリとの依存関係がないためすぐにバージョンアップできる)

ライブラリに限らずなんでも依存関係は作らない方がいいですね。
理由は変更に強くなるからです。

例えば、Vue3にあげようとしたときに既存のライブラリは全てVue2にしか対応してないし、Vue3用にアップグレードすると記法が変わっていて全部書き直しみたいな状態になる可能性があります。

これは変更に時間がかかり、変更後もバグが出たりするのでUXが下がってしまいます。
変更に弱いサービスになることがわかります。
この修正を行なってる間に競合他社は新機能一個リリースしちゃってるみたいなことも起こり得るわけです!

ですので、依存関係を作らないようになるべくライブラリはインストールしない方がいいでしょう。

プロジェクトサイズが小さくなる(node_moduleの肥大化を防ぐ。大きいとメモリとストレージを圧迫し、遅くなる)

例えば、npmパッケージをたくさんインストールすると、インストール時間がかかったり、ビルド時間・デプロイ時間が長くなります。DX(開発体験)が悪くなるので、常にプロジェクトサイズは小さくしておきたいところです。

審査項目

数ヶ月以内に更新があるか

わかりやすいところで言うと、moment.jsが更新されていないです。
更新されることもないのですが、更新されてないライブラリは何か問題が起きたときに対応してくれないので自分で対応するか、アンインストールしなければなりません。

ちなみに数年更新しなくても動いてるライブラリは自分でも作れてしまうくらい小さなライブラリなのであまり導入メリットがありません。ソースコードみて独自実装することをお勧めします。

開発者は実績がある個人か、法人(またはチーム)か

開発者が個人で始めたばかりのライブラリは将来性の観点からNGにした方がいいです。
個人である場合は、その人が何らかの理由で開発をやめてしまう可能性があり保証がありません。
Next.jsやDockerのような法人(やチーム)がやってるライブラリならいきなり開発が止まるようなことはないので安心です。

ダウンロードやstarの数は多いか(npmパーケージならweeklyのダウンロード数が参考になる)

ダウンロードやstarの数が多いと言うのは、最初に使った人がライブラリに対していい評価をしてその評価が口コミで広まっていろんな人がいい評価をしてきた証明なので良質なライブラリです。weeklyのダウンロード数も見て今現在もきちんと使われているのかどうかを確認するとより正確です。

他の人も触れるか

これは特殊なライブラリで自分しかさわれない(学習コストが高く、使ってる人が多いわけではない)ライブラリを導入するとその箇所を後で変更する人がとても大変です。バグが出たらキャッチアップして仕組みを理解して修正します。大抵このようなライブラリはどこかでアンインストールされるので最初から入れない方がいいでしょう。

利用してる企業はどこか、本当にまだ使われてるのか

最近で言うとモノレポに対応できるよう lerna を導入している企業さんが多いですが、
導入していたreactやbabel、viteが導入をやめてると言う記事を見つけました。

ライブラリに更新があるかないかと同じ内容にはなりますが、
大きく有名なライブラリでもよく調べるとみんな使ってない(余韻に惹かれてみんなインストールしてる)可能性がありますのでチェックしておきたいところです。

# React.js
# Node.js
0

診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。

目次を見る