SOY CMS / SOY Shopの開発で嬉しいことがありました。
先日、SOY Shopで運営をはじめて6年目の方から、最近、SOY Shopのサイトの表示が許容範囲を超える遅さになりました。
という連絡がありました。
この方は共有サーバを利用していて、共有サーバ特有の騒がしい隣人問題を疑い、サーバ会社にお問い合わせをしてみたが隣人問題で負荷がかかっていることはなかったとの返答があったそうです。
※隣人問題というのは下記に記載があります。
SOYCMSのブログでデータベースをMySQLからSQLiteに変更する
そこで私の方に連絡したという次第で、使用状況を聞いてみると、SQLite版で注文件数が1万件を超えていました。
チューニングの出来ないSQLiteでは、大体1万件ぐらいの注文件数で運営の限界を設けていたので、チューニングが出来るサーバに引っ越しつつ、データベースをSQLiteからMySQLに引っ越すことを勧めました。
自由を求めてオープンソースのネットショップパッケージへ。軌道に乗った頃に遭遇する問題について
この時、引っ越しは有償サポートで行うと合わせて伝えています。
数日後に返答があったのですが、なんとこの方がSOY Shopのコードを読み始めたらしく、
/*****************************************************************/
データベースの設計で最適化に関する処理が抜けていることを発見したので、下記のように試してみたらベンチマークが2秒から0.1秒に改善されました。
/*****************************************************************/
というものでした。
指摘の個所はSOY Shopのベータ版の頃からあったもので、該当個所には全く意識が向いていなかったので、この指摘がなければ改修を行うことは無かっただろうなと。
送られてきたコードはSOY Shopの仕様上、採用は半分ですが、もう半分も採用できるように一部コードを書き換え、開発初期のコード故、影響個所が半端なく多い為、SOY Shop用のテストコードも大幅に見直した上でパッケージにしました。
今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。
https://saitodev.co/soycms/soyshop/
追記にはなりますが、冒頭の嬉しかったことというのは何か?というと、SOY CMS / SOY Shopは開発元の積極的な開発がなくなり、以前のWebデザイナーにとっての救世主と様々な方から紹介されていた頃の盛り上がりがなくなり、更には私が開発を続けたいが為に開発元を去って、一緒に開発する仲間がいない状態で3年近く改修を続けています。
時々、GitHubのプルリクやフォーラムでUIを改修しましたという連絡はありますが、コードを呼んで最適化するような意見というものはなく、日々の開発で孤独感がありました。
※UIの改善のコードももちろん嬉しい報告であることには変わりないです。
そこで解決の為にコードを読んで、しかも有効なコードが簡潔にまとめられていたというのは、ありがたい以上に誰かと協働している感があり嬉しかったです。
SOY CMS / SOY Shopはプログラマでは無い方向けの要素が強く、合わせてコミュニティ活動を怠っていたという背景から、開発元以外の方の開発の参加がほぼない状態です。
SOY Shopで商売をするプログラマが増えて欲しいなと日々感じていますが、公式の開発元の活発さがほとんどなければ難しいのだろうなと…