実際ぶち当たってるソースで結構困ってるのですが。
たとえば。パスワードをハッシュ処理(または暗号化処理)するってのは、割合に良くあることだと思います。
ハッシュと仮定して、とりあえず
- 新規登録時
- パスワード修正時
- ログインの時
- パスワードリマインダ系の処理の時
などにハッシュ処理が行われると思うのですが。これを、割合に皆さん「どうせ1〜2行の処理だし」ってことで
パスワードハッシュ値 = md5(パスワード平文);
って書いちゃうことがままあります。
個人的にはこれは「悪いコード」だと思ってます。
ここは、ひとかけらほど手間でも
パスワードハッシュ値 = パスワードencode(パスワード平文);
と関数(かより理想的にはclass)にラッピングしておくほうが良いと思います。
で、これがもうちょっとひどくなると「何十行と同一なソースをコピペしている」状況を多々拝見します。
共通化にはそれはそれでハードルがあるのですが(その一致性が「偶然」なのか「必然」なのかの判断)、それでも「ちゃんとやろうよぉ」な状況は少なからずお目にかかります。
特に「共通化は大事だと思うんだけど既存のコードが散らかってるから」って理由でcode hazardを広げてるケース。
そーゆー歴史が見えるようなソースを読むたびに…気力が抜けていきます(苦笑
っちゅわけで。
「ちゃんと共通化しませう」。