Twitter botの テスト環境、本番環境

他のbot作成者の方がどのように、コード管理や、テストを行われているか知らないのですが、自分はこんな感じでやっていますというお話。

[Twitter アカウント]

通常自分が使っているアカウントの他に

1.botアカウント 本番用
2.botアカウント テスト用
3.テスト用アカウント x 2

 の4種類のアカウントを利用しています。
 そのうち 1,2のbotアカウントについては、OAuth対応のため、アプリケーション登録済み。

[ローカル/サーバー]

ローカル(自宅PC)
サーバー(さくらインターネット

※本当は、自宅PCの環境を本番環境として利用しているさくらと PHPのバージョンやら何やら一致させた方が安全なのですが、そこまで、最先端なことをしていないし、大丈夫かな?とずるずるそのままでやっています。
  ただ、実際のところは、自宅PC上と、サーバに上げた時で動作が違うことも発生するので、そこは、try & errorで潰すという泥臭い作業を行っています。

[コード管理]

 本当はSVN等利用して、きっちり管理すると良いのですが、1世代以上前に戻る必要が生じたことも現時点は、無いので、大きな変更を行う前にごっそりバックアップを取っておく位で、通常は、稼働中、開発中の二世代を違うディレクトリに入れて、開発、テストが終わったら本番(稼働中)ディレクトリに移すという原始的管理中。

 ローカル、サーバそれぞれに、開発中、稼働中の2種類のディレクトリが存在し

  1. ローカル 開発中ディレクトリでコード変更
  2. ローカル環境 開発中ディレクトリ&テスト・アカウントで テスト
  3. ローカル 開発中ディレクトリ ⇒ サーバ 開発中ディレクトリ に変更したphpファイルコピー
  4. サーバー環境 開発中ディレクトリ&テスト・アカウントで テスト
  5. テストが全てOKであれば ローカル 開発ディレクトリから ローカル、サーバの稼働中コード用ディレクトリに ファイルコピー
  6. サーバ環境 本番用ディレクトリのコード&本番アカウント で最終チェック

 といった、感じに開発したコードのテストと本番への実装を行っています。(ていう程偉そうなものでもないですが)

 なお、ユーザーの接続情報は、よく配布されているコードですと、プログラムにベタ書きですが、自分の場合は、プログラム本体とは別のファイルに入れて、開発ディレクトリには、テスト・アカウントの情報、本番用ディレクトリには、本番アカウントの情報をあらかじめ仕込んでいます。
こうしておくと、開発用のディレクトリにあるコードを実行すれば、テスト・アカウントで接続し、本番用のディレクトリ内のコードを実行すれば本番用アカウントでTwitterに接続できるので、開発⇒本番 で、アカウント情報を書き変える手間が省けます。*1

*1:実際には、接続情報への外部からの不正アクセス避けのため、ユーザー情報のファイルは、web rootより上の階層のディレクトリに格納しており、bot用のプログラムを格納しているディレクトリには、そのファイルへのアクセス方法を入れています