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

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

ただいまの
回答率

87.37%

Rails アプリケーション開発の流れ

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 288

score 4

Ruby on Rails でアプリケーションの開発をしています。

添付画像のようなサイトを作りたいのですが何から作っていってよいのかが全くわかりません。

イメージ説明

イメージ説明

色々調べては見ましたがどこから手をつけたらいいのか、
どこをどう変えたら連動するのか頭が混乱してしまい何が正解かわからなくなってしまったので
ざっくりでもいいので全体的な流れを教えていただけると助かります。

本の投稿に関するモデル名は、Book。
Bookモデルのカラム名は、以下のように設定。
title:本のタイトル
body:感想
読んだ本のタイトルと、その本についての感想を投稿・編集・削除ができるように。
画面は下記の4つを作成。
アプリケーショントップ画面
投稿一覧画面:投稿された本の感想を一覧表示する画面(一覧表示はIDの若い順に表示する)
投稿詳細画面:投稿された本の感想を個別に表示する画面
投稿編集画面:投稿された本の感想を編集できる画面

よろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2021/06/13 17:56

    何も手を付けられないのでしたら、とりあえずRailsチュートリアルやっては?
    現状、仕様だけほんわか考えて何も手を付けないまま「どうしたら」と書いてるだけなので、「まずやってみて」としか他人には言いようがないです。

    キャンセル

回答 2

checkベストアンサー

+1

まず、基礎部分は理解できると言う前提です。

たまに、基礎をないがしろにして応用をやろうとする人がいます。そういう人は無理です。なので基礎ができる前提ですね。


Step1. 仕様を決める

もうちょっと詰める必要がありますが、一応やっていますね。

Step2. ユーザ目線で考える

たとえばECサイトでマーケットプレイスを作るなら、

メインページを開く
→検索窓に「PHP 入門 本」のように入力
→該当する商品の一覧が画像として表示される
→商品の画像をクリックすると
→詳細ページが表示される
→そこには商品の金額やその他情報が記載されている
→詳細ページの「カゴに入れる」のボタンを押すと
→カゴにストックされる

「レジに進む」を押すと
→レジページに誘導する
→そこには合計金額等が記載されている
→またクレジットカード払い等の支払い方法を選択する
…

のようにユーザ目線で考えてみる。

販売者のほうも同じように考える。

Step3. プログラム目線で考える

次は逆にプログラム目線で考える。

つまり、「手作業でならどうするか」や「裏方作業としてならどうするか」とかです。

Step2でやったものを販売員 等の視点から考える。

Step4. 必要なものを調べる

今までに出てきたもの(例えば、「クレジットカード払い」)を調べる。

Step5. 実装する

簡単に言えばコーディング。

Step6. デバッグ

デバッグしないとエラーが出るため。

Step7.テスト(検証)する

テストしないとバグが潜んでいることが多い。

一応、やらなくても使えはするが、ユーザはデタラメなことをするのでテストしないとバグだらけです。

例えば、「半角英数字10文字以内」と明示されているのに、11文字入れようとしたり、全角を入れようとしたりする。

テストしないとそういうエラー系処理がうまくいっているかどうかがわからないから。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/06/14 05:51

    >Step2. ユーザ目線で考える
    新入社員で模擬プロジェクトで設計させると大きくここ抜けてること多いですよね。それくらい難しいけど、最も大事な部分と思います。

    キャンセル

+1

開発経験がないか、経験が少ない場合は、
コードを書きながらなんとなくでサービスを完成まで持っていくのは難しいと思います。

まず、最初にやるべきは画面仕様書を作る事です。
経験がない人ほど、細かく作る必要があります。

画面仕様書というのはパワポでもいいし、Webサービスのプロトタイプ作成ツールでもなんでもいいので、
各機能の画面イメージを作る事です。
入力、確認、完了みたいな画面の流れがあれば全部作りますし、
エラー表示があるならそのエラー表示のイメージも作ります。
また画面に表示するメッセージやボタンのラベルなどもできるだけ実際に使うものにします。
で、このボタンを押したら、どの画面に移動するなどといった事も書いていきます。

ちょっと大変ですが、これを全ての機能に対して作ります。
これにより何が不足しているかなどが分かるし、どの程度の規模になるかも把握できます。
また、つながりがおかしいところなども気づけます。
実際にコードを書き始めると修正が難しいですが、画面仕様書であれば修正が容易です。

このように全画面分の画面イメージ、仕様を整理できれば、
どこから作ったら良いかも検討できるようになります。

これが完成したら、画面仕様を元にテーブル設計を行います。
ER図というデータベース設計のための仕様があるので、可能ならばER図を作るのが理想です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る