1
/
5

そのライブラリは本当に導入すべきですか? ライブラリとフレームワークは最小限の法則

こんにちは。OKANでCTOを担当している川口です。昨今のWebシステムを開発において、ライブラリやフレームワークを何も使わないで開発を進めていくことはほとんど無いと思います。今回はライブラリやフレームワークの選定・採用時に注意している観点についてお話したいと思います。

ライブラリ・フレームワークは最小限

世の中にはライブラリやフレームワークが沢山存在していますし、それらを利用すれば簡単に素早く開発できるのは事実です。研究開発が活動の主目的ではなく、事業推進のためのシステム開発を行っている我々のような開発部門では、ライブラリやフレームワークをどんどん利用して、工期をできるだけ短縮することを優先する傾向が強くなりがちになるのも理解できます。

しかし、中長期的な保守・運用を考えていった場合、ライブラリやフレームワークを使用することによって発生するデメリットもしっかり考慮していく必要があります。OKANの開発部門でライブラリ・フレームワークを採用するときの基準としては、必要な機能や性能を満たしていることだけでなく、「ライブラリ・フレームワークは最小限」という方針を踏まえて採用の判断をしています。

※ ライブラリとフレームワークは異なるものなので、ここまでは意図的に両方記載していました。ただ、併記すると読みづらいため、これ以降は ライブラリ とだけ表現していきます。意味としては両方含まれているものとして解釈してください。

バージョン管理とアップデートには意外とコストがかかる

外部ライブラリのバージョンアップは提供元の都合で行われるため、利用者側からはコントロールできません。有名なライブラリなどはバージョンアップの時期や状態を公開しながら進めているところもありますが、提供元によっては十分な情報提供がなされず、意図しないタイミングで更新されてしまうようなこともあります。

外部ライブラリの数が多くなれば、更新の発生回数は結果的に多くなり、ライブラリの更新と影響範囲に対する修正対応、およびテストのコストが逐次発生することになります。

モジュールをアップデートして問題ないかを確認するだけじゃないの? と思う人がいるかもしれません。もちろん簡単なライブラリであれば、簡単な確認作業で済むこともあります。しかし、ライブラリの中身がどのように実装されているかまで把握していることはあまりないため、何をどこまでテストすればよいのか、というところを判断するのはとても難いことがよくあります。適切に影響範囲を見定めるスキルとここまでやれば大丈夫と判断できる心の強さが必要です。とはいえ抜け漏れがないようにと心配する気持ちのほうがどうしても優位になりがちなので、テスト範囲も自ずと広くなり作業コストが上がっていきます。

OKANでは外部ライブラリは可能な限り最新状態に保つこととしています。この方針をとっている理由は、バージョンアップへの追従が遅れると、後で更新しようとしたときの対応コストと難易度が跳ね上がるためです。

1〜2バージョンならなんとかなるかもしれませんが、3バージョン以上離されてしまうと、作り直しとも思われるレベルで修正が必要になったりすることもあるので、頑張って追いついていく必要があります。特にフレームワークのバージョンアップは目も当てられない状況になることは想像に難くないと思います。

また、最新状態に保つということは、利用しているライブラリのバージョンがどうなっているかを管理していく必要があるということです。1つや2つのライブラリなら良いですが、数十個となってくると管理コストだけでも高くつくことになりますし、管理ミスをする確率も上がります。

他方、自分たちでライブラリを開発しているのであれば、最初の開発コストは必要なものの、その後の変更管理は自ら行うことになります。自ら計画して変更して行くので、意図しないタイミングや内容でのバージョンアップは発生しませんし、アップデートしたときの影響範囲もコントロール可能な状態となります。

セキュリティは担保できるのか

外部ライブラリの提供元がセキュリティ情報をきちんと取り扱っていて、適切なタイミングでパッチの提供やアップデートを行ってくれることが担保されていれば問題ありません。

しかし、出元がよくわからないプロジェクトや個人で開発しているライブラリの場合はその人達の都合によって対応が左右されてしまうので、相応のリスクを追うことになります。ライブラリが原因で個人情報が漏洩しました、ということが発生したら、会社の存続に影響しかねない問題となる可能性もあります。

また、提供元がセキュリティの対応をタイムリーに行ってくれたとしても、前述したバージョンアップの課題はあるので、更新コストはかかります。

外部ライブラリのセキュリティを含めた品質管理状態が適切であるか、それを維持できる体制になっているのか、というところもライブラリ選定時のポイントになるでしょう。

永続性はありますか

個人のOSSライブラリなどの場合、いつの間にかフェードアウトしていた、なんてことが良くありますし、セキュリティの問題が発生した場合も、修正できない・間に合わないなどのようなこともありえます。また、そのライブラリ開発をしている人の都合で破壊的変更が行われることもよくあります。破壊的変更ならまだマシかもしれませんが、設計が気に入らなくなったので、別のものを作りました、なんてことも日常茶飯事です。

ライブラリを利用する側(つまり我々)は、顧客へ提供する製品または機能の一部として組み込んでいくわけなので、これらのリスクをとっても採用する価値があるかどうかを十分考慮して採用していく必要があります。

その機能は必要か

多くのライブラリやフレームワークの機能はほとんど使用しないものが沢山組み込まれていたりします。機能が多いということは、更新の頻度も多くなるということです。加えて、多機能なライブラリになればなるほど、必然的にコード量は増えていくので、不具合の発生確率は高くなるでしょう。

自分が使用していない部分にアップデートがあった場合でも、アップデートに付き合っていくことは割に合いません。ライブラリはシンプルなものが一番です。

シンプルなライブラリであれば自分たちで大きな工数をかけなくても開発できるものも多いのでライブラリの採用を考えたときは、自作していくという選択も同列で比較検討していくことも考えるのが良いでしょう。

ライブラリ・フレームワークの選択・採用は適切に

結論としては、開発時に得られる利便性と、開発した後に発生するメンテナンスコストの両方を考慮した上でライブラリを採用していく必要があるということです。ライブラリの採用を検討する時というのは、開発を進めるために選定をしているという場面であるので、必然的に前者の「開発時に得られる利便性」にばかり目が言ってしまいがちです。しかし、総合的に考えるのであれば後者の「メンテナンスコスト」もしっかり考慮して判断をしていく必要があります。

ここまで説明した基準にあてはめてみると、Reactなどは自作するコストが割にあわないのでそのまま利用する、ORマッパーやHTTP Requesterに関しては、構造的に難しいものではなく、不必要な機能が多かったり、アーキテクチャにそぐわないため自作しているといった具合で判断しています。

「ライブラリやフレームワークは最小限に」という方針にしているのは、この方針を判断基準のスタートにすることによって、総合的にどうするのが適切なのかということを意識的にできるようにするためです。

これ使えば簡単にできるじゃん、という軽いノリでライブラリを決めるのは後で自分の首を締める結果になりかねないため、選定は慎重に行いましょう!

株式会社OKANでは一緒にはたらくメンバーを募集しています!

フルスタックエンジニア
自社プロダクトで働き続けられる社会を作る!Webアプリ開発エンジニア
人材不足が叫ばれる中 果たして「出会い」だけに情熱を傾けて 出会ったあとの「働き続けられる組織づくり」を なおざりにしていいのでしょうか? 株式会社OKANは「働く毎日を豊かに」 をフィロソフィーに働き続けられる環境をつくります。 中でも職場で日常的に起こる問題に着目しソリューションを提供しています。 例えば、ぷち社食サービス「オフィスおかん」。 からだにいいお惣菜を安価に提供することで健康的で働き続けやすく。 お惣菜を持ち帰れるので家庭と仕事の両立を助けて働き続けやすく。 ぷち社食のまわりでコミュニケーションが生まれ働き続けやすく。 様々な問題を解決することで多くの会社さまに導入していただいております。 今後は社食以外のアプローチでも 働く毎日に起こる問題を解決し 働き続けられる環境をつくります。 働くの「つづく」を「つくる」、日本のおかんのような企業に
株式会社OKAN
プロジェクトマネージャー
あのオフィスおかんをデジタル化する!? プロジェクトマネージャーを募集
人材不足が叫ばれる中 果たして「出会い」だけに情熱を傾けて 出会ったあとの「働き続けられる組織づくり」を なおざりにしていいのでしょうか? 株式会社OKANは「働く毎日を豊かに」 をフィロソフィーに働き続けられる環境をつくります。 中でも職場で日常的に起こる問題に着目しソリューションを提供しています。 例えば、ぷち社食サービス「オフィスおかん」。 からだにいいお惣菜を安価に提供することで健康的で働き続けやすく。 お惣菜を持ち帰れるので家庭と仕事の両立を助けて働き続けやすく。 ぷち社食のまわりでコミュニケーションが生まれ働き続けやすく。 様々な問題を解決することで多くの会社さまに導入していただいております。 今後は社食以外のアプローチでも 働く毎日に起こる問題を解決し 働き続けられる環境をつくります。 働くの「つづく」を「つくる」、日本のおかんのような企業に
株式会社OKAN
株式会社OKANでは一緒に働く仲間を募集しています
24 いいね!
24 いいね!
同じタグの記事
今週のランキング
株式会社OKANからお誘い
この話題に共感したら、メンバーと話してみませんか?