フレームワークの選択と学習


前の2つの章では、フレームワークとは何かと何が存在するかについて説明しました。このセクションは実践的な部分です:フレームワークを使うべきか、どれを選ぶか、そしてそれを学ぶ方法です。順序が重要です。なぜなら、最初の質問が最も見落とされやすいからです。
そもそもフレームワークを使うべきですか?
2つのプロジェクトを想像してみてください。最初のプロジェクトは、アカウント、フォーム、共有データに反応するスクリーンを備えたアプリです。手作業でそれを実装することは、フレームワークが既に完成させた配管設備を正確に再構築することを意味し、バニラ版は散らばった、テストされていない独自の配管設備になり、誰も引き継ぎたくはありません。ここでDjangoやReactに手を伸ばすことは、別の方法よりも動く部分が少なくなることを選ぶことです。
2番目のプロジェクトは、ランディングページ、コンテンツサイト、小さなスクリプト、どこかに送信するフォームです。プレーンなHTML、CSS、そして少しのJavaScriptで、ビルドステップなし、依存関係の更新なし、来年移行するものはありません。そのようなページを完全なフレームワークでラップすることは、ツーリングだけが恩恵を受ける機械装置を追加します。経験豊富な開発者の多くが目的でバニラを納品し、それは初心者の妥協ではなく、プロフェッショナルな答えです。
エンジニアリングは両方のケースをカバーする率直な古いルールを持っています:KISS、「Keep It Simple, Stupid」。侮辱は設計者ではなく設計そのものに向けられており、最良のソリューションは仕事をこなしながら最も少ない機械装置を持つものであるという考えです。上記の両方のプロジェクトがそれに従い、反対の答えに到達しています。
これにより、テストは1つの質問になります。各プロジェクトのために新しく尋ねられます:維持する機械装置が最も少なくなるオプションを選んでください。配管が製品を圧倒するとき、それはフレームワークです。製品がほぼすべてであるとき、それはバニラです。
どのように選ぶか
答えが「はい」のとき、地味な基準で選択してください。ベンチマークと機能の比較は、最も有用でない入力です。なぜなら、ファミリー内では人気のあるオプションはすべて十分に高速であり、十分に有能だからです。実際にあなたの毎日の生活を形作るもの:
エコシステムとコミュニティ:成熟したドキュメント、回答された質問、そしてあなたが直面するであろう問題のパッケージ。チームとあなたが参加しているコードベース:最良のフレームワークは通常、あなたのプロジェクトが既に使用しているもの、そして一貫性がチーム内の新規性を打ちます。職業市場、仕事のために学ぶなら:純粋な使用数は重要です。これは、Reactが多くの人々の合理的な最初の選択である大きな理由の一部です。そして、あなたが知っている言語:Pythonデベロッパーは品質とは何の関係もない理由でRailsよりもDjangoをより速く習得します。
バニラオプションをリストの最後に保持してください。比較表が満杯になり、候補者の誰も「none of the above」をシンプルさのテストで打ち負かさない場合、それは何かあなたに語っている答えです。
どのフレームワークでも学ぶ方法
最初に言語を学んでください。フレームワークはどこでもその言語を想定しています:Reactコードはジャバスクリプト壁です,Djangoアプリの混乱した行はどれもPythonの下です。フレームワークをスキップする学習者は一度に2つの謎をデバッグするはめになります,フレームワークの動作と言語の構文、どれがどれであるかを判断する方法はありません。Reactがあなたの目標ならば、JavaScriptトラックが実際の最初のステップです;Djangoまたはpytestの場合、Pythonトラックは同じ役割を果たします。言語第一は単一の最大の近道です,なぜなら、それはどこでも転送される部分だからです。
次に、小さくて実際なものを構築してください。公式チュートリアルに依存しながら構築した、あなたが実際に欲しい1つの小さなプロジェクトは、見たり読んだりすることの任意の量より多く教えます。なぜなら、フレームワークの形は独自の手の下でのみ意味をなすからです。最初のプロジェクトを意図的に控えめに保ってください:その仕事全体はフレームワークの考え方を紹介することであり、マスターピースは後で来ることができます。
そしてあなたが進むにつれて、フレームワークがあなたのために何をしているのかを尋ね続けてください。すべての便利な機能は実際のもののために立っています:ルートはURLの解析のために立っている,コンポーネントはDOM更新のために,モデルはSQLのために。あなたはこれらの層を事前にマスターする必要はありませんが、それらが存在することを知ること,そしておおよそフレームワークが何をするのかは、フレームワークを使用することをフレームワークに盲目的に依存することから分離するものです。
ここがあなたをどこに残すか
それは全体の入門書です:テストとしての単純さ、ピックのための地味な基準、学習のためのフレームワーク前の言語。特定のフレームワークが次に表示されたとき、これらのドキュメントまたは野生で、フレームワークの種類はそれを配置するマップであり、フレームワークとはは下の定義です。

