2020-08-01から1ヶ月間の記事一覧

Rails モデルを使ったレコード検索

Rails では Active Record を利用することで、直接 SQL を書くことなしにさまざまなデータ操作ができる。 レコード検索 rails コンソールで動かして、発行される SQL も確認してみる。 1件検索 id で検索 id で検索する場合は find を使う。レコードが見つか…

パーフェクト Ruby on Rails 輪読会

8月9日から、フィヨルドブートキャンプ の有志で「パーフェクト Ruby on Rails 輪読会」をやっている。 パーフェクト Ruby on Rails 【増補改訂版】作者:すがわら まさのり,前島 真一,橋立 友宏,五十嵐 邦明,後藤 優一発売日: 2020/07/25メディア: Kindle版 …

Kindle で洋書を無料で読む

今学習でつまずいているので今日は技術にあまり関係ない話。 英語もプログラミング言語も、多読が効果的という仮説を立てた。— masuyama13 (@masuyama_13) 2020年7月14日 3月に仕事を辞めてから、一日中プログラミングをやっている生活の中で、寝る前30分は…

銀座Rails#24 に参加

8月28日、オンライン開催された 銀座Rails#24@リンクアンドモチベーション に参加した。ツールはZOOMで、参加者は約80人。 出張Railsウォッチ in 銀座Rails 本日の銀座Railsの発表資料をUPしました。令和Devise事情の話です。Twitterアンケート回答いただい…

Git status をいろいろ見てみる

Git

Git の記事をたくさん書いたが、一番使うといっても過言でないくらいの git status を忘れていた。 ドキュメントによると、git status は、ワークツリーの状態を見るコマンド。現在のブランチも確認できる。 git-status - Show the working tree status Git …

開発ライブ実況#4 VSCode編 (メルカリ AI&Searchチーム AIエンジニア) に参加

8月26日にオンライン開催された 開発ライブ実況#4 VSCode編 (メルカリ AI&Searchチーム AIエンジニア) に参加した。YouTube Live でアーカイブあり。 TODOアプリのAPIサーバを作るという課題。 言語は Go で、Docker など自分には馴染みのないものもあったが…

「初めてのLT会 Vol.4」振り返り

8月22日、フィヨルドブートキャンプのLT会のオーガナイザーをやらせてもらった。アンケート結果がまとまったので、振り返りと今後に向けて。 LT会の概要はこちら。 masuyama13.hatenablog.com アンケート結果 アンケートはGoogleフォームで作成。今回初めて…

Git reset で HEAD位置を変えないとき

Git

git resetは、HEADを戻すコマンド。だが、インデックスの削除など HEAD を戻す以外の使い方もあり、混乱したのでまとめておく。 $ git reset <オプション> <コミット> コミットは、コミットのハッシュのほか、HEAD やブランチ名などで指定する。指定しなかっ…

Git インデックスと reset --soft / (--mixed) / --hard を理解する

Git

8月22日のオンラインLT会 で発表した git reset について。LTでは時間の関係上削除した部分もあるので、そこも含めて書いてみる。 speakerdeck.com git reset git resetは、HEADを戻すコマンド。コミットやインデックス、ワークツリーのデータを消すことがで…

「初めてのLT会 Vol.4」を開催

8月22日、フィヨルドブートキャンプで「初めてのLT会 Vol.4」をオンラインで開催。初めてオーガナイザーをやらせてもらった。 振り返り&反省はアンケート結果がまとまってからやるとして、今日はLT会の紹介などを。 「初めてのLT会」は、フィヨルドブートキ…

Git HEAD~ と HEAD^ の違い

Git

Git でコミットを指定するとき、HEADの一つ前ならHEAD^、二つ前ならHEAD^^のようにしていた。一方、Git の公式ドキュメントを見ていたら、HEAD~やHEAD~2が使われていた。 ただ書き方が違うだけで同じものだと前にどこかで読んだので特に気にしていなかったの…

Sendai.rb に参加

8月20日にオンライン開催された Sendai.rb #10 に参加した。参加者は7人。ツールは Google Meet と Slack。 Sendai.rb ではもくもく会をやっているそうだが、今月はミートアップの回ということで、2チームに分かれて AtCoder の問題をモブプロした。 A - Pay…

Ruby require と require_relative の違い

Gem やファイルを読み込むために使う require と require_relative。違いは以下の点だけかと思ったら、そこまで単純でもないらしい。 require はカレントディレクトリからのパス(絶対パス)で指定する require_relative は実行ファイルからのパス(相対パス…

Git checkout と switch / restore

Git

ブランチを切り替えるときに必ず使う git checkout。リセットっぽい機能もあったりしてちょっととっつきにくい。 そんなcheckout、いずれ使わなくなるかも?? 2019年8月(バージョン2.23)、checkout の機能を2つに分けた switch と restore が実験的なコマ…

truthy の意味を考えた

truthyという単語は英和辞書には載っていない。ネットで英英辞書もいくつか見てみたが載っていなかった。 trueっぽい、というような意味だと思ってはいたが、きちんと調べたことがなかったので調べてみた。 この言葉を知ったきっかけは、Minitest の refute …

Rails システムテストを書く(RSpec 不使用)

システムテストでは、ユーザーのブラウザ操作をテストする。Rails プロジェクトでは Capybara(カピバラ )という Gem によって、ブラウザ(ヘッドレスブラウザ指定可)で実行される。 Rails では RSpec というテスティングフレームワークが使われることが多…

VSCode タブ関係のカスタマイズ

この前下の記事を書いた。ついでにやってみたらよかった、タブに関する設定いろいろを紹介。 VSCode ターミナルやサイドバー移動もキーボードだけでできる - No Solution for Life 常に新しいタブで開くようにする VSCode でサイドバー(Explorer)のファイ…

Rails テストファイルの作成・実行

Rails では、rails generateコマンドでモデルなどを作成すると、テストのスケルトン(ひな形)も自動で作成される。 テストだけを作成する場合は、以下のコマンド。 テストのスケルトンを作成 # モデルテストを作成(userモデルの例) $ bin/rails g test_un…

Rails カラムのデフォルト値や not null 制約を変更する

既存のデータベーステーブルの特定のカラムについて、マイグレーションファイルを使って後からデフォルト値や not null 制約を設定する方法。 (共通手順) マイグレーションファイルを作り、 マイグレーションファイルを編集。 bin/rails db:migrate でデー…

Ruby 「true」と「真」、「false」と「偽」の違いを考える

これまで「true」と「真」、「false」と「偽」を特に区別せずに使うことが多かったが、たまにモヤモヤすることがあった。テストを書き始めてそこら辺が気になってきたので、この機会にはっきりさせてみることにした。 結論から言うとこういうこと(注:Ruby …

test-unit、Minitest、Rails の refute / assert_not エラーメッセージを比較

masuyama13.hatenablog.com 昨日上の記事を書いたが、今度は test-unit の refute のコードとエラーメッセージはどうなっているんだろうと気になって調べてみた。 test-unit で失敗するテストを書く blog.rb class Blog end blog_unit_test.rb require "test…

Rails refute と assert_not を使ってみる

前回、refuteとassert_notはエラーメッセージが違うことがわかった。 masuyama13.hatenablog.com assert_not_equalなどは Minitest のrefute_notなどのエイリアス(別名)なので、assert_not_equalを呼び出すとrefute_notが実行される。つまり動作としては全…

Rails assert_not が定義された経緯を調査

この記事の続き。 masuyama13.hatenablog.com 前回の疑問 assert_not_equalなどはエイリアスとして設定されてるっぽい。なんでassert_notはエイリアスじゃだめなんだろう。 コードを見比べる Minitest の refute def refute test, msg = nil msg ||= message…

Machida.rb #04 に参加(FizzBuzz コードレビュー)

8月7日にオンライン開催された Machida.rb #04 に参加した。Machida.rb は先月に続き2回目の参加。参加者は約10人、ツールは ZOOM と esa。今回はコードレビュー会。 自分はコードレビューしてもらう枠で申し込んでいなかったのだが、運よくコードレビュー枠…

Ruby refute と assert_not の違いを調査

Rails のテストと Minitest を学習していて、refute と assert_not は同じものなのか違うものなのか気になったので調べてみた。 アサーション アサーション(assertion)とは、オブジェクトや式を評価して、期待された結果が得られるかどうかをチェックする…

Ruby test-unit でテストを書いてみる(FizzBuzz)

FizzBuzz 問題を題材に TDD(テスト駆動開発)を学んだので、実際に動画の流れに沿って、Ruby でテストを書いてみた。 (動画はこちら:TDD Boot Camp 2020 Online #1 基調講演/ライブコーディング - YouTube) Ruby 標準のテスティングフレームワークである…

はじめて学ぶテスト駆動開発(TDD)

テスト駆動開発(Test-Driven Development)とは、テストファースト、つまり最初にテストを書いてからコードを書く開発手法。日本における TDD の第一人者、@t_wada さんのライブコーディングを見て勉強したのでまとめる。 TDD Boot Camp 2020 Online #1 基…

『採用・人事担当者のためのITエンジニアリングの基本がわかる本』を読んだ

1週間(8月9日まで)限定で無料公開されていたので読んでみた。 hrzine.jp 非エンジニア向けに書かれているので技術についての詳細な説明はないが、エンジニアに関する用語説明が豊富でざっくりとした業界の全体像をイメージすることができた。 まず、Web ア…

Sendagaya.rb #324 に参加

8月3日、オンラインで開催された Sendagaya.rb に参加した。2回目の参加だった。 参加者の自己紹介で出た Ruby や Rails 関係の話題について話した(といっても自分はまだ聞くだけで精一杯)。 テストについて RubyMine での RSpec のテスト作成方法の話から…

VSCode ターミナルやサイドバー移動もキーボードだけでできる

できるだけマウスを使わず、キーボードだけで操作したい、と願うのは私だけではないと思う。Vim プラグインは諦めたが、こういう方法もあるということでまとめておく。 デフォルトで使えるショートカットキー(Mac) キー 動作 control + 数字(タブの番号)…