ゆ~さんがこの二か月で習得したこと
広告の危険ライン回避の記事で CoderDojo について書いてたけどなんかなかなか進まない(削れない)ので、こんなことを投稿。
ま、この二か月の日記というか振り返りというか。
(よーするに二か月くらいまえからたってるんじゃねーかという。)
Git / Github 系
といってもここ最近だけど。 いちいち書いてたら間に合わないのでこれ便利ーっていうのだけ。 メモメモ。
Git
git add -p
(差分分割) :
変更、差分の分割に使う。 あー、同じファイルで目的違う 変更・差分つくちゃったわーって時に使う。多分ステージ状態にするのをきめたりできるんだっけ。
git stash
(一回差分とか回避?) :
一回差分を保存できる。 回復は、 git stash list
で番号をみて、 git stash pop stash@{#number}
で復活。
git rebase -i
(量産したコミットたちを縛り上げて一つにできる) :
おーー、コミット量産ー! でもこのまま push やら PR は汚いわー。って時に使う。HEAD~~~
みたいな感じで頭からまとめるのを指定できる。ログで pick から s(sqash)なりなんなりでまとめるのを変更してそのまま保存すればまとめた後のコミット名の編集画面になる。
git commit --amend
(しくじったコミットメッセージも治せる) :
いぇー!コミットメッセージ、Add を Ads にしてやったぜー、とか、 Update を Updata にしてやったぜー みたいな感じに使う。直前のコミットメッセージの変更ができる。
Github
以下のやつをサポートしてもらいながら作ってる(学習含めて)のでございますが...
coderdojo-konan-jp-rails.herokuapp.com
公開してるのは、 Gihub。なるほど、結構おもしろい。
Issues と Commit を紐づける
git commit
するときに対応する番号を入力するだけ。
例:) issue id が #3 で、紐づけする時
git commit -m "#3 Add Hepler for Next Event URL"
あとは、 git push
すれば... (ブランチは対象リポジトリあればなんでもOK)
こういう風に追加される。
Issues や PR と Issues や PR を紐づける
コメント欄や説明版に #{id} を入れる、ただそれだけ。
PR の マージと一緒に Issue も Close
PR の説明欄に キーワード + #id キーワードは調べれば出てくるけど、
fix fixed resolve resolved close closed
ぐらいは正しいと思う。
Rails / RSpec 系
といってもまああまり特筆事項はないか...
Rails
helper
意外に思ったのが、 root_url
とか、 devise の current_user
とかもHelper やったのね...(あれ、違う..?)
Dojo の HP では、次のイベントのページのURLをHelperで取得できるようにしてる。
RSpec
基本的なこと
テストの役割とか?
人間様でも見つけられないミスとか、やはり機械的に定義しなければ...
ただ、その機械に定義するのも人間というね... 勉強します...
基本的に、
describe "検証するもの。next_event_url みたいな" do context "場合とか。現在が開催前の場合 みたいな" do it "検証することとかく。イベントURLを返すこと みたいな" do expect('調べる値').to 期待すること # eq 'https://hoge.com' であれば hoge と等しいかを検証する end end end
という構文みたい。
これはなんというか、いかに期待することを再現して構文をするかっていう。訓練が必要ね。
Travis CI & Heroku
もう一項にまとめてしまう。
Travis CI は、テストを自動でやってくれるCIツール。
Heroku は Paas だったっけ、デプロイしたらすぐにアプリが公開できるサービスで、無料でも制約はあるけど使用できる。
そして、 Travis の設定次第で Travis のテストがパス => Heroku へそのまま自動デプロイ ということもできる。
Heroku
PostageSQL
Heroku はデフォルトで Rails に設定されてる SQLite ではなく、PostgreSQL なので、それ用の設定が必要。といっても設定ファイルはほとんど向こうで書き換えてくれるので、必要なのは、 Gemfile に gem 'pg'
を追加すればよいだけ。(productionに入れなくてもよいという話も聞いたことあるけど...)
おしまい
これぐらい?
まだ間違った認識や、あと変数・クラス・メソッドの命名とかはへたくそだったり、うまくリファクタリングというかができなかったりするので... おもしろい。
ま、もっともっと精進してまいります。