人生で初めて買った新品のMacBookでプログラマーを目指す記録

26歳の夏、新品のMacBookProを手に入れました。そいつと一緒にプログラマーを目指します。

Railsメインの復習

こんばんは、奥さん。今日もロマンティックなシャングリラ。

 

(君の瞳に乾杯、みたいなことを言ってみたかっただけなんです。)

 

今日は松屋で朝ごはん食べて、お昼はコンビニおにぎり食べながらパソコンとにらめっこして、夜は丸亀でぶっかけうどん。この流れが一番コスパが良い。

そして相変わらず埼京線は遅延。もうこれが通常なんですね。自分は朝はそんなに時間に縛られてる訳じゃないからいいけど、サラリーマンの人とか大変ですね。

 

はい、では世間話もそこそこにアウトプットいってみましょう!

 

今日も昨日の続きでツイッターの簡易版アプリケーションを作りました。今までももしかしたら書いてたワードがあるかもしれませんが我慢してください。なぜならこのブログは個人的なアウトプットようなので。そして私はすぐ忘れるんです、だから、ね?

 

MVC(エムブイシー)

これはいわずもがなRailsでは基本のやつですね。コントローラ、モデル、ビューの流れです。ルーティングからきたリクエストにコントローラが反応してアクションを呼び出す→アクションの中でモデルとあれやこれやしてデータベースからデータを引っ張ってくる→引っ張ってきたデータをビューに渡してページに表示する!これは大丈夫。だんだん覚えてきてる!

 

・params(パラムス)

これはもう忘れもしないparamsちゃん。ハッシュ形式のデータでビューから送られた情報(パス、入力されたフォームの中身だとか)が入ってるやつ!最初これが何なのか?どこにあるのか?全然ピンと来なくてスクールのお兄さんが頭ぐしゃぐしゃするほどに聞きまくって困らせた、そうあの思い出のparams。別のお兄さんはparamsはビューから始まって、ルーティング、そしてコントローラで情報を落とす、って考えてるって言ってました。確かにそのほうがしっくりくるかも。

 

・ストロングパラメータ

paramsから情報を受け取るときに自分が指定した情報以外を受け取らないようにするための、…やつ!まだ具体的にイメージがわかないけど、たまーに悪い奴が変な情報とかを入れるからそれを防ぐためとかなんとか。備えあれば憂いなしって言いますもんね!(違う?)

 

・binding.pry(バインディングプライ)

こいつはpry-railsっていう Gem(ジェム)のデバッグツールの一部。プログラムにストップかけてくれるんです。こいつを書いたら、書いたところでプログラムが中断してくれます。だいたいこいつでストップかけてparams出して(コンソールでparamsって打ったら中身見れる)使うのがほとんどですね。

 

・ページネーション

これはWebサイトの下の方とかに次ページとか番号でページ振ってあるあれです。ページネーションしなかったら1ページがめっちゃ長いですしね。Railsでは<%= pagination %>ってやったら表示してくれるkaminariっていうGemがあるんですよ。こういう便利なGemとかがいっぱいあるからRails人気なのかな。

 

・devise(デバイス

これも大事なお助けアイテムのGemです。こいつはログイン機能を一式用意してくれるめちゃくちゃ有能なやつです。一から作るってなるともう何をどうすればいいのやら。Railsの良さの代表的なものだと思ってます!

 

マイグレーションファイル

コマンドを使ってモデルを作るときに生成されます。こいつを編集してカラムを追加したり消したりします。大事なのは編集したら必ずrake db:migrateで実行すること!これやらないと意味ない!他にも消しちゃダメだとか、一つのファイルで消したり追加したりできないとか諸々…

 

・user_signed_in?

もう見たまんまです。ifとかと一緒に使って「もしユーザーがログインしてるなら…」って感じで、ログインしてる時だけ〇〇できて、してないときは「ログインしてください」って出るようにするってのもできます。

 

・n+1問題

たしかデータベースからデータ取り出すときにSQLってのを発行するらしく、それが取り出すデータの分だけ発行するから処理が大変だよね、だからいちいち発行せずまとめますよー的なことだと。例えるとA地点からB地点に100個の物を移動させるときに、1往復してB地点まで持って行ってさらにまた1往復してさっき持ってった物の詳細を聞きに行く、だったら持って来るときについでに詳細聞けばよくない?的な感じかな。1個や2個ならいいけど1億2億だったらやばい、マジ卍!私もはっきりとは断言できないけどこんなもんって思ってる。

 

・resourcesメソッド

ルーティング書くときに代表的な7つをまとめて一気に書けるようにしてくれてます。onlyやexceptを使って限定することもできます。

 

・ネスト

ルーティングの入れ子構造のこと。例えばインスタで写真アップしたらコメント来るやん?コメントはただコメントがあるって訳じゃなくて最初にアップされた写真ありきのコメントやん?だから大元のルーティングの中に一緒に書いて関連付けよう、な感じのイメージです。うん、だいたい合ってる!

 

・部分テンプレート

ビューの一部(同じようなことを繰り返してるとか)をもう一個別のファイル作って分けてコード見やすくしよう的なこと。他にも編集する時に手間が少なくて済むとかいうメリットもある。

 

ほんとは今日エラー問題のドリルを解く予定だったんですけど私のパソコンにエラーが出て問題が解けない事態に( ;∀;)明日の朝にまた出直します。

あとRailsについて明日は特別にミニ勉強会をやってくれるそうなのでそこでちょっと鍛えてもらおうかと思ってます。自分の理解度を知れるチャンス!

 

明日は金曜日です。私には関係ないけど土日休みのみなさん、ふんばりどころですよ!

おやすみなさーい(^◇^)