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

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

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

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

Ruby on Rails

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

Q&A

解決済

2回答

745閲覧

RailsでAPIを作りたいです。

hec

総合スコア7

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/06/08 04:06

タイトルの通りRails でAPIを作りたいのですが、今までRuby,Railsを使った開発の経験はありません。
Ruby、Railsの基礎学習としてはどれくらいのレベルまで勉強すべきでしょうか?

とりあえず今はProgateを一周しようと考えています。

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

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

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

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

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

guest

回答2

0

ベストアンサー

まず、前提が違います

プログラミングは『こう書けばいい』ではないです。

そもそもプログラミングがあるからソフトを作るだのじゃないです。

元々、機械(コンピュータ)は『人間が手作業でやっていることを代理でさせるためのもの』です。

元々は軍事利用でした。暗号解読とかです。

でも手作業でやる場合、面倒です。

なので機械に任せようという考えに。

で、機械は『暗号解読してくれ』とかみたいな曖昧な要求は無理です。
そのため、『人間が手作業でやっている手順を、事細かに指示する必要がある』のです。

その事細かに指示を出すことがプログラミング。

そして、C言語ならC言語、PerlならPerl, PHPならPHPと言う風に、独自の書き方にしたものがソースコードです。

その独自の書き方とかが『基礎部分』と呼ばれるものです。

なので『一旦は教科書等にあるものを理解する』必要があります。

たとえば、料理をする場合、すぐに料理しますか?

私はめったに料理しません(仮にしてもいわゆる「男の料理」というやつぐらい?) が、
普通、料理をするなら、『道具がそろっているか』、『どんな食材があるか』とかを確認しますよね?

この確認作業と、道具の使い方が質問でいうProgateとかでのものです。

ですが、この『道具がそろっているか』とかを理解しても、調理方法を知らないとできませんよね。

たとえば、『レシピにないことはしない』とかです。
料理で失敗する原因の多くは、『余計な事をしているのが原因』らしいです。

なのでレシピ通りに作ることとかが当たり前です。(慣れてきてから応用をする)

それと、『道具の使い方やその他の技法』を理解している必要がありますね。

たとえば、『みじん切り』、『角切り』、『かつら剥き』等です。

確かに知らなくても、出来なくはないですが、中途半端になりますし、用語を理解していないと「言われても理解できない」です。

なので基礎は大事。

プログラミングでも同じことが言えます。

よって、『まずは基礎部分を一通り理解する事』。

完璧にしなくてもいいです。

たとえば『変数っていうのは何なのか』とかみたいなざっくりとした理解でいいです。最初は。

そして、『実際に何か作る』。

ただし、「○○作りたいからコードくれ」とかじゃなくて、

自分で設計し、自分でコーディングし、自分でデバッグし、自分でテストまでする』です。

ここまでできるのが当たり前のレベルです。(趣味であっても)

ここまでできないなら、使えない人材です。

DIYが趣味と言う人が、(適当な)設計図すら書けず、自分で組み立てることすらできないならDIYが趣味と言うのはうそですよね。

それぐらい当たり前のことです。

まあ、まとめると、

Step 1. (Progate等の)基礎部分をざっくりと理解する Step 2. 実際に何か作る

ですね。


後、仮にソフトなりゲームなりサイトなりを作るなら、

Step 1. 何を作りたいのかを決める Step 2. ユーザ目線で考える Step 3. プログラム目線で考える Step 4. 『現実世界でならどうするか』を考える Step 5. 規則性を見付けたり、言い換えたりする Step 6. 必要なものを調べる(検索する) Step 7. 実装する Step 8. デバッグする Step 9. テストする

ですね。

Step1 は、簡単な仕様を決める。

たとえば『ダブルクリックしたら、そのフォルダ内にあるファイルを連番にする』とかです。

もちろんサイトとかでもいいです。

Step2 は ユーザ目線で考えます。

たとえば Am*zonとかのようなECサイトなら、

メインページを開く → 検索窓に『PHP 入門 本』とかのような検索キーワードなりを入れて検索ボタンを押す → 該当した商品の一覧(画像)が表示される → 一覧で表示されている画像をクリックする → 詳細ページが表示される → 詳細ページの『かごに入れる』ボタンを押すと ...

のようになるはずです。
(仕様によって異なるが、基本部分はざっくりと上記のような感じになるはず)

そう考えると、『メインページ』、『一覧ページ』、『詳細ページ』、『レジページ』……とかが必要だと分かりますね。

ECサイトとかだと、供給側(つまり販売者側)の在庫確認とかもあるので、それも同様に考える。

Step3 は Step2の逆、つまり『裏方作業でやる』感覚で考える。

上記をやるなら、『在庫があるかどうかを調べる』とかが必要だと分かる。
Step2と同じような要領で裏方、あるいは手作業でやるならどういう手順でやっているかとかを考える。

Step4 は Step2,3 を総括して、考えたりする。

FizzBuzz問題とかみたいなものであれば、規則性を見付けたり、言い換えたりする。

後は検索したりして実装し、デバッグやテストを行う。

ここまでは、ソフトやサイトとかを作ることに注目していますが、
API作成も発想自体は同じです。(範囲が狭いか広いか、単体で使えるのかどうか、書き方が微妙に違うとかが違うだけで発想自体は同じ)

頑張ってください。('ω')


[追記1]

後、『検索力』も必須です。

自分なりに検索したりできるようになりましょう。
プロでも調べながらやっています。

更に『質問方法も工夫する』。

今回はいいですが、質問方法を工夫するだけでもだいぶ違います。

単に「変数がわからん。教えてくれ」よりも、

『参考にしたサイトのURL』や、『どのように考えた』、『どのように組んだ』等のような、ほんの少し工夫するだけでもだいぶ印象が違います。
(でもこれができる人、意外と少ない気がする……)

投稿2021/06/08 09:13

編集2021/06/08 09:17
BeatStar

総合スコア4962

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

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

0

どんなものをどんなレベルで作りたいかによります。
言語やフレームワークは所詮道具に過ぎないので、それによっては別の道具を選択したほうが良いこともあります。
APIって非常に広義ですし。

基礎を学習してミニマムアプリたくさん作っていきつつ、要件を具体化していってください。

とりあえず今はProgateを一周しようと

Railsで完全に初めてならチュートリアルのほうが良いです。

投稿2021/06/08 04:17

m.ts10806

総合スコア80875

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

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

m.ts10806

2021/06/08 04:27

作りたいのはご自身じゃなかったのでしょうか。 私は「基礎を学習して色々作っていきつつ」と書いています。 今要件だけ出されても(しかもどこから拾ったものか不明)ご自身に何も手を付けられないのでしたら、少しでも手を付けられるくらいになるまで基礎とミニマムアプリを作りましょうという意味です。 それに100%これだけやれば大丈夫という基準はないです。 実務でも要件に対して幾つも案を出して検証しての繰り返しですし、一発で完全なものできません。
hec

2021/06/08 04:33

了解しました。 完成イメージが湧くようになるまで学習を続けてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問