Windows+Apache+MySQL+PHPで作られているという社内(?)のシステムのUNIX系OSへの移行作業とその後のメンテを押し付けられ命じられたので中を覗いてみる。
PHPは使ったことがないんだがなー。
DBを軽く見てみると
- テーブル数個のうち半分くらいしか使ってない
- 何もかもコード化されていなくて,ユーザやグループをはじめとする名称がそのままキーになっている。
- 一人のユーザに対応するグループが10個分用意されている。正規化されてない。
- コンテンツを保持するひとつの項目にplain textとhtmlが混在していて判別のための項目はない。
- たまに情報がDB内ではなく公開ディレクトリに無造作に置かれたテキストファイルに入ってる。
- フィールド名の綴りがいろいろ間違っている。
PHPの方を見てみると
- オブジェクト指向ではなく,別ファイルになっている関数群をまとめたものを require する形式。
- 関数群をまとめたファイルというのが,ディレクトリ毎に同じ名前の別ファイルとして存在していて,同じ関数が定義してあるが中身が少しずつ違う。
- 同じような手続きがあちこちにある。
- 組み込み関数の呼び出し方がいろいろ間違っている。
- ほとんどのデータを登録・修正・削除するインタフェースがない。
- 入力値に対するチェックがない。
- 単純に文字列連結でSQL文を作っている。
- HTMLのエスケープはほとんどやってない。SQLに追加される文字列のエスケープはまったくやってない。
- 使ってない(作りかけ)のファイルが多数。
など。
さて,どうやって捨てさせるか…。