Opened 12 years ago
Closed 12 years ago
#3432 closed enhancement (fixed)
MemberProfile, MemberProfileForm のリファクタリング
Reported by: | ebihara | Owned by: | ebihara |
---|---|---|---|
Priority: | minor | Milestone: | OpenPNE3.0beta3 |
Component: | core | Version: | 3.0.x |
Keywords: | Cc: |
Description
MemberProfile?, MemberProfileForm? のリファクタリングをおこなう。
重複したコードや、複雑すぎるロジックが隠蔽されていない、メソッドの役割が多すぎて可搬性および拡張性に乏しい、そのクラスがおこなう処理として適切でないものが混じっているなど、数多くの欠陥が見られるため、安定性を維持するにあたり大きな障壁となりうる。そのため、これを改善する。
Attachments (1)
Change History (6)
comment:1 Changed 12 years ago by
Owner: | changed from nobody to ebihara |
---|---|
Status: | new → assigned |
comment:2 Changed 12 years ago by
comment:3 Changed 12 years ago by
Component: | 指定しない → core |
---|
comment:4 Changed 12 years ago by
Version: | → 3.0.x |
---|
r10083, r10084, r10086, r10087, 10089 で、MembeProfileForm::save() で必要以上の役割を担わないように修正をおこないました。
ただし、 MemberProfileForm? または MemberProfilePeer? でおこなっている(もしくは、おこなうようにした)親子関係を構築するためのメソッドについて MemberProfile? に移譲することを試みましたが、単一選択のフォームのみの対応となってしました。
これは、複数選択のフォームに対して同様の対応を施した場合、 fixture によるデータロードが正常におこなえなくなる可能性があるなどの問題が考えられたためです。
とはいえ本件の目的は果たしたと考え、このチケットはこれで完了します。
※今後この問題について継続して対応される方のために、途中まで対応した複数選択のフォームについてのリファクタリング中の差分を添付しておきます。
Changed 12 years ago by
comment:5 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
r10081 にて、 ProfileOption? の値を取得するためのコードが重複していたのを修正しました。
date に関する処理が若干強引ではありますが現段階では許容範囲とし、これはこのままとします(もっともこれ以上ロジックが複雑になる余地があるようなら手を入れざるを得ません)。