質問: 初心者ながら今年からRuby on Railsで、いくつかの応募フォームのようなものを作ったり、サイトを作っています。 PHPで何かを作っていた時は、作成したプログラムにエラーがあれば該当するページにだけエラーがでていた記憶があります。その際、他のページには特にエラーが生じなかったので、1つのドメインの中でいくつか組み合わせたりが可能でした。 MACを利用していますが、ローカル環境で作って、ターミナルのコマンドでgit push herokuなどを行った際に、herokuにアクセスするとエラー画面になったことがあり、herokuのアプリ https://○○.herokuapp.com/の全体にエラーが起きた印象でした。 そのトラウマから、一部が稼働をはじめた場合はその稼働している部分をとめたくなくて、URLが変わっても問題がないようなものは、本来一緒にしたいささいなものまで、https://○○.herokuapp.com/の○○部分を別にして新たに作っています。 作成したり、いじった部分以外の、それまで正常だった部分にエラーが起きることはRuby on Railsとherokuの関係上あるでしょうか? PHPの時に、フォルダ、ディレクトリを触らなければ安心して別のフォルダの中身を触れていたので、フォルダというよりルーティングがあるRuby on Railsは、その点があまり理解ができず、機能を追加する際などに怖い気がします。 みなさんの知見をおきかせいただければと思います。よろしくお願い致します。
回答: > > 作成したり、いじった部分以外の、それまで正常だった部分にエラーが起きることはRuby on Railsとherokuの関係上あるでしょうか? > > > いいえ、ありません。 Ruby on RailsがPHP Laravelであろうが、 herokuがGoogle App Engineであろうが、 それまで正常だった部分にエラーが起きる(一般的に`デグレ`と言います)ということは起こりうる話です。 なので、言語やプラットフォームに関わらず、それを事前に検知するためのテスト(一般的に`回帰テスト`と言います)が大切になってきます。 あと、環境差異によるエラーを事前検知するために、本番環境に限りなく近い環境(一般的に`ステージング環境`と言います)を用意し、そこで本番反映前にテストをするのも大切です。heroku等のPaasを本番環境としている場合は、ローカル環境との環境差異が比較的大きいので特にです。 herokuのURL的には以下のイメージです。 * 本番環境 https://hoge.herokuapp.com/ * ステージング環境 https://staging.hoge.herokuapp.com/ 事業会社の場合は、上記を効率的に行うためにCI/CDという仕組みを取り入れることが多いですが、個人の方や受託開発会社の方は、費用対効果が低いので、地道に上記を徹底することが重要かと思います。