未経験からプログラマに、俺はなる!!〜とある東大生の挑戦記〜

院進学予定の東大農学部生がふと思い立ち、10か月でアメリカのプログラマーになるまでの記録(初めての方は左上のリンクから「このブログについて」に飛べます)

Launch School備忘録3(Preparatory-Back-Ruby)

-------------------------------------------------------------------------------------

最大のリスクは、
リスクのない人生を送るリスクである。
「第8の習慣」より
ー スティーブン・R・コヴィー

-------------------------------------------------------------------------------------

Prepratory Work(Back-end)(11/15)まで来ました。

もう本当に単なる備忘録ですww

あーやってんなーくらいに思っといてくださいww

 

ActiveRecord::Baseとかってのは、ActiveRecord名前空間のBaseクラスを指す。

GitHubのdocumentationにおいて、

::はクラスメソッドであること

#はインスタンスメソッドであることを表す。

これはrubyのコードの中では全く違う意味を表すから注意。

terminalにて。

irbを押すと、rubyのコードがベタ書き出来る。irbrubyについてくる。

.rbファイルはexecutableであり、ruby sample.rbのようにして実行できる。

irbでは戻り値がいちいち出てくるが、ruby sample.rbのように実行した場合、戻り値は出てこない。

rubyistになるには、まずsublime textのtabをspace2つにしないといけない。

ここが若干詰まった。言われた通りpreferenceのsettingで"translate_tabs_to_spaces": trueってしてるのにtabがそのまま入力されつづけたから。

何回sublime textを再起動してもダメでおかしいと思ってたら、普通に保存した先ではspaceになってました。。くっ

はじめに、にて。

プログラミングの本を読んで理解しても、実際に空っぽのエディタを前にして問題を解けと言われて何も出来ないことはよくある。プログラミングは体に覚えさせる必要があるので、excersiseは飛ばしてはいけない。

また今現在、世の中には数多のプログラミング教材がネットに無料で落ちていることを我々はよく知っているが、一方でそれらが非常に初学者を惑わせているのも事実。

launch schoolでは大幅な省略を行い、必要なことを必要な時に教えるので、心配せずについてきなさい。初学者にとって最高の入門書を用意しました。

だそうです。

Rubyにおいて全クラスは何らかの名前空間に属しており、APIのdocの左のClass/Module Indexには、今のクラスが属している名前空間の他のクラスが見えている。

APIのdocにて。

Included Moduleというのは名前の通り、IncludeされたModuleで、そのModuleの機能が今のクラスで使えるというもの

例えば、StringのAPIにはbetweenメソッドは定義されていないが、Comparable ModuleがIncludeされてるので、"cat".between?("ant", "zebra")などができる。(これは辞書順的にtrue)

Rubyでメソッドについて知りたくなったら、APIを見よう!

String:String (Ruby 2.1.2)

 

"RubyGems"には2つの意味がある。

・Gemファイル(ライブラリ)

・Gemファイルを公開する機能(?)のこと。(若干掴みきれてない)

共有自体はRubyGemsでやってる。

Gemのバージョン管理はSemantic Versioningにて行われている。

新しいバージョンが公開されることを「新しいバージョンがcutされた」という。

gem コマンドを使ってgemは使う。

installコマンドと合わせることで、ダウンロードとインストールを同時に行える。

コマンド:
gem install <gem name>

今は少ないからいいけど、経験を積んでくるとどこのプロジェクトにどのgemが使われているか分からなくなる。そういう時はGemfileを使う。(絶対rails turtorialでもprogateでも使ったやつだ)

gemのコマンド類はRubyGems Basics - RubyGems Guidesにまとまってる。

pryは、最近急速に広まってきたirbで使えるgem。

デバッグによく使える。

# preparation.rb
require "pry"

a = [1, 2, 3]
a << 4
binding.pry     # execution will pause here, allowing you to inspect all objects
puts a
みたいにすれば、binding.pryの所で一旦止まってpryセッションがスタートする。
そこで自由に自分の好きなコードを実行できる。
putsよりかは全然使える。

stringについて。

""も''もそんなに変わらないが。。

This is a 'pen.'と書きたいときは、

・ダブルクオテーションを使う

puts "This is a 'pen.'"

・シングルクオテーション+エスケイプを使う。

puts 'This is a ¥'pen.¥''

ダブルクオテーションでは、string interpolationが使える。

irb :001 > a = 'ten'
=> "ten"
irb :002 > "My favorite number is #{a}!"
=> "My favorite number is ten!"

シンボルは、変数の前に:をつけて定義する。

:"surprisingly, this is also a symbol"
これもシンボル。
シンボルは普通何かを参照する(しかし表示も更新も一切する予定がない)時にキーとして使う。(正確ではないが、immutable(unchangable) stringとよく言われる)

 

object.nil?で、objectがnilかを判断できる。

nilの真偽値はfalse。

けど、false == nilはfalse。

to_iでintegerに、to_fでfloat にする。

irb :001 > '4'.to_i
=> 4
irb :002 > '4 hi there'.to_i
=> 4
irb :003 > 'hi there 4'.to_i
=> 0
irb :004 > '4'.to_f
=> 4.0
irb :005 > '4 hi there'.to_f
=> 4.0
irb :006 > 'hi there 4'.to_f
=> 0.0

 まじか。おおお。最初から読み取り始めて数字が続く限り見るのか。

'1 2 hi there'.to_i
=> 1

だったのでそうだろう。(半角スペースで分断)

ハッシュは、キーとデータのペアの集合で、キーは大抵シンボルを使う。

irb :001 > {:dog => 'barks', :cat => 'meows', :pig => 'oinks'}
=> {:dog => 'barks', :cat => 'meows', :pig => 'oinks'}

な感じ。

取り出すときは、

irb :001 > {:dog => 'barks', :cat => 'meows', :pig => 'oinks'}[:cat]
=> "meows"

な感じ。

=>:ハッシュロケット

movies = { jaws: 1975,
           anchorman: 2004,
           man_of_steel: 2013,
           a_beautiful_mind: 2001,
           the_evil_dead: 1981 }

カンマは後ろ!

 

PS:

http://gendai.ismedia.jp/articles/-/50368読みました。

心揺らされますね。こんなことしてる場合じゃないってなる。

んー、でも今はプログラミング頑張るしかないですね!!

 

【英語備忘録】

per se:それ自体で
perk:元気になる、喜ぶ
temperament:気性
time-sink:時間を消費するもの
musical scale:連続した音符のセット
buckle up:シートベルトを締める
snippet:(小さい)一部
sematic:言語やロジックに関連した
pry:詮索する
inquisitive:1. 知りたがり 2. 詮索好きな(悪い意味)
concatenate:(いろんな意味で)一列につなげる
mnemonic:(覚えるのに用いる)連想や語のパターンなど
caveat:危険
brace:かっこ
factorial:階乗