質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

解決済

3回答

415閲覧

Ruby on Railsで1つのサイトに機能を盛り込んでいく。

mi_

総合スコア80

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

0グッド

1クリップ

投稿2018/08/21 00:23

編集2018/08/21 00:26

Ruby on Railsチュートリアルを2周くらいして、それをベースに投稿できて閲覧できるくらいのページをやっと作れるようになったものです。

Ruby on Railsで将来Webサービスを作るに当たり、1つのサイトの中にそれぞれ違う機能をもったWEBサイトを作りたいと思っています。(herokuの有料プラン1つに詰め込みたいです)

ホーム画面から各WEBサイトにリンクができて、全ページの一番上には同じホーム画面へのリンクを表示したいです。一見すると違うWEBサービスなんですが全体的にはひとつのドメインの中にあるというものを作ろうと思っています。

コントローラーやモデル、スタイルシート、viewsの中のlayoutsファイルなどいろんなものがごちゃごちゃしてきそうなのですが、そういった経験をお持ちの方や、使い分けの工夫や、命名の工夫などをされている方がいらっしゃれば、お知恵をお借りしたいです。

また、1つのアプリの中に機能を盛り込んでいくメリット・デメリット、発想が間違っていれば代替の方法、必要な知識があれば何を勉強したほうがいいかなどご教示いただければ助かります。ぜひ宜しくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

いやー、「herokuの有料プラン1つに詰め込みたい」という理由だけであれば、1サイトにしない方が良いですよ。
モデルの大部分が共通化されているんであれば1サイトでもいいかもしれませんが、基本的に共有しないんであれば、1つにまとめても見通しが悪くなるだけです。それよりも有料プラン2つで運用できるような資金なり何なりを貯める方法を考えた方がよっぽどマシかと思います。
逆に、複数のRailsアプリを1つのサイトのように見せかけるのは、reverse proxyを使うなどしてやり方はいろいろあります。ドメインは同じでもトップレベルのサブドメインを別名にしてしまってもいいでしょう。

投稿2018/08/21 17:36

takahashim

総合スコア1877

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mi_

2018/08/22 02:39

1つにまとめて見通しが悪くなることを危惧していました。 1つのサイトのように見せかける方法、サブドメインを別名にする方法もあるのですね。 もしご存知だったらなのですが、カテゴリー毎にherokuを分けた場合、使いまわしたいデータがでてきたら逆に違うherokuのデータベースから引っ張り出すのは大変なのでしょうか?
takahashim

2018/08/22 02:57

データベースから直接読むのはhobbyレベルではできなさそうです(StanardとかだとHeroku Data Link https://devcenter.heroku.com/articles/heroku-data-links というのがあるそうです)。 基本はJSON APIのようなものを生やして、そのAPI越しにアクセスする(サーバ間通信するとか、JSでフロントエンドでマッシュアップするとか)形になるんだと思います。
mi_

2018/08/22 03:00

ご丁寧に本当にありがとうございます!
guest

0

ベストアンサー

共通部分が多いなら Rails Engine を使う手もあります

ただし複数サービスと言うより1サービスで機能分割するイメージです
共通部分が少ないと手間の割に恩恵は少ないでしょうし、共通部分が無ければ同居の意味はありません

注意点としては参考記事の通り、若干レールから外れるのでデプロイやmigrateなど工夫が必要になります
参考: Rails エンジンによる脱 Microservices 化のススメ

※) heroku へのデプロイがどうなるかという懸念もありありますね

投稿2018/08/22 01:12

Ighrs

総合スコア656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mi_

2018/08/22 02:36

共通部分がないと同居の意味がない。おっしゃるとおりですね。 教えていただいたものを調べて検討したいと思います。
guest

0

リファクタリング、オブジェクト指向を勉強する

  • 自分に理解できるレベルの本と、すこし難しいと感じる本を両方読む
  • わざと汚いコードを書いてみて、それをリファクタリングしてみる

第三者にコードや設計をチェックしてもらう

  • ペアプログラミングやコードレビューなど
  • そのような環境にいないのであれば、チームメンバーに働きかけるなり、人を増やしてもらうなりが必要ですかね...

費用対効果を考える癖をつける

  • 機能修正にかかる人件費、時間
  • 機能追加や修正で得られる利益

いろいろ書きましたが、私自身ができていないこともありますね... (特に最後のもの)

投稿2018/08/21 00:52

sutonea

総合スコア207

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mi_

2018/08/22 02:34

大変勉強になります!費用対効果までの視野を持ちたいと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問