忍者ブログ

mshencity

代わりに基礎に重点を置くべき9つの理由

フレームワークは急速に変化しますが、コアとなるスキルは持続し、どのスタックでも成果をもたらします。そのフレームワークに手を伸ばす前に、それが使い慣れているかどうかにかかわらず、まず独自のソリューションを構築する利点を検討してください。



フレームワークの何がそんなに優れているのでしょうか?
























明るい青色の背景に、コード スニペット、Web ブラウザーのグラフィックス、インターネット アイコンに囲まれて、ノート パソコンであぐらをかいて座っている笑顔の男性。




フレームワークを適切に定義せずに議論するのは難しいですが、それさえも難しい作業です。この用語はさまざまな文脈で非常に広く使用されているため、文脈に応じて異なる意味を表すことがあります。

フレームワークはライブラリに似ていますが、スタックの上位にあります。したがって、ライブラリは独自のプログラムから呼び出すことを選択できる一連の関数で構成されていますが、フレームワークは多くの場合その逆に機能します。一般的なフレームワークには、デフォルトをオーバーライドする値の構成や、標準の動作を変更するためのカスタム関数の作成など、すぐに使用できる機能が用意されています。

フレームワークは人気があり (Laravel PHP フレームワークには独自の「ラップ」機能もあります!)、コードを再利用できる形式を提供するため、優れたものになる可能性があります。フレームワークを使用すると、利用可能なオプションを制限することで時間を節約し、集中しやすくなります。



フレームワークを使用するとどのような問題が発生する可能性がありますか?

明らかな利点にもかかわらず、使用を避ける理由がいくつかあります。



フレームワークの選択は難しい場合があります


独自のコードを作成している場合、隠れる場所はありません。一方、フレームワークを選択している場合、どこから始めればよいのか、どうやってわかるのでしょうか? Wikipedia のこのリストは、明らかに「注目すべき」フレームワークだけですが、それでもかなり気が遠くなります。

初期計画の重要な部分には、候補フレームワークの調査と評価が含まれる必要があります。他の人と協力している場合、全員が同意できるフレームワークを見つけるのに多くの時間がかかることがあります。



参入障壁は非常に高い可能性がある

























人々が門の後ろに閉じ込められ、立ち入り禁止となっている
クレジット: Dibakar Ghosh / How-To Geek |旅の途中




フレームワークの使用を開始しても、学習曲線を完全に回避するわけではありません。プログラミングの労力をいくらか節約できるかもしれませんが、フレームワークがどのように動作するかを理解する必要があります。

たとえば、フレームワークが独自の機能を追加するためのフックを提供する場合、フックがいつ実行され、どのデータが独自のコードで利用可能になるかを理解する必要があります。



フレームワークは理解の深さを制限する可能性がある


時間をかけてフレームワークをよく理解したとしても、当面の問題を解決する部分に集中したくなる誘惑があります。コードベースを完全に理解するために、本当に各 API メソッドを詳しく調べるつもりですか?また、それにはどれくらいの時間がかかりますか?

基礎となるコードをよく理解していないと、良い時は問題ないが、悪い時は壊滅的な状況になる可能性があります。物事がうまくいかない場合、特定の方向に拡張する必要がある場合、または要件が変更された場合、遅れを取り戻すために多くの時間を無駄にする可能性があります。



本来の問題から目をそらす可能性がある

























ドアハンドルにぶら下がっている「Do Not Disturb」の標識。背景には Android のロゴが付いています。
クレジット: Lucas Gouveia/How-To Geek |ナウムスタジオプロ/シャッターストック




逆に、時間をかけてフレームワークを詳しく調査することに決めた場合は、最終的には問題を解決しようとしている段階にあることを覚えておく必要があります。フレームワークは、多くの異なる要件に対して多くのニーズに対応する必要があるため、通常、実際に必要なツールよりも汎用的なツールになります。



自分では制御できないバグが見つかる可能性があります


他の依存関係と同様に、更新によって発生する可能性のあるバグを回避するように注意する必要があります。すべてのアップデートを適用する必要はありませんが、少なくともマイナー パッチとの同期を維持する必要がありますが、これによりバグやその他の問題が発生する可能性があります。
























Windows 11 コンピューターのバグ




各フレームワークには幅広いユーザーが参加するため、あるプロジェクトに影響を与える問題が自分のプロジェクトには影響しない可能性があり、その逆も同様です。特に特殊な方法でフレームワークを使用している場合、または大幅なカスタマイズを行っている場合は、この種の問題が発生しやすくなる可能性があります。



フレームワークの効率が低下する可能性がある


フレームワークは幅広い分野のユーザーを対象としているため、必ずしもユーザーの使用に合わせて最適化されるとは限りません。最初はこの効果が見られないかもしれません。それでも、プロジェクトが開発されるほど、フレームワークが対応していない特定の動作や構成に対処する必要が生じる可能性が高くなります。

特注のソフトウェアを使用すると、他の領域で妥協する必要がある場合でもコードを最適化できます。そのような妥協は可能であるためです。



フレームワークが本来の範囲から逸脱する可能性がある


フレームワークを選択するときは、その機能を調べて、それが代替手段以上のものを提供するかどうかを判断したことでしょう。解決しようとしている問題が何であれ、そのフレームワークは、理想的には可能な限り最善の方法でそれを処理する必要があります。

しかし、フレームワークが別の方向に進む必要があると判断した明日、何が起こるでしょうか?新しいアプローチに伴うトレードオフを受け入れて流れに従うか、ニーズに適応させようとするか、オプションをもう一度評価することにさらに時間を費やすことになります。

オーダーメイドのコードベースを使用すると、方向性はお客様のニーズに合わせて決定されます。



フレームワークが生まれて、そしてフレームワークが去っていく


2000 年代半ば、Ruby on Rails はどこにでもありました。これは非常に重要なフレームワークであったため、多くの企業や開発者が Ruby を採用するようになりました。 2025 年の Stack Overflow 調査によると、最近では、最もよく使用されているフレームワークの上位 20 位に入る程度です。
























2025 年の Stack Overflow 調査によると、最も人気のある Web フレームワークは、Node.js が 48.7% で 1 位、React が 44.7% で 2 位、Ruby on Rails が 5.9% で 20 位となっています。
クレジット: Stack Exchange Inc.




これは、それが悪いフレームワークであるという意味ではありませんが、フレームワークは誇大広告の影響を受けやすいため、今日流行っているものが明日も流行るとは限りません。最新のフレームワークを追い求めるのは時間がかかるだけでなく、意思決定にも影響を与える可能性があります。



ゼロから問題を解決する方が楽しくなる


特にテクノロジーを学び始めたばかりのときは、フレームワークを使いたくなるかもしれませんが、そのときは、深い部分に飛び込み、後で依存する必要があるかもしれない基礎について学ぶことを避けているため、フレームワークを手に入れるのは最悪の時期になる可能性があります。







しかし、それ以上に、コーディングの「楽しい」という要素を無視すべきではないと思います。純粋にお金のためだけにやっているのでなければ、おそらくプログラミングには何か楽しんでいる部分があるでしょう。その創造性、パワー、またはそれに伴う問題解決の難しさに夢中になっているのです。
























Python コードのぼかした背景の上に Python ロゴを形成するパズルのピース。
クレジット: Lucas Gouveia/ハウツー ギーク




プロジェクトで絶対に必要な場合を除き、ゼロからコーディングすることを恐れないでください。専門的な状況で他の人と協力している場合は、フレームワークを使用するためにプロジェクトの要件に従う必要がある場合があります。しかし、それ以外のすべての状況では、実験し、学び、楽しむという選択肢があります。



では、フレームワークを使用する必要があるのでしょうか?

この質問に答えられる人は誰もいませんが、少なくとも知っておくべきです。言い換えれば、フレームワークに到達する前に、「なぜこのフレームワークを使用するのか?」と自問してください。

おそらく、あなたは 1 つの特定のフレームワークについて深く理解しており、長年そのフレームワークを使用してきており、そのフレームワークの隅々まで知っているでしょう。上記の問題の多くは軽減できるかもしれませんが、マズローのハンマー バイアスにさらされている可能性があります。


ハンマーしか持っていない場合、あらゆるものを釘であるかのように扱いたくなるでしょう。


もちろん、正当な理由なしにすべてのフレームワークを却下することも同様に賢明ではありません。プロジェクトのコンテキストと、一緒に作業している貢献者の経験を考慮してください。業界の現状を常に把握して、どのフレームワークが人気があり、どのフレームワークが時代を超越し、どのフレームワークが魅力的だが最終的には逆効果になるかを把握してください。

PR

コメント

プロフィール

HN:
No Name Ninja
性別:
非公開

P R