タイトルの通りです。ポエムです。
さて、ゲーブラに設置していた任天堂ソフト検索ポータルを個人的なサーバーに移転しました。
ついでに技術スタックも一新し、とても勉強になりました。
開発期間はなんと10ヶ月間。仕事終わりや休日に細々と進めていました。
技術寄りの記事はまた別途投稿する予定ですので、今回は移転した理由や悩んだ点を簡単にまとめます。
↓↓旧システム↓↓
↓↓新システム↓↓
なぜ移転したか
大きく分けて3つあります。
WordPress内でのメンテナンスに限界を感じた
WordPressのデザインやソースコードに引っ張られる箇所が多々あることで、更新が入る度にCSS等の見直しが必要になりメンテナンスコストが非常に高いです。面倒です。
また、PHPバージョンを自由に変えられない点もデメリットで、これが原因でXの自動ポスト用APIが動かなくなってしまいました。(X側が仕様変えたのも一因だけど)
共同運営ブログに勝手に個人的な趣味機能乗っけてた
みんなゆる~くやってるメンバーなので、問題になっていませんし、今後も問題になることはないと思いますが、乗っけた本人からすると罪悪感もあり、私物化するムーブは慎んだ方がいいかな~って。
外に見せられる実績が欲しかった
実は開発を始めた時期と転職活動を始めた時期はほぼ同じです。
その際、SIという職業柄、職務経歴書には詳細を公開できない実績しか並んでいないことに気付きました。
というか、深く考えなくても、この業界は顧客が企業や何らかの組織であることがほとんどで、公開可能なケースの方がレア。
ポートフォリオとしてGitHubを公開することを勧めるような話も多々耳にしますが、このシステムに私が関わりましたなんて勝手に出すわけにもいかないわけで。
そんな時に堂々と公開できるものが簡単なモノでも1個あると便利だよね。
以上3つの理由がありシステム独立に踏み切りました。
悩んだ点
各種データの登録が生SQL実行しかなかった
当然ながらゲームソフトは次々発売されます。その度にデータを追加する必要がありますが、登録画面なんて用意していませんので、データベースを直接触る必要があります。
管理にはスプレッドシートを使っていて、SQL文もここで作成しています。
作成したSQLはWordPressで用意されているphpMyAdminを使用して挿入。
実際の現場ではよくあるメンテナンス作業かもしれませんが、やっぱり登録画面から登録したい…。
ですが、旧システム側に登録画面、編集画面等を用意するのはかなり骨が折れる作業であることは明らか。WordPressの既存機能を流用することも可能でしたが、前述の通り、私物化をより強めてしまうことや、外部ツール(今回はWordPress)との密結合にはリスクがあるので、諦めました。
現時点で新システム側にも登録画面は用意していませんが、WordPressにムリヤリ組み込むよりは楽になるよう準備しました。
ゲーム機自体のデータの持ち方が曖昧だった
はじめのデータベースの設計をちゃんとしなかったことに問題があるのですが…
説明の便宜上、ゲームソフトテーブルとゲーム機テーブルとします。
ゲームソフトテーブルのレコードは1件1件全てがゲーム機テーブルに紐付くようになっています。
一見問題なさそうでしょう。
ただ、その結果
・テレビゲーム6/15などゲームソフトと一体型のゲーム機
・Wiiウェアなどのゲーム配信サービス
・スマホゲームなどの任天堂と無関係なプラットフォーム
これらの管理もゲーム機テーブルで行わなければいけないことに…
ゲーム機自体を検索する機能も後付けで乗せたかったのですが、ゲーム機テーブルも検索対象に入れてしまうと、Wiiウェアなどゲーム機ではないデータも出てきてしまい…
結局、ゲームソフトテーブルにスーパーファミコンと登録し、ゲーム機テーブルのスーパーファミコンと紐付ける始末。
新システムでは、テーブル設計ちゃんと済ませた上で開始したのでした。
パッケージ版とダウンロード版で2本分のデータを持たざるを得なかった
任天堂ハードでは3DS以降、パッケージ版とダウンロード版の2つの販売形態が採用されています。
ゲームソフトの種類によっては片方だけを採用するパターンもあります。
さて、ゲームソフトテーブルにはどう持たせよう?
①パッケージとダウンロードそれぞれのデータを作る?
→実質2本分のデータになってしまう。パッケージとダウンロードを紐付け、同じソフトであることを判定する対策が必要。
②1つのレコードにパッケージ/ダウンロードフラグを持たせる?
→今後別な販売形態が出てきてしまった場合にメンテ必須。パッケージとダウンロードで発売日が異なる場合に対応できない。
どちらにも課題があり、悩みに悩んだ末、旧システムでは前者を採用しています。
新システムでは一切の課題を取り払うため、ダウンロード版やバーチャルコンソールなど後発/再販/移植専用のテーブルを用意してます。
ゲームソフトだけではなく製品全ての検索に耐えたい
旧システムを運用してしばらくすると、収録データをゲームソフトだけではなく、任天堂製品と大きな括りにしたいと思うようになりました。
ただ時既に遅し。前述の通りテーブル設計にそんなこと考慮していないので、改修にはかなり時間がかかりそうです。
これが仕事ならなんとかするしかないのですが、プライベートの開発は、熱が冷めないうちにいかに短時間で済ませるか、ちゃんと道筋が見えているかが重要なので、はじめからダルいと分かっている作業を組み込むのは危険です。
新システムも現状はゲームソフトのみですが、後の拡張性を考慮しテーブルを設計しました。
いつになるか分かりませんが、後々増やすのでまた後日お知らせします。
まとめ
以上。
旧システムもしばらくはゲーブラ内に設置したままにしているので、検索結果のデザイン崩れが激しいですが、使ってやってください。
お気軽にコメントをどうぞ!