log > refacted-p-bbs公開した
refacted-p-bbs
レッツPHP!様のP-BBSのリファクタリングをいったん区切りにするので、Githubに公開することにした。
やり残したことに関しては、Isuuesに登録してある。テストもないしバグもあるので、descriptionにWIPって書いてある。直すのかは未定。
今回の結果は、敗北感しかない。だらだらやってしまったことや、手順が確立されていなかったことに加え、コード設計もこうしたらよかったと思う部分は多々ある。それでも、完璧なコードを書く前提で進めていたら完成しない。
12〜15年前のコードだったので、global変数が多々あるなどいろいろな部分が読みづらかった。コードをリファクタリングするにしても、Testableじゃないのでテストは後から書こうと思っていたが、これ以上やってもよくなることはないところまで来てしまったので、その気力がなくなった。
読みやすさ優先でコードを直したら、明らかに前よりコード量が増えてしまった。工夫して一回のループで終わるより、ループ二回の読みやすいコードの方がよかったのだが、これで目的が達成できたのか。二律背反のコードだと、やってもあまり充実感がなかったし、背徳感すらあった。
今回大変だったのはno dependencies、他のライブラリに依存なしで作ることだった。
テンプレートエンジンにTwigを使ったり、ValidationにFuelのValidationを使ったりできるマイクロフレームワークは偉大なんだけど、PHPスクリプト探している人がSSHでログインしてcomposer install できるかというと無理なので、こういう形になった。
もっとも、うまくできたかというと、できてないのだが。
他の人のOSS見るとちゃんと設計したりコーディングできているので、それが余計に劣等感を刺激してつらい。