未知の書籍と出会うきっかけとして、色んな本の引用を閲覧・紹介することができます!
ぜひ、色んな引用をクリックして、お気に入りの本を見つけてみましょう📚🔍
インスタンスを初期化するために実行したい処理があれば、このinitializeメソッドでその処理を実装します(とくに必要がなければ定義しなくてもかまいません)。ほかのプログラミング言語の経験者であれば、コンストラクタのようなものと考えるとわかりやすいと思います。
リファクタリングの際に注意すべきこと はじめにすべきことは、既存のコードベースと、そのコードに対して書かれたテストコードの洗い直しです。具体的に、現状での良い点、悪い点、強み、弱みを1つずつ確認していきます。これは、良い点、強みを残しながら、悪い点、弱みを克服することにつながります。既存のシステムに手を加えれば、必ず元より良い物になるはずと考えがちですが、実は何も良くならないこともあるし、もとより悪くなることもあり得るのです。
読みにくいコードがあれば、そこで行われているタスクをすべて列挙する。そこには別の関数(やクラス)に分割できるタスクがあるだろう。それ以外は、関数の論理的な「段落」になる。タスクをどのように分割するかよりも、分割するということが大変なのだ。
ベロシティを予測する理想的な方法は、実際に1回、イテレーションを実施してしまうことだ(1回に限らず、2回でも3回でも構わないが)。そして、実施したイテレーションのベロシティをもとに、今後のベロシティを見積もるのだ。ベロシティを知る最もよい方法は実際に測ることなのだから、まずはこの方法を採用すべきである。
「開発準備OK」ステージは、基本的に「このステージには、エピックからの分割と見積りが行われており、要求の内容が明確になった機能が集まっているが、どの順番で開発を行うかまではまだ決定していない」という意味を持っている。
少しずつインクリメンタルにコーディングすること。そうすれば、開発が進むにつれてコードが洗練され、構造化されていくことに気づくだろう。インクリメンタルにコードを書いて、テストする。この継続的なフィードバックが、コードが過剰に複雑になったり、散らかり放題になることを防いでくれる。
スタートアップのプロダクト開発ではひたすらイテレーションを重ねる。プロダクトを一度だけ構築して勝利を宣言するのではなく、計測、分析、テストの結果から得られた知見をプロダクトに何度も何度もフィードバックする。
このように、オブジェクトのクラスが何であろうとそのメソッドが呼び出せればよしとするプログラミングスタイルのことを「ダックタイピング(duck typing)」と呼びます。これは「もしもそれがアヒルのように歩き、アヒルのように鳴くなら、それはアヒルである」という言葉に由来するプログラミング用語です。
Rubyはオブジェクト指向言語です。文字列や配列はもちろん、数値やnil(ほかのプログラミング言語でいうところのnull)も含めて、すべてがオブジェクトになっています。その証拠に数値やnil、trueやfalseに対してもメソッドを呼び出すことができます。
インセプションデッキの背後にある考えはこうだ。「しかるべき人をみんな同じ部屋に集めて、プロジェクトにまつわる適切な質問をすれば、自分たちのプロジェクトに対する期待を共有して、認識を合わせることができるはずだ。」と。
もし不具合などありましたら、お気軽にIssueやPull Requestをくださると嬉しいです✨
© 2023 lef237