PHPでOOP (894レス)
上下前次1-新
322(1): 2008/02/10(日)22:19 ID:??? AAS
>>321
乙です。m(_ _)m
>>306ですが今後は
・認証の仕組み
・ロギングの仕組み
・エラーハンドリングの仕組み
・バリデイトの仕組み
・トークンの仕組み
・リダイレクトの仕組み
・入力→確認→完了の仕組み
省4
323: に ◆lKs5QMUHoA 2008/02/11(月)02:31 ID:??? AAS
>>321
乙です。分かりやすくまとまっていますね。
私も少しずつ読んでいって理解しようと思っています。
他のものに比べ、コメントが多いのが助かりますよね。
>>322
読むほうも時間がかかると思いますので、
一気にやらなくていいと思います。(^^;
324(2): に ◆lKs5QMUHoA 2008/02/11(月)02:35 ID:??? AAS
MVCフレームワークを作っていただいてる流れとはおもいっきり違う事をいうけれど。
>>1さんのOOPで掲示板を作るところは、もう少しクラスを分けたほうが
いいと思ったので、自分なりに作ってみました。
index.phpに、いろいろと処理を詰め込んでいるような感があったので、
それを分ける考え方です。
しかし、DBはテキストベースにしているとか、書き込み欄と表示欄を
同じページにしているなど、基本構成から大幅に変えています。(^^;
外部リンク:www.geocities.jp
OOPの勉強として、簡易なBBSを作ってみました。
BBS Version1(2008.2.11)
325(1): に ◆lKs5QMUHoA 2008/02/11(月)08:27 ID:??? AAS
クラス間のデータのやり取りにおいて、Listクラスを使う設計にしたけれど、
PHPの場合はハッシュでよかったような気がする件。
まだまだ未熟だな・・・
今後は、これを構造化指向へ変換したプログラムを作り、うpする予定です。
この両方のプログラムを見比べてみることで、OOPのメリットとデメリットが
見えてくるかもしれません。
326(1): 2008/02/11(月)10:26 ID:??? AAS
OOPの継承やポリモーフィズムについての概念やそのコードの書き方に
ついては分かったけれど、その設計方法のノウハウの文章はぐぐっても
なかなか見当たらない。
「設計というのはそれぞれで目的次第」といってしまえばそうだけど、
hiroxpepeさんのソースや、.NET Framework や java の各クラスの
継承関係の設計を見ていると、何か共通したものを感じる。
その具体的な方針と、それを取る理由がはっきりとは分からない・・・
何か良い文章を見かけた、もしくは知っている方は、お願いします。
327: 2008/02/11(月)10:50 ID:??? AAS
◎「メンテナンスを行う場合」の比較
【構造化指向の場合】
ソースコードに書かれている関数とグローバル変数が、どういう階層で組まれているか
(どの関数でどの関数が使われているか。また、どのグローバル変数を使っているのか)
は、その関数の処理内容と、その関係などを把握してからでないと、手をつけられない。
新しくグローバル変数や、関数を追加する場合。また、ローカル変数を宣言する場合は、
その名前がソースコード内で使われているかを都度チェックしなければならないので、
面倒である。
【オブジェクト指向の場合】
ソースコードそのものがクラス単位で分けられているため、手をつける場所がすぐに
省11
328(1): 2008/02/11(月)10:57 ID:??? AAS
>>324,325
なかなか参考になりました、ありがとう。
326さんのおっしゃる通り、"設計"は経験なんかも必要になってくるので、
考えるよりも手を動かして、簡単なスクリプトを組んでみるのが最良でしょうか。
329(1): 2008/02/11(月)12:43 ID:??? AAS
>>326
・リファクタリング―プログラムの体質改善テクニック
マーチン ファウラー著
高いけどOOPに興味のある方には絶対お勧めですよ。
ポリモーフィズム適用の具体例がコードで解説されていますよ。
構造化プログラミングではGOTO構文を使うのはNGだけど
同様にOOPではswitch構文を使用しません。
ここの部分をポリモーフィズムで実装するのです。
あなたのプログラムにswitch構文がありますか?
その部分はポリモーフィズムで置き換えられますよ。
330(2): 2008/02/11(月)12:53 ID:??? AAS
>同様にOOPではswitch構文を使用しません。
>ここの部分をポリモーフィズムで実装するのです。
これは言いすぎ。
OOの基本はモデリングであって、コーディングのスタイルじゃない。
331: 2008/02/11(月)13:07 ID:??? AAS
>>329
情報ありがとうございます。
> 構造化プログラミングではGOTO構文を使うのはNGだけど
> 同様にOOPではswitch構文を使用しません。
> ここの部分をポリモーフィズムで実装するのです。
> あなたのプログラムにswitch構文がありますか?
> その部分はポリモーフィズムで置き換えられますよ。
この表現はすごく分かりやすかったです。
こういう感じの具体的なノウハウがあると分かりやすいですね。
>>330
省5
332: 2008/02/11(月)13:39 ID:??? AAS
>>330
そうですね、確かに言い過ぎました・・
GOTO構文は習いませんでしたが、switch構文は習得しちゃいました。
あえてそれを使用しないで組んでみるのも勉強になるのではないでしょうか?
構造化的スタイルとOOP的スタイルを手っ取り早く理解しようとするなら
それぐらいのパラダイムシフトが必要だと思うんです。
もちろんGOTO構文もswitch構文もコーディングには必要です。
333: 2008/02/11(月)15:01 ID:??? AAS
switchがいらないということは、
if文もいらないな。
それともswitchを使わずに、
if文で書けばいいのかw
334: に ◆lKs5QMUHoA 2008/02/11(月)18:07 ID:??? AAS
>>328
(なんか、自分語りみたいなレスになっているけれど、
OOPの勉強方法についての意見交換にもなるかと思ったので書いておきます。)
私は、プログラミングをこれから勉強しようという時、「無駄・ムラ・無理なく
勉強する」という予備校の受験勉強の風潮を受けていましたので、先生に
「プログラミングを勉強する場合は、どんな風なやり方をしたら良いですか?」
とか「どんな順番で勉強をしていったら良いですか?」と聞いたことがあるのですが、
その先生は、「そんなことを考えている時間があるなら、その分コーディングを
した方が良い」とアドバイスをしました。
実際に手を動かしてやってみると、文章や口頭の説明では言えない、何か体感的な
省7
335(1): に ◆lKs5QMUHoA 2008/02/11(月)18:16 ID:??? AAS
BBSの構造化バージョンをうpしました。
外部リンク[html]:www.geocities.jp
OOPの勉強として、簡易なBBSを作ってみました。
BBS Version2(2008.2.11)入力したデータで改行に対応してなかったので、その部分を修正。
BBS Version2の構造化Ver(2008.2.11)上記プログラムの構造化バージョンです。
336(4): 2008/02/12(火)04:15 ID:E8FcAvF5(1) AAS
そもそも起動したら即終了するようなPHPプログラミングにOOを使う必要性が感じられない。
337(1): 2008/02/12(火)09:16 ID:??? AAS
ここは必要性を語るスレじゃないですよ
338: 2008/02/12(火)10:36 ID:??? AAS
>>336
なんで実行時間とOOの必要性に関連があるの?
>>337
それは了見が狭すぎでしょ。
339: 2008/02/12(火)11:35 ID:??? AAS
>>336じゃないけど、オブジェクトは状態を保存しておくものだから。
複雑なデータを持つオブジェクトを作っても、mod_phpはリクエストの度にプロセス生成・終了するわけで、そのオブジェクトも消える。
そもそもウェブアプリはユーザからのリクエストを受けて処理が発生しする構造だから、オブジェクトを永続化しておくことにあまり意味はない。
オブジェクト指向に興味があるなら、GUIのあるアプリケーションとか、ゲームとかを作ってみるとよいよ。
340: 2008/02/12(火)12:57 ID:??? AAS
永続化されていないオブジェクトには意味がほとんどないという主張ならば、どうだろうね。
Booch先生も、「永続性」に対して、「有用ではあるがオブジェクトモデルにとって
なくてはならない要素というわけではない」 って言ってるし。
(もう絶版だけど、Booch法第2版 2.2節より)
341(2): 2008/02/12(火)13:17 ID:??? AAS
>>336だけどphpはプロセスを生成してから破棄するまでに処理を1度しか行わない関数?が多いし、
イベントが非同期で発生したりするわけでもないからOOを使うのはどうかなー?って気がする。
だいたいフローチャートで処理書けちゃうしね。
あとデータベースなりファイルなりからデータを読み込んでそれをオブジェクトの形に整形して・・・・
って処理が無駄な気がする。
実際に行う処理よりもその整形処理が長かったりするとなんか本末転倒なような。
上下前次1-新書関写板覧索設栞歴
あと 553 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s