9

これは、どのフレームワークを使用するかについての質問ではありません。RailsとDjangoの両方を学び、すべてのWebアプリをPHPで記述しています。私の質問は、なぜフレームワークに煩わされるのかということです。古いMySQLコードを再利用し、phpMyAdminで「モデル」を構築するよりも、フレームワークを使用する方が常に時間がかかります。何が起こっているのか知っているので、自分ですべてを書くのも好きです。関数などを再利用してやりたいことができますが、ほとんどのフレームワークにはこの自由が欠けているようです。

私のやり方が正しいと言っているのではありません。実際、私は自分のロジックがどこで失敗するかを理解しようとしています。誇大広告はただの薄い空気ではありえません。私は何が欠けていますか?

4

12 に答える 12

28

フレームワークの基本的な考え方は、より高いレベルの抽象化で作業し、特定の要件を実装するために記述しなければならないコードのみを記述できるようにすることです。他のすべての反復的な作業はフレームワークによって処理され、おそらく自分で処理する場合よりもバグやセキュリティ ホールがはるかに少なくなります。

基本的な言語機能と標準 API を使用して自分でフレームワークを習得するよりも、フレームワークを習得するのに時間がかかるように感じるかもしれませんが、それは単に真実ではありません。フレームワークを学習し(新しいプロジェクトごとに異なるフレームワークを使用するのはもちろんばかげています)、すべてのバグを見つけて排除し、長い間発見され、排除され、修正されてきたすべての設計ミスを修正するのにかかる時間を考慮に入れますその開発者コミュニティによるフレームワークで。

ほとんどすべての開発者は、カウボーイ コーダーの本能を持っており、「自分で何かを行うことは、他の人が書いたコードを使用するよりもはるかに楽しいです。最初から正しく理解できると確信しているので、さらに速く、より良い!"。これらの本能はほとんど常に間違っています。

于 2009-05-16T22:59:45.337 に答える
21

フレームワークを使用すると、アプリケーションごとに記述しなければならないボイラープレート コードについて心配することなく、アプリケーション自体に集中できます。model-view-controller などの実証済みの設計パターンを使用して、より論理的な (ほとんどがオブジェクト指向の) 方法でサイトを構築できます。フレームワーク内のコードは一般的に、1 回限りのプロジェクト用に自分で作成するコードよりも成熟しており、高水準です。フレームワークには、長年にわたってコードを完成させる開発者の大規模なコミュニティがあるためです。これは、フレームワーク駆動型のサイトのパフォーマンスが向上し、安全性が大幅に向上することを意味します。

また、自分で文章を書くのが好きだとおっしゃっていましたが、あなたの出身地はわかっています。これに対する私の解決策は、独自のフレームワークを作成することでした。自分が行うすべてのプロジェクトで自分のコードを再利用して改善することができ、コードベース全体を完全に把握しています。

于 2009-05-16T20:22:20.690 に答える
7

自分で書くと、自分のことを理解しやすくなるかもしれませんが、残念ながら、他の開発者が何が起こっているのかを理解するのがはるかに難しくなる可能性があります。多くの場合、フレームワークはより適切に文書化され、作成したアプリに取り組んでいる新しい開発者をサポートできるより大きなコミュニティがあります。

于 2009-05-16T21:18:30.243 に答える
4

何に重点を置いているかが大きな部分を占めていると思います。フレームワークは、再検討し続ける必要のない部分を標準化するため、アプリケーション全体に集中するのに役立ちます。独自のコードを常に再利用している場合は、すでに独自のその場しのぎのフレームワークを使用しています。

于 2009-05-16T20:22:23.000 に答える
3

フレームワーク(Rails)と言語(PHP)を比較します。フレームワークは、事前に構築されたコンポーネントを提供するので、プロジェクトをユニークにするものに時間を費やすことができます。

これを行うのに役立つコードベースがすでにある場合があります。PHPフレームワークのいくつかをチェックしてください。それは、より快適な場所だからです。CakePHPCodeIgnitorZendFrameworkをご覧ください。

多くの小さなアプリ/サイトを構築している場合は、フレームワークを使用すると作業が楽になる可能性があります。

于 2009-05-16T21:07:16.683 に答える
2

これまでにプログラムしたコードを使用して独自のフレームワークを作成することは、あなたにとって良いステップだと思います。;)

コードをパラメーター化できるようにしてください。言い換えると、Webサイトのさまざまな部分(スタイル付きコンテナーなど)またはさまざまなWebサイト(フォームジェネレーター/バリデーター)で再利用できるコンポーネントを作成します。

さらに進んで基本クラスを作成し、そこから新しいクラスを拡張してWebサイトを構築することもできます。(例:一般的なselect / insert / update / deleteメソッドを持つデータオブジェクト)。

これにより、フレームワークが非常に便利である理由についての最良の見解が得られるに違いありません;)

于 2009-05-16T21:05:21.977 に答える
1

PHP開発者が最初にRubyを使用するのに時間がかかるのと同じ理由で、最初にフレームワークを使用するのに時間がかかります-あなたはそれに慣れていません。

それらに慣れると、フレームワークは、ありふれたものをスキップして、アプリの重要な部分を実際に作成することに集中できるようになります。

于 2009-05-16T21:25:16.500 に答える
1

また、Symfony や CakePHP などの PHP ベースのフレームワークを使用するだけで、制作時間を大幅に短縮できます。

フレームワークを使用する理由の 1 つは、コードの分離です。symfony を例にとってみましょう。モデルはすべて propel または doctrine ライブラリで行われます。SQL はほとんど必要ありません。新しいオブジェクトとユーザーの getter および setter をインスタンス化してデータを保存し、ページ コードに SQL を記述する代わりに、クエリに関連するオブジェクトに関数を作成します。異なるページで同じ種類のデータにアクセスする必要がある場合は、モデルに要求し、ビジネス ロジックをモデルのあるべき場所に保持するため、違いはありません。すべての作業は「アクションコントローラー機能」で行われます。必要なすべてのデータを取得し、表示にわずかな php を配置します。基本的には、アクション コントローラーで取得した変数をエコーするだけです (一部の for ループと条件文の if ステートメントを除く)。

優れたフレームワークを使用するためだけに新しい言語 python/ruby を学ぶ必要はありません。自分に合ったものを見つけるだけで済みます。

于 2009-05-17T02:08:11.360 に答える
1

まず、PHP にもフレームワークがあるため、前述の質問は的を射ていません。

はい、独自のフレームワークを作成できます。クリスが言ったように、それは恥ずかしいことではありません。ただし、コードの再利用の活用の一部は、多くの人々の努力の集合的な価値です。独自のコードを再利用するだけではありません。フレームワークは、私たち全員が共有する共通のタスクとパターンをカプセル化し、コミュニティからの改善の多くの反復により、十分にテストされたソリューションを提供します。あなたが誰であろうと、個人の努力はそれに匹敵するものではありません。

あなたが独自に開発した場合、それは世界クラスの人々の集合的な努力によってのみ世界クラスになり、それはあなたのアイデアが注目に値する場合にのみ実現します. そこにあるトップフレームワークは、これらの基準ですでに証明されています.

DHH は賢い人ですが、今日の Rails は彼だけでは決して実現できませんでした。程遠い。

あなたが言うように「すべてを自分で書く」のが好きなら、あなたと一致するコア哲学を持つフレームワークを選択し、改善の余地がある分野でコアコントリビューションを開始してください。

于 2009-05-17T06:12:28.250 に答える
1

Web アプリケーションの機能によっては、フレームワークなしで開発する方が高速な場合があります。たとえば、Webapp がある種のデータ ビューアーである場合などです。

しかし、より高度な機能を実装し始めるとすぐに、フレームワークの効率が大幅に向上します。

これを最初からやってみてください: - 適切なフォームの検証 - 複数の言語と日付/時刻の書式設定の処理 - 認証

フレームワークは無料のツールであり、安定して実装された機能として使用できます。

于 2009-05-17T06:35:42.937 に答える
0

コードの再利用について言及しているので、すでにphpで独自のフレームワークを作成しているように思えます。

他人の車輪に適応するよりも、自分の車輪のセットを使用する方が簡単だと想像できます. それは恥ではありません。

于 2009-05-16T22:57:44.437 に答える
-4

フレームワークは主に、PHP(またはそれが構築されている特定の言語)に半ば慣れていない人々が、サイトに余分な部分を追加することなく安全で簡単にWebサイトを構築できるようにするためにあります。セキュリティ、MySQL(または他のデータベースタイプ)などの詳細について多くのことを知っている必要があります。私の意見では、これはコーダーを言語に分解するのに役立つかなり良い方法であり、もちろんフレームワークがそれほど複雑ではないという事実を考慮に入れています。

編集私が彼らが初心者向けであると言った理由は、私自身、初心者として、フレームワークを使用して自分自身をはるかにうまく言語に分解したからです。

于 2009-05-16T21:06:25.720 に答える