42日目
今日の学習
GitHub
approveを受けたプルリクをマージ
昨日は、完成した自分の持ち分のissueのプルリクを送った。
他のメンバーの方や、担当のメンターに「LGTM」というコメントつきで、Approve
をいただけたので、最後はこれをマージさせることになる。
あとはマージボタンを押せばOK。
何となく流れは掴めた。まだまだ独立したissueしかやっておらず、「このissueを行うには前段階のissueの完成が必要だ」というリアルな感じの開発ではないので、その段階まで進んだとしても周りにご迷惑をおかけせずに進めていきたい。
Ruby on Rails
Railsチュートリアル 第5章
パーシャル(partial)
チュートリアル内でパーシャル
という単語が出てきて、なんだ?と思ったが、すでに部分テンプレートという名前で普段から活用しているものだった。
パーシャルを使ってね、と言われても「何ですかそれは?」とならないように名前を覚えておきたい。
Railsヘルパーという知識が増えて、パーシャルで利用しているrender
はRailsヘルパーのメソッドだということが分かった。
アセットパイプライン
以下、引用。
Ruby on Railsにはアセットパイプラインという機能が実装されています。その役割をひと言で説明すると、「Web画面上の色塗りを楽にする機能」です。
比喩として”色塗り”と言っていますが、具体的にはWebブラウザに画面のデザインを認識させるためにHTMLに紐付くCSSやJavaScript、Imageファイルを記述・作成することです。
railsのアセットパイプラインについて解説する - Qiita
作業がしやすいように画像、javascript、css、htmlファイルを分解つしてコーディングして、最終的に1つのファイルにまとめる仕組みのこと
普段railsを使うときには意識することはありませんが、htmlファイルはapp/viewsに配置されてjavascriptファイルはapp/assets/javascriptsに配置されていると思います。
このようにファイルは分けて管理した方が、人間にとってはわかりやすいですが、最終的には全て統合して一つのファイルに統合して扱われます。さらに字を詰めることでファイルの容量を最小化する働きがあります。
普段、HTMLファイルはapp/views
ディレクトリ内に作成している。
一方で、HTMLを装飾するためのCSSファイルやJavaScriptファイルはapp/assets
ディレクトリ内に作成している。
明示的に分けられていることにより、人間にとっては非常に理解しやすくなり、作業効率も高くなる。しかし、最終的にはこれらのファイルを統合する必要があるようで、その役割を担ってくれているのがアセットパイプライン
のようだ。
こう理解すると、以下の引用文がよく分かるようになる。
統合テスト
第5章では、ルーティングを設定し、各所にリンクを設定していく作業があった。
このときに埋め込んだリンクが、正しく動作するかどうかのテストを書いた。確かに、一つ一つリンクが正常に動作するかを確認していくことは大変だ。
統合テスト(Integration Test)
というものを使い、作業の自動化をはかる。
rails g integration_test ファイル名
コマンドを実行すると、以下の結果が得られる。
test/integraton/ファイル名_test.rb
出来上がったファイルに対して、実際に書いたコード。
require 'test_helper' class SiteLayoutTest < ActionDispatch::IntegrationTest test "layout links" do get root_path assert_template "static_pages/home" #テストを作成した時点でroot_pathへのリンクが二箇所ある assert_select "a[href=?]", root_path, count: 2 assert_select "a[href=?]", help_path assert_select "a[href=?]", about_path assert_select "a[href=?]", contact_path end end
上記のコードをテストしたいときは、rails test:integration
コマンドを入力する。
ちなみに、実際にやっているときはテストに失敗してしまったのだが、link_to
のpathに' '
をつけたままにしていたのが原因だった。
エラー文で調べた際に以下の記事を見つけて解決できた。深謝。
Expected exactly 2 elements matching "a[href="/"]", found 0.. のエラーメッセージ - Qiita
Bootstrap
昨日設定した、classの属性jumbotron
やnavbar
、btn-primary
といったものは、やはりBootstrapt特有のものだった。
Bootstrapの特徴は、アプリケーションをレスポンシブデザイン
にできることだ。
bootstrap-sass
というgemを使い、Railsに導入する。
学習メモ
- Customize and download · Bootstrap
Bootstrapが定義している変数
余談
気晴らしにプログラミング関係の話をしている動画をyoutubeで見ていたのだが、「エンジニアの適性があるかどうかの調べ方として、paizaのスキルチェックを受けて、二ヶ月でCランクに行けないと向いていないのではないかと思う」と仰っている動画を見かけた。
自分はプログラミング関係の仕事に就くことができるか非常に不安で、試しにpaizaのスキルチェックを実際にやってみたのだが、数問解くとすぐCランクになった。
やる前は一体どんなハードルの高さなのだろうかと緊張していたので、少なくともものすごく最低限の知識は身につけられていることが分かって良かった。
だからと言って何もならないのだが、paizaにはたくさんの問題が用意されていて、毎日挑戦することを日課にするのはかなりいいかもしれないと感じた。
Dランクの問題をちょこっとやっただけなのだが、一つだけちょっと時間がかかってしまった問題があったので、Dを中心にやってみながらCにも手を出してみたい。