質問

PHPを学びたいと思っており、OOPと手続きに関するアイデアを取得したいと思います。 OOP対手続きに関する他のブログやチュートリアルをいくつか読みましたが、まだアプローチを理解できません。

ooop vs手続き

  1. どちらを学ぶべきですか?
  2. コードの違いは何ですか?効果は何ですか?
  3. PHPフレームワークはOOPアプローチでどのように役立ちますか? (Codeigniterを学びたいです)
  4. 手順はフレームワークが必要ですか?

私は本当に両方のコードの違いを知りたいです。OOPの私の理解は、あなたがアクセスできるようなクラスを作成することです。 (それが正しければ私はわからない)。

ありがとう!

役に立ちましたか?

解決

バックグラウンド: あなたは次のことを示唆する「簡単な説明」を求めました:

  1. ナンセンスな概要が必要です 専門用語なし
  2. あなたはあなたを助ける何かが欲しいです 最初から学ぶ
  3. あなたはそれを発見しました 同じ方法で質問に答える2人はいません, 、そしてそれは混乱しています。それがあなたがここで簡単な説明を求めている理由です。はい?

短いジャルゴンの回答:

  1. 多くの入門的な説明は、「OOP Real World」の例にすばやく飛び込みます。それらは助けよりも混乱する傾向があるので、今のところそれを無視してください。
  2. ソースコードは、単に個々のファイルに保存されただけで、機能の「チャンク」と考えることができます。
  3. これらの「チャンク」を整理する方法はさまざまです。プログラミング言語の慣習、開発者の背景とトレーニング、または単なる古い個人的な好みのようなものに応じて。
  4. OOPと手続き上のプログラミングは、コードの「チャンク」を整理して配置する方法のために、単に一般的に認識されている2つの主要な方法論です。

長いジャルゴンの答え:

手続きvs OOPは、コンピュータープログラミングの基本的な問題の1つの側面にすぎません。コードを簡単にする方法 理解する そして、プロとしてのケーキ 維持. 。 OOPの原則の一部に従う「手続き上の」コードを実際に記述できるため、2つは必ずしも反対ではありません。

あなたが学ぶとあなたの理解は本当に成長します その他のオブジェクト指向プログラミング言語, 、そのうち、PHPは「ブロック上の新しい子供」です。

これが簡単な概要です あなたが体験を構築するときにあなたが学ぶことの:

  • PHPソースコードを書くことができます 便利なタスク
  • 便利なタスクを整理できます 「チャンク」 コードの
  • コードの「チャンク」を考えることができます それらが保存されている個々のファイルとは無関係に
  • 時々、コードの「チャンク」が行われます パラメーターに基づいて異なる動作 あなたは渡ります
  • パラメーターを受け入れるコードのチャンクが呼び出されます "機能"
  • 関数は「チャンク」することができます 一緒に、そしてこれを行うさまざまな方法があります:
    • 例えば: 関数名でアルファベット順にリストされている、人生でこれまでに書いたすべての機能を備えた1つの大きなPHPファイルだけを持つことができます
    • 例えば: 主題によって一緒にチャンクされた関数を備えた複数のPHPファイルを持つことができます[例:基本的な文字列操作の機能、配列の処理の関数、ファイル入力/出力の関数など)
  • OOPは、「チャンキング」機能を一緒にする特別な方法です 「クラス」に
  • クラスはです ちょうど別のレベルの「チャンキング」 あなたがそれを統一された全体として扱うことができるように一緒にコード
  • クラスはの「チャンク」と考えることができます 方法プロパティ

    • 方法 意味のある方法で互いに論理的に関連する単純な関数です。 「メソッド」と「関数」という言葉は、基本的に同じことに対して2つの異なる用語です。
    • プロパティ クラスに関連する単純なデータ値です。これらは、個々の関数に意図的に非分離されている値です。 複数の クラスの関数はそれらにアクセスできるはずです。
      • 例えば: :クラスに天文学を行うための多くの方法がある場合、クラスの特性は、すべての天文学的方法(PI、光の速度、特定の惑星間の距離など)について知っておく必要がある特定の有名な数字の価値になる可能性があります。 )。
    • これは ほとんどのOOPの説明が混乱します 彼らが分岐するからです "現実世界の例「これはすぐにトピック外に出ることができます. 。多くの場合、「現実の世界」は、特定の個人の存在論的観点のe曲表現です。それはそうなる傾向があります 概念を既に理解しても便利です 他の誰かにそれを教えるのに十分です。
    • 混乱せずにOOPを理解するために、今のところ「現実世界」の例をスキップし、コードに集中することができます。クラスはです 単に関数を格納する方法 (別名メソッド) およびプロパティ (別名データ)PHPとして 1つ以上の関連する「チャンク」のコード 個々の「チャンク」が特定のトピックまたは機能を扱っている場合。始めるためにあなたが知る必要があるのはそれだけです。
  • クラスはコードを整理できるため便利です 非常に高いレベル 簡単に理解し、使用し、維持できるようにする方法。

  • 誰かが多くの機能を書いて、それらを多くのクラスに整理し、それらをある程度クールな方法で一緒に働かせたとき、彼らは一緒にすべてをパッケージ化して電話します 基本構想".
  • フレームワークはです 「チャンキング」の次の最高レベル (コーディングスタイルと慣習を含む)1人以上の人々がコードの編成方法が好きで、ワーキングスタイル、好み、価値、世界支配の計画などに合っているため、同意することに同意します。

参照してください

他のヒント

OOPはデザインパターンにすぎません。始めたばかりの場合は、手続き的アプローチに焦点を当てることで基本を学びます。最も重要なことは、ループ、条件、他の手順の呼び出しなどの基本原則に精通していることです。

手続きコードを作成している間、単一のソースファイル内に関連する方法を追加することで習慣を作ります。手順を論理ユニットに分割することを学ぶと、すでにオブジェクト指向になり始めています。基本的に、オブジェクトは、同じデータセットで動作するという理由だけで、互いに関連するメソッドのコレクションにすぎません。 (ここでデータベースについて話すのではなく、アプリケーションデータ!)

OOは、主にすべてを単純なブロックで分割することにより、コードをより論理的にするために使用されます。適切なブロックを組み合わせることで、完全なアプリケーションを取得します。 OOは、すべての問題を解決する銀の弾丸やゴールデンハンマーではありません。しかし、それがしていることは、あなたのコードを理解しやすくすることです。

繰り返しになりますが、一部の人々は、単に何百もの方法を持つ巨大なスーパーオブジェクトに変えることによって、オブジェクトから完全な混乱を作ることができます。このようなオブジェクトは、単に実際のロジックなしで膨大な量の方法が結合されているため、通常の手続き的アプローチと大きく違いはありません。人々がOOPを速すぎて始めたときに簡単に犯すのは間違いです。

両方を学ぶ必要があります。オブジェクトは、存在する多くの可能な抽象化の1つにすぎません。抽象化は、プログラミングが最終的にすべてのものであるものです。とはいえ、PHPオブジェクトの内部はとにかく手続き上のものであるため、手続き上のものから始めて、後でオブジェクトを追加します。

フレームワークについては;まず言語の基礎を学び、倒した実験プログラムなどを書きます。後で、フレームワークに慣れて検討することができます あなた自身 どうにか あなた いくつかのコンテキストでそれらのいくつかを見つけてください。それらは間違いなく必須ではありません。

手続き上のPHPとOOPは、同じPHPコードを使用します。唯一の違いは、手続き上の場合、1つのタスクに焦点を合わせていることです。 OOPでは、コードのさまざまな領域で再利用できるパターンまたはチャンクを使用してコードを整理します。

簡単な答えは、PHPを知り、理解する必要があるということです。 php.netで学ぶことができます。それを理解したら、コードをChucksに整理し始めることができます。

手続きコードは、関数、変数を使用します。

物事を理解したら、関数と変数をクラスに整理し始めることができます。関数をメソッドとして、変数としてプロパティとして呼び出し始めます。

幸運を。

上記の素晴らしい回答を追加します。 OOPはコーディングスタイルの自然な進行と見なす必要があります。小さなプログラムの作成を開始すると、PHPコードの数行をまとめて、機能にグループ化するだけで、記述した機能が増えれば、必要性を感じるかもしれません。それらをよりよく整理するために。 OOP構造をよりよくコードにするだけです - より良いコードメンテナンスを許可します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top