マイペースなRailsおじさん

Ruby、Ruby on Rails、オブジェクト指向設計を主なテーマとして扱います。だんだん大きくなっていくRuby on Rails製プロダクトのメンテナンス性を損なわない方法を考えたり考えなかったりしている人のブログです。

2021-05-01から1ヶ月間の記事一覧

実践TDD 第一章

テスト駆動開発のポイントとは? システム開発は、作ろうとしているものへの理解を深めながら進行する システムとその用途を学ぶためには、作ってリリースしてフィードバックを得るのが良い 実装する前にテストをすることで設計する。何をさせたいかが明確に…

命名のコツ

クリーンコードのメモ。 良い名前付けのためのルール 意図を明確にする なぜそれが存在するか、何をするか、どのように利用するか、がわかる名前にする コードの外側にあるコンテキストがわかるようにする 偽情報を避ける 意図した意味とは違う用途で使われ…

テストとリファクタリングがよい設計を作る -創発的設計の考え方-

クリーンコードに「創発」という気になる名前の章があったので読んでみた。ざっくりいうと、とりあえず動くものを作ってから後から設計するという考え方で、私も最近はこういった感じで開発している。 創発的設計 よい設計を最初に考えるのではなく、コード…

rspecのrspecに学ぶ、ネストの深いrspecを書かない方法

ネストの深いrspec BDDは、下記のように書くので、GivenとWhenをcontextで書くとネストが深くなることがある。 Given:最初の文脈(前提)があって、 When:イベントが発生した場合、 then:なんらかのアウトプットを保証する。 例えば、fizz_buzz問題でfizz…

rspecの発端、BDDの考え方

BDDとは何か 振る舞い駆動開発。 ソフトウェアの振る舞い検証するテストをまず記述して、次にそのテストをパスするソフトウェアを記述するという開発の方法。 BDDとTDD TDDでは、何をテストして、何をテストしないべきか、という問題に当たることがある。 BD…

フラットなファイル構成のディレクトリでguardを使ってrspecを自動実行する

やりたいこと 下記のように、rubyソースコード、specファイル、Guardfileが全て一つのディレクトリにフラットに配置されている環境で、guardによる自動テスト実行を行いたい。 root_dir ├── Guardfile ├── gilded_rose.rb └── gilded_rose_spec.rb 設定方法 …

Proxyパターン

使いどころ オブジェクトに対する操作の間に何らかの操作を挟み込みたいとき 間に挟み込まれている処理に関する詳細を、対象のオブジェクトとそれを操作するオブジェクト隠蔽したいとき 構造 商品を表すItemを考える。ItemImplはItemそのものを表すクラスで…