はじめに
最近、会社でどのアドミンパネルを選択するかというテーマが出ました。
これまでメンテナンスが停止されたアドミンパネルライブラリを使用し、さまざまな厄介な問題に直面した経験があるため、将来を見据えた適切なライブラリ選定の重要性を感じています。
ライブラリを選定する際に考慮すべきポイントについて、いくつか役立つ基準を整理してみました。
参考:laravel admin panelの種類
- https://nova.laravel.com/
- https://filamentphp.com/
- https://orchid.software/
- https://moonshine-laravel.com/
- https://lean-admin.dev/
- https://voyager.devdojo.com/
- https://backpackforlaravel.com/
- https://adminlte.io/
本論
アドミンパネルを使用する理由
アドミンパネルは、ビジネスを始めるタイミングで迅速に成果物を提示できるため、事業の初期拡大や新しい機能を披露する際に素早く作成できるという利点があります。
アドミンパネルの問題点
アドミンパネルを利用した開発は、ソースコードの大部分がアドミンパネルの提供する機能に依存しているため、後に別のアドミンパネルに移行したり、アドミンパネルを使用しない開発方法に変更するのが難しい場合があります。
アドミンパネルを使用すれば迅速に開発を進めることができます。その速度感に慣れてしまって早い開発を期待しますが、カスタム機能を開発する際にかなりの時間を要することがあります。
また、使用しているライブラリのメンテナンスが終了すると、ドメインの問題解決に時間を割くべきところを、セキュリティ問題やバグ修正に時間を費やさなければならなくなる時が来ます。
アドミンパネルが提供しない新機能を開発しなければならない場合、通常の開発方法では対応できず、アドミンライブラリに依存した形での開発を強いられるため、新機能の開発が困難になることがあります。
ライブラリを活用したコードの構造を改善するよりも、ライブラリの動作を改ざんして望む機能を実現するケースも多くなり、開発者の基本的なスキルが向上するというよりは、小手先のテクニックに依存した開発方法が増える可能性が高まります。
ライブラリ選定の基準
使いやすいか? 自分が知っている技術に馴染みがあるか? 多機能であるか? という点も重要な基準ですが、できる限り長期にわたって安心して使用できるライブラリを選ぶこともとても重要です。
長期にわたるメンテナンスの重要性
どのようなソフトウェアでも、継続的にメンテナンスが行われなければ、セキュリティの問題やバグが解決されない問題が発生します。ライブラリの利用者は、これらの問題を解決できない、または解決が困難な場合があり、問題解決に多くの時間を費やす可能性があります。
長期間にわたってセキュリティパッチが提供され、機能の継続的な開発が行われるプロジェクトを使用することが望ましく、長年にわたりフィードバックを受けてバグが少なく、優れたユーザー体験を提供するライブラリを選ぶのが良いです。
コミュニティで活発に話題にされ、議論されているかを確認
コミュニティで活発に議論され、広く使われているプロジェクトであり、人気があることが重要です。これは、問題が発生した場合に多くの人がさまざまな解決策を模索するため、問題解決が容易になる可能性が高いからです。
開発が停止した場合にコミュニティから批判を受けるほどの影響力を持つプロジェクトであるべきです。開発を続けなければならない十分な理由があるほど良いです。
有料プランを考慮する
有料プランがあり、多くの人がその有料プランを利用してメンテナーが十分な収益を得られるプロジェクトであるかを考慮することが重要です。ユーザーが増加し続け、継続的な発展と拡張の動機があるプロジェクトかどうかを見極めましょう。これにより、メンテナーが開発を継続する動機付けとなります。
有料プランは思ったほど高額ではありません。オープンソースを選んだ場合、開発者がカスタム機能を開発したり、不十分なドキュメントで使い方を習得したり、ライブラリのコードを解釈するのにかかる時間を、有料プランが提供する機能で大幅に短縮できるため、結果的に有益な場合が多いです。
主要メンテナーの姿勢を確認する
主要なメンテナーが責任感を持ち、プロジェクトに対する長期的なビジョンを持っているかを確認することが重要です。また、自分に何か問題が起こった場合に備えた計画を明らかにしているか、コミュニティで積極的に意思表示やコミュニケーションを行っているかどうかも考慮しましょう。RedditやX.comなどでの活動や発言をチェックしてみましょう。
プロジェクトが依存する技術を確認する
古いライブラリやレガシー技術に基づいて構築されている場合、あるいは全く人気がない技術に依存している場合、または適切なデザインパターンや戦略を備えていない場合、メンテナーがメンテナンスを続けることが難しくなり、プロジェクトを放棄することがあります。可能な限り有望な技術や、よく知られ将来性のある技術の上に構築され、メンテナーが楽しくプロジェクトを開発できる構成になっているかを確認しましょう。
技術的な価値や魅力があるか?
十分に構成されたプロジェクトであり、その価値に惹かれて挑戦するだけの魅力があれば、既存のメンテナーが開発を中断したとしても、他の人々がこのプロジェクトを引き継ぎ、発展させる可能性があります。
開発が停止された場合にユーザー側でコアソースを改善できるか?
もし導入したアドミンライブラリの開発が停止された場合、使用者が容易にプロジェクトを改善できるかどうかを考える必要があります。
ライブラリのソースコードをプロジェクトに段階的に取り込むことができるか?ライブラリを使用して作成した既存のソースコードを廃棄せずに改善できるか?ライブラリを使わない方向への段階的な移行が可能か?などを検討すべきです。
ライブラリが提供するドキュメントや機能が、より優れた開発者になるための指針となるか?
ライブラリの機能を学ぶことが、より優れた開発者になるために役立つ内容か?ドキュメントやコードを学ぶことで、開発者としての知識や視点が広がるかを考慮しましょう。
最後に
それぞれのライブラリについてこれらの点を調査することは、多くの時間を要する作業です。
上記で述べたすべての要件を満たすライブラリを見つけることはできません。長所と短所を考慮して、総合的な判断をした上で選択するようにしましょう。
現在はどの管理パネルを導入するかを判断する段階ではないため、この程度に整理しておきます。