本日は久々に、WEBサイトのアップデート情報のお知らせです!
・・・とはいっても、大衆向けにはパッとすぐにはわからない徹底的に地味な更新が今回のアップデート内容となります。ので一言でお話します。
2割増しにWEBサイトが早くなりました!
ここからは、中のプログラムがどうなっているのか?どんなふうに運営してきたのか?について興味のある方のみご覧ください。
私たち共栄美装は、WEBサイトのプラットフォームとしてWordpressを使用しています。WordPressとは主にPHPで動作するタイプのCMSです。以下に用語解説を入れさせていただきます。
WordPress | 元々はブログ向けに開発されたプログラム。拡張機能のプラグインや外観テーマを付けたりカスタマイズでき、開発も盛んなのが特徴 |
PHP | ハイパーテキストプロセッサーの略語で、データベースとやり取りをしたりする為のサーバーサイド言語。 |
CMS | コンテンツ・マネジメント・システムの略語。本来プログラミングができないと作ったり運営できなかったWEBサイトを、クライアントがログインして手軽に運営できるようにしたもの。 |
さて、開発初期は良くても日数、年数を追うごとに大変になってくる作業があります。それは、アップデート対応です。
WordPressも、PHPも、プラグインやテーマファイルも技術的なアップデートに適応できないと、正常に動作しなかったりパフォーマンスが落ちてしまったりします。逆に言うと、アップデートに上手く対応していければ快適で素早く応答するWEBサイトを皆様にお届け出来るということです。
今回の11月上旬アップデートは、PHPのアップデートとその対応についてです。
PHPのアップデートで何が変わったのか?
PHPとはプログラム言語の1つであり、バージョンを追うごとに記述形式に古い新しいが出てきます。サポート切れしてしまうほど古い記法で書かれたソースコードは、エラーコードがWEBサイト上に現れてしまいます。
大元となるプログラムも、パフォーマンスやセキュリティを向上させていく為に要るものと要らないもの取捨選択をしているのです。その為に淘汰されてしまうコードも幾つかあります。
これは、別の記法に書き換えることでバグを修正することが出来ます。
テーマも、子テーマ化を進めています
WordPressのテーマには親テーマと子テーマというものが存在します。
別れているのにはそれぞれ理由があって・・・
親テーマ | 大元となる外観テーマ カスタマイズ値がアップデートに巻き込まれる |
子テーマ | カスタマイズ内容をまとめたもの アップデートに巻き込まれない |
こういう位置づけとなっています。無知による恥を承知であえてお話をさせてください。
私ははじめ、親テーマの更新ばかりをしていました。この状態はアップデートがものすごく怖く、新しく更新が入ってきたことでカスタマイズ値も初期値に戻されてしまうのです。この現象のことをリグレッションといいます。
子テーマの存在に気づいたのは途中からであり、カスタマイズ内容を少しずつ少しずつ打診しながら移行させています。これは現在も継続して打診をしながら、子テーマを成長させていっています。
アップデート内容まとめ
PHPのバージョンが7.4→8.1に
これにより、パフォーマンスは体感的に2割ほど向上しています。ページを何度か行ったり来たりして移動すれば一番実感しやすいと思います。社内で何人かに試してもらいましたが「早くなってる」と言っていましたし、Google検索してみると、ベンチマークテストの結果を数値で出している方も居ました。
参照:【PHP8.1】PHP8.1はPHP7.4より20%高速化している
https://qiita.com/rana_kualu/items/a402756fdd888a5f7c3a
子テーマ化については現在開発段階
打診方法は
親テーマをアップデート↓
エラーコードが現れる↓
子テーマorページ上で該当箇所のソースコードを調べて、新しいコードを書いて打診↓
すぐに治りきらない作業量の場合は親テーマを元のバージョンに戻す
・・・といった作業を繰り返しています。
最初に子テーマ化を進めていけば、もう少しスムーズに作業もできたのですが、これがパターン化できた事は10~11月に作業をしていた中ではかなり大きな収穫です。日頃から進めていたリファクタリングが役に立ちました。
補足情報になりますが、こちらの記事に触れる内容も少しお話しますね。
ソースコードも、記述が進んで冗長化していくとグチャグチャにからまったパスタのようになってしまいます。これをスパゲティコードと言うんですが、人が把握できる範囲内に区切ってグループ化していかないと大変な事になってしまいます。だから私は外部から見た時の挙動は変えずに、プログラムの内部構造を整理するリファクタリングを日々行っています。
これをやっていて本当によかったと思いました。どこに何があるのか把握していたからこそ、エラーコードに対する対応も早く済みましたので・・・。
まとめ
目に見えない所や、誰ひとり理解してくれないような所でも問題点に気づいていたらまっすぐに取り組む。私は、それが現代人に一番求められている事じゃないかと思っています。