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

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

ついに応用編突入!

こんばんは、相変わらず私です。

 

早速ですがテストに合格して応用編に入りました!

ただ昨日受けたテストでは不合格だったので今日再試験を受けての合格です。どうやら昨日のテストで私がエラー問題の解答方法を少し勘違いしてたみたいで解決方法は合ってるけど原因が何かを文章で書いてないから三角になったみたいでした。別に答えが合ってるなら何も心配することは無いはず!すぐ試験用意できるようだったのですぐ受けて合格です。

しかしながら間違えた問題もあるのでそこは確実に潰していきます。

 

今日のアウトプット項目はこちら!

・first_or_initializeメソッド

スクレイピングの手順

・box-sizing: border-box;

・letter-spacing

・border-radius

・text-decoration:none;

・背景画像の設定

・エンジニアとして一番重要な「検索力」

jQuery

Unicorn

 

お!目新しい感じがワクワクしますね(・∀・)

 

・first_or_initializeメソッド

まずスクレイピングとは外部のサイトから情報を取ってくるっていうやつなんですけど、このメソッドはすごく重要です。このメソッドはwhereメソッドと一緒に使うことでwhereで指定した条件のレコードがあればそのレコードを返り値として、もし無ければ新しくインスタンスを作ってくれます。具体的にどういうことかというと、最初にスクレイピングをしてレコードを取得しますよね?そのあとに新しくレコードを追加する時にもう一度スクレイピングしちゃうと前回に得たレコードとは別に新しく丸々レコードができちゃうんです。同じレコードが2つある状況ですね。それを防いでくれるんです。こいつは!重複防止に使います。一つ重要なのはこのメソッドだけではデータベースに保存まではしれくれないんです。だから.saveをつけて保存は確実にしましょう。

 

スクレイピングの手順

スクレイピングをするにあたって流れを整理します。頭ではスムーズに考えられてもいざコードを書くときはちょっとやることが多いです。例えばあるページのなかのあるリンク先の2ページ目の情報が欲しいってなったらグンとややこしくなります。

まずスクレイピングをするためにMechanizeクラスのインスタンスを生成。これはもう必須。取ってきた情報を入れるカゴ用意したよって感じで受け取ってください。

そしたらそのインスタンスにどのURLから情報を取ってきていいか指定して変数にいれる。

そのURL内の欲しい情報をHTMLタグごと取得

あとはそれぞれメソッドを使って、文字だけを取り出すとか、URLを取り出すとか…

一度紙か何かに書いて整理してからあるのがいいかな。

 

・box-sizing: border-box;

これはCSSです。ある要素(箱)の内側に余白を取りたいときに使います。paddingでしてすると余白の分大きくなってしまいます。要素そのものの大きさを変えたく無いときに使えます。

 

・letter-spacing

文字を書いたとき間隔を調節するプロパティです。

 

・border-radius

これは箱の角を丸っこくしてくれるプロパティです。

 

・text-decoration:none;

文字を装飾するのに使います。今回はリンク部分に下線入るのを消すためのnoneとしました。

 

・背景画像の設定

いろいろやりました。画像の大きさはbackground-sizeで指定します。auto、contain、cover、長さ(px)の指定や%で指定します。

 

・エンジニアとして一番重要な「検索力」

もう応用編に入ってしまったので今まで基礎編でしていたように質問はできません。なぜなら毎回教えてくれる人が近くにいるとは限らず一人でも問題を解決できるようにしないといけないからです。自分の欲しい情報を確実に素早く手に入れるには、キーワードを絞り精度が高い情報を選び抜く力が無いといけません。1、2年前の情報ですら古い情報で使えないってザラにありますからね。なるべくエンジニア専門のサイトを利用した方が情報の信頼性はあがります。これらを存分に駆使して調べます。

 

jQuery

javascriptを使いやすくしたもの。様々なブラウザに対応しててページに「動き」をつけることができるのが特徴です。ただ10年ほど前にできたものなので最近のウェブサイトの複雑化により手に負えないって言われていて人気は下降気味です。

 

Unicorn

サーバーとRubyアプリケーションを繋ぐ役割をしてくれているRackwebサーバーと呼ばれるものです。Nginxという優秀なサーバーとセットにして扱われることが多々あります。

 

 

基礎編をやってたときも薄々感じてはいましたが、可読性って本当に大事。たった1行でめちゃくちゃ分かりやすくなったり。「コードで伝える」これ重視で応用編を進みます!

 

それではおやすみなさい☆