とにかくほめる!マウントなしのLT会でLTをした
本日、以下の「とにかくほめる!マウントなしのLT会」という勉強会でLTをしてきました!
自分が発表した内容は以下です。
勉強会は会のタイトル通り、皆さんたくさん褒めてくれて暖かい雰囲気でした!
また参加したいです!
AAA (arrange, act, assert)について知った
Twitterを眺めていたら、AAA (arrange, act, assert) という、テストを書くにあたっての指針について知りました。
きっかけツイート:https://twitter.com/jnchito/status/1493781049767505920
- arrange は 準備という意味で、データの作成や条件の設定など
- act は 実行という意味で、検証したいメソッドの実行など
- assert は 検証という意味で、expect で期待する値となってるか確かめるなど
Rspec的には、
arrangeはletやbeforeに処理がまとまっているのが望ましく、
act、assertはitの中に処理がまとまっているのが望ましいようです。
このようにまとまっていると、どんな条件の時、何をすると、どんな結果が期待されるのか、ということが分かりやすいテストとなっているはず!
actに関しては、beforeにまとめて、itはassertだけにするという考えもあるようですが、私的にもactはitにまとまってる方がわかりやすいかな〜と感じました。
beforeはデータの作成や条件の設定に使うことが多いですし。
ここで、AAAという考え方を知る直前に自分が書いたUTをチェックしてみたところ、AAAに沿って書けておりました〜
ただ、もっと複雑なテストを書くときなどは、意識しないとAAAを守れていないことがあると思うので、テスト書く際は気をつけて行こうとおもいます(^_^)
参考にした記事
「iOSテスト全書」の輪読会に参加した
本日はiOSの社内勉強会に参加しました!
iOSの勉強会ですが、誰でも参加OKだったので、私も参加しました。
「iOSテスト全書」の輪読会を行なっており、今回は第二章の「ユニットテスト(概要)」の章を読んでいきました。
iOSのテストの本なので、もちろんコードの例はSwiftで書かれてますし、iOSの専門用語(?)も出てきますが、ユニットテストが大事な理由や、どのようにどんな点に気をつけてテストするべきかといった、抽象度の高い話もたくさん出てくる章だったため、とても楽しむことができたし勉強になりました。
輪読会だと分からないところを質問&解説してもらいながら読み進められるので、専門外や難易度の高い本に挑戦できるので良いなと思いました!
methds メソッド
本日ランチの時間に、会社のエンジニアメンバーと好きな Ruby (or Rails) のメソッドについてというテーマでおしゃべりをしました。
メソッドの末尾に?が使えることが良い、injectメソッドが良い、pメソッドが良いと言った意見が出ておりました!
私は好きなメソッドとして、面白くて便利なので methds メソッドをあげました。
ただ、ちゃんとmethds メソッドについて理解できているのか?と疑問に思ったので、これを機に確認しようと思いました〜
まずは、るりまを確認。
そのオブジェクトに対して呼び出せるメソッド名の一覧を返します。このメソッドは public メソッドおよび protected メソッドの名前を返します。
ただし特別に、引数が偽の時は Object#singleton_methods(false) と同じになっています。
↑と書かれている。
「引数が偽の時は Object#singleton_methods(false) と同じ」というのがよくわかっていない?_?
Object#singleton_methods についてもるりまを確認。
そのオブジェクトに対して定義されている特異メソッド名 (public あるいは protected メソッド) の一覧を返します。
inherited_too が真のときは継承した特異メソッドを含みます。継承した特異メソッドとは Object#extend によって追加された特異メソッドや、 self がクラスの場合はスーパークラスのクラスメソッド(Classのインスタンスの特異メソッド)などです。
singleton_methods(false) は、Object#methods(false) と同じです。
↑と書かれている。
つまり、Object#singleton_methods(false)の時は、継承した特異メソッドは含まないということのよう。
irbで動かして確認する。
irb(main):004:0> [].methods => [:to_h, :include?, :at, :fetch, :last, 略 :__send__]
irb(main):005:0> [].methods(false) => []
なるほど〜
2年以上ぶりに記事を書くよ
最後に記事を書いてから、2年以上が経ってしまってましたが、またちょびちょび書いていこうと思います💪
1/25(火)、銀座Railsに参加したのですが、そこでモチベがUpし、久々にブログ書きたいな〜という気持ちになりました。
コロナで勉強会がオンラインになってから、なんとなく勉強会に参加する頻度が下がり、参加しても懇親会に参加することはほぼなくなり、他社のエンジニアと会話する機会が殆どなくなっていたのですが、1/25(火)の銀座Railsでは勇気を出して懇親会に参加してみました。
懇親会は講演者ばかりでとても密度が濃く、とても楽しい時間で、勉強・外部発信・交流などの様々なモチベがとてもUpしました!
ブログ書くのが久々すぎて、何書けば良いのかよく分からなくなってしまってますが、できる範囲でやっていこうと思います💪
スカイダイビングしてきた
1月1日に前からやってみたかったスカイダイビングをしてきました!!
素人なので、後ろにプロのスカイダイバーさんについてもらって飛びました!
落ちるというより、下からすごい風圧を感じながら飛んでいるようでした。(千と千尋の神隠しのラストで千尋とハクが飛んでるシーンのイメージのままでしたw)
変な浮遊感や内蔵の気持ち悪さは全くなく、すごく快適でした!
パラシュートが開く前の落ちている時間が一番楽しかったです。
動画や写真はsdカードで貰ったのですが、sdカードを読み取るアダプター的なものをを持ってないことを思い出し、家用のWindowsを久し振りに使いました。
そこからGoogleDriveにあげて、やっと自分のスマホ&パソコンで確認することができました。
1月1日からやりたかったことを実行できたし、今年はいい年になりそうな気がします!
仕事面ではそろそろエンジニアになって丸1年になるので、しっかりしていきたいと思います!
3ヶ月の振り返り
今の職場に来て3ヶ月がたちました。
なので個人的な振り返りKPTをしようと思います!
K
- 楽しい
- 居心地よい
- とても手厚いサポート&フォローもらえる環境
- 最低限のSQL読み書き出来るようになった
- API開発ちょっとずつ慣れてきた
- エラーハンドリング考えられるようになった
- アプリレベルだけでなくDBレベルで制限かけることの大事さを知った
P
- 問題や既存の実装を完全に理解できていないまま実装開始してしまい手戻りが起きがち
- 既存の実装理解できてない箇所多い
- 何か問題あったらレビューで指摘もらえると心のどこかで甘えている気がする
- typo
- コンテキストの共有をせず話出してしまい、相手にわかりにくい話になっていることがある
T
- 問題は何なのか、解決方法は何があるのか、どうするのがベストなのか考えることの習慣化
- ユーザー、レビュアー、クライアント側の開発者、後々メンテする人それぞれの事を考えて実装する
- 実装箇所以外も関連する場所は理解するよう努める
- 人に何か質問したり伝えるときは、コンテキストを共有するようにする
- 基本情報の勉強進める
感想その他
パッと思い出せるKPTはそれぞれ上記の内容でした。
とりあえず直近はTryに書いた内容を実践していきたいと思います!
また、何か思い出したら追記していこうと思います!