レガシーコード In WordPress
-
Upload
masklegacy -
Category
Documents
-
view
9.145 -
download
0
description
Transcript of レガシーコード In WordPress
レガシーコード
in WordPress
レガシーコードとは
● 理解しづらい、変更しにくいコード
● ユニットテストが存在しないコード
● 技術的負債
● プログラマの嫌いなもの
プログラマからみたWordPress
● すごく流行っている
● でもコードは読みづらい
● できればコードは触りたくない
● 正直我慢ならないレベル
● →レガシーコード的な特徴を持っている
レガシーコード化した理由
● 貢献の難しさ
● 良くないプログラミング手法の多用
● 古いPHPの機能への依存
貢献の難しさ
● SVN + Tracなのでパッチを送るのが面倒
● GitHubからプルリクエストを送っても放置
● プラグインの開発とかも重くて大変
● Git > Svn では無いけれど、議論も停滞。
● plugin.svn リビジョン番号77万
良くないプログラミング手法
● グローバル変数
コード解読とテストの難易度を上げる
WordPress中に1,044ヶ所出現
古いPHPの機能への依存
● var
PHP4の不完全なオブジェクト指向機能
731ヶ所出現 (grep ‘var \$’)
コメントにはpublicって書いてある
protected は付けてるのに…
コメントには private と書いてある
古いPHPの機能への依存
● mysql_connect
廃止が決まっている非推奨のPHPの機能
2009年からPDOへの移行が提案されたまま
mysql_connect
deprecatedのエラーを消してる
コミュニティの断絶
● PSR
20以上のFWやCMSが参加する標準
WordPressは投票にも参加していない
なんでそんなことに
● 後方互換性の重視
ユーザの環境を壊せない
機能も増えないしバグも治らないのにコード変えるの?
maybelater?
その結果
● PHPでWordPressがいずれ動かなくなる?
● CMSの相互連携などが進みづらい
● WordPressでPHPを学習すると10年近く前の
スタイルのPHPしか覚えられない
負債への対応
● 学習、学習、学習
正しい手法を使う
● テストによる支援
後方互換性を維持しながらコード変更する
● 外交手腕
ただしい手腕を進める体制づくり
ここで叫んでも何も変わらないのはわかってます
変えることができるのは…
あなた達です!