PHPは初めての方です。ログイン/登録などで基本的なサイトを作成することはできますが、多くの機能を備えた複雑なサイトを構築するのに常に苦労しています。結局、コードが煩雑になり、ますます小さなバグに遭遇し、それらを修正すると別のバグが発生するためです。等々。それは、単純にクリーンなコードを作成していないことに部分的に関係している(私はそれに取り組んでいます!).
しかし、既成のフレームワークの使用は「専門外」ですか? YouTubeやFacebookなどの大きなサイトは、CakePHPやCodeIgniterなどのフレームワークを使用するのでしょうか。
フレームワークの使用は、ライブラリの選択に似ています。いくつかの機能を「無料」で利用できますが、このコードの制限も受けます(たとえば、データアクセスライブラリを使用すると、5方向の結合クエリを作成できない場合があります)。
フレームワークを選択する際の問題は、いったん使用を開始すると、選択を元に戻すことが難しくなることです。その理由は、フレームワークには通常多くの責任があり、多くの場合、ショートカットを使用して(たとえば、「構成より規約」)、物事を書きやすくするためです。したがって、コードはフレームワークと密接に結びついてしまい、別のフレームワークに移動すると、完全に書き直されます。
したがって、フレームワークを使用することは専門家ではありません。 symfonyでいくつかの良い成功事例を聞きました。しかし、それは重要な選択です。そして、それは十分な情報に基づいた決定である必要があります(大企業での使用を検討する前に、特定のフレームワークで中小規模のプロジェクトを構築する必要があります)。
プロジェクトが特定のサイズに拡大する場合、フレームワークは避けられません。フレームワークを明示的に選択することも、暗黙的に追加することもできます。フレームワークまたはアーキテクチャを設計または採用することを明示的に選択しない場合でも、フレームワークまたはアーキテクチャは存在しますが、設計が非常に悪く、バグを発生させずに新しい機能を追加することは非常に困難です(すでに経験したように) )。独自のフレームワークを設計するスキルがない場合は、長期的には時間を節約できるため、よく知られたフレームワークを選択することをお勧めします。
具体的にあなたの例について:
Youtubeは、フロントエンドにpythonを使用しますが、ほとんどの時間をバックエンドサービスに費やしています。大規模なサイトでは、このアーキテクチャが一般的に見られます。このアーキテクチャでは、かなりの時間がかかるものがすべて、フロントエンドサーバーからバックエンドサービスレイヤーに移動され、フロントエンドとは独立してスケーリングできます。独自のフレームワークを導入しました。詳細については、 http://highscalability.com/youtube-architecture を参照してください
Facebookは、フロントエンドにPHPを使用しており、バックエンドサービスへのディスパッチにも多くの時間を費やしています。 。繰り返しますが、彼らのフレームワークは自家製ですが、独自のPHPエンジンと開発ツールを構築するまでに至っています。彼らは、フレームワークコードの一部もオープンソース化しています。
フレームワークにはさまざまな種類があります。
一般的な問題を解決し、開発者がより読みやすく自己文書化されたコードを作成できるようにするため、フレームワークの使用は大きな選択肢ですが、支配するには多くの時間と経験が必要です。
Java開発者の場合、Oracleが標準(JSR)を定義し、異なるフレームワークのプロデューサーがフレームワークを適応させ、フレームワークから別のフレームワークに(比較的)簡単にジャンプできるため、少し異なります。
PHPフレームワークはダイヤモンドのようなものです...それは永遠です(+または-)
フレームワークの使用は問題ではないと思います。実際、単体テスト、優れた実践、コードの安定性など、多くの便利な機能と利点があります。 ZendとSymphonyは、コーディング能力を強化するフレームワークの良い例です。
ただし、フレームワークを使用しても、コードのパフォーマンスは向上しません。アプリケーションを高速で実行するために考慮する必要がある他の多くの要因があります。
あなたの質問への回答:はい、フレームワークは大きなウェブサイトで使用されています。
フレームワークを使用しなくても、とにかく独自のものになってしまいます。
あなたはあなたの会社の標準、あなたが使用するライブラリ、慣習を持っているでしょう。そして、ある時点で、独自の小規模または大規模なプロジェクトは、基本的に独自のカスタムフレームワークを持つことになります。 (あなたはおそらくそれをそれとは呼ばないでしょう。)