qiita.comこんにちは、ydahです。2022で燗酒の美味しさに感動していたのですが、ふと気がついたら島根の日本酒がたくさん我が家にいました。気が付くと何故か我が家にいらっしゃった方々(不思議だ...)そして、また気がつくと枡や徳利、平盃も我が家にいらした(不思議ですね...)のでこれから寒くなるので、燗酒を飲んで温まっていこうと思います。はじめに本記事では私が所属しているANDPAD検査チームで取り組んだ以下のことについて紹介いたします。specの改善について長年、様々な人によって書かれてきていたテストコードであったので、より良く構造化された状態にするということも目的としていましたが、仕様を学び直すというのも目的としていました。テストコードの構造を見直していく過程で、どのような既存仕様が存在しているかをキャッチアップ出来ることも、これらの改善のモチベーションとなっていました。github.comシンプルに記述できる例を挙げると、describeメソッドを利用して記述した文章を元にHTTPリクエストを送ってくれるというものがあります。対してGETリクエストを発行してくれます。endend他にもリクエストヘッダやリクエストパラメータをシンプルに記述することができます。このGemは導入されていたのですが、既存のテストコードに反映するというところまではできていないという状態でした。そのため、rspec-request_describerを活用する方式に変更をしました。いう命名規則になっていました。これにより、様々な問題をはらんでいました。不必要に長くなってしまっており読みづらさがあった。アクションごとにdescribeが切られることになり、ネストが深くなりがちだった。各アクションで共通して必要となるデータの準備がファイルの先頭にずらっと並んでいた。それらを必要に応じて書きかえる方式になっており読みづらさとメンテナビリティが損なわれていた。とある機能を変更しただけで、テストの構造まで見直さないと意図したテストが出来ないようになってしまっていました。それと並行して読みづらさを改善するために以下を実施しました。RSpecが導入されていました。して違反が挙がらないように抑制されてしまっていました。これらの抑制の設定はファイル名を元に除外するようにしています。アクション毎の形式にファイル名を切り替えるタイミングで抑制の設定が外れることになります。抑制されていたルールが有効になり、違反が上がるようになるのでRuboCopの指摘に対処するようにしました。このcopを有効にするとlet!にしなくても良いものを検出してくれるようになります。分かるようになります。意識的な使い分けをすることができます。eq(1)end改善活動を継続する仕組みについて進めるにあたって考えたことは、継続して改善を出来る仕組みを整えるということでした。リファクタリングだけをするという訳には勿論いかず、日々のプロダクト開発をやっていく必要があります。そのため、改善を継続するための仕組みや方針を考えて推進するようにしました。チームとして進められるようにするANDPAD検査チームではスプリントの期間を1週間としたスクラムを導入しています。そこで、週に実施するタスクの内、20%は改善タスクをしようという取り決めをしています。気づいた時にリファクタリングしたいことをタスク化しておき、プロダクトバックログに積んでおくようにしています。スプリントプランニング時にスプリントのタスクとして取っていくようにしています。祝日が平日にいくつかある週など、スプリントを中止する週があると思います。その週には改善タスク消化デーとして、プロダクトバックログから短時間で解消可能な改善、リファクタリングタスクをやっていく日を作り改善を進めていっています。一つのタスクであれもこれもしないようにするリファクタリングタスクをしていると、あれもこれもしたくなってくることはよくあると思います。RSpecは柔軟かつ表現力豊富なテストを書く機能が備わっています。裏を返せば色んな表現ができるので、リファクタリングの途中であれもしたい。これもしたいというのが出てくると思います。リファクタリング中に新しく気づいた点は、前述のプロダクトバックログに違うタスクとして積んでいくようにしています。基本的にプロダクト開発を進める合間に進めるので、合間にサッと対応するのが難しくなるとなかなか手をつけにくいという状態になってしまいます。やることが増えていくと、隙間時間に気軽に始めるというのが難しくなってしまいます。やることを決めておき、やることリストは小さく保っておくのが良さそうに思っています。specのファイルについてこの記事で紹介している改善を完了することができました。やっていること自体は小さな改善に過ぎないかもしれませんが、継続してリファクタリングを進めるという小さな成功体験を元にして今後も改善活動を進めていきたいと思います。現在、アンドパッドでは一緒に働く仲間を大募集しています。ご興味を持たれた方はカジュアル面談や情報交換のご連絡をお待ちしております。2022に協賛します!会場周辺ランチ情報と注目セッションもまとめました!アンドパッドの栗山です。協賛...2022-08-25Rubyでrescueしたらグローバルなオブジェクトを破壊してたよって話こんにちは、ydahです。検索はてなブログをはじめよう!oct88さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。