10

私は忙しいんだ!私の時間のほとんどは、分析手法の使用またはコースの作業に費やされており、プログラミング モードに切り替えると、コードをすばやく生成する必要があります。というのは、私が所属している研究室の主任研究員は、私が TDD を使用していようと、そろばんを使用していようと、結果が早く得られる限り気にしません。

「TDD by example」を読みましたが、非常に役に立ちました。その後、「リファクタリング: 既存のコードの設計を改善する」、「設計パターン: 再利用可能なオブジェクト指向ソフトウェアの要素」、および「レガシー コードを効果的に使用する」を購入しましたが、これらの本は分厚く、今すぐに飛び込むことは困難です。 !

「TDD by example」の会話スタイルと流れは、私のスケジュールに簡単に組み込むことができました。しかし、これらの他の本でどのように作業するか、どの順序で作業するかはわかりません。それぞれが同じように関連しているようです (私は一種のダイニング哲学者のデッドロックに陥っています.プログラミングツールキットの各側面が改善されるのを待っていますが、それらの相互依存性により、行き詰まっているか、コンテキスト切り替えの時間が失われています.アナロジー:))。たとえば、リファクタリングしてテストでカバーする必要があるレガシー コードがある、TDD を使用して推進する必要がある (しかし、決してそうしない)、設計パターンでコーディングする必要があるため、車輪の再発明をやめる。

これらの必要な読み取りをバイトサイズのチャンクに分割する良い方法と、その技術を現在のプロジェクトに適用する方法はありますか (個人的には、すぐに適用できない場合は情報を失います)? 1冊の本に集中してそれを完成させますか? 最初にTDDが必要で、次にリファクタリングとデザインパターンのスキルが必要ですか?

初心者向けの最高のチュートリアルを読みましたが、これを忙しいスケジュールに統合する方法が説明されていません. そして、私は科学的な環境でプログラミングを読んでいますが、すでに時間に遅れている場合にこれらの手法をどのように追加するかという点を見逃しています.

4

3 に答える 3

2

私はリファクタリングの本から始めて(レガシーコードに圧倒されているとおっしゃっていたので)、一度に1時間ずつ読んでみます。次にプログラミングするときは、読んだ内容を適用する方法を探してください。

時間を空けているように感じたら、他の本を見てください。また、スキルを向上させるために、CodeCompleteという本をお勧めします。

于 2009-07-24T17:18:43.257 に答える
2

あなたがしていることの説明を考えると、私は最初にその仮定に疑問を投げかけることから始めます. あなたのプログラムの複雑さについては何も知りませんが、あなたのコーディングが厳密に計算を生成することだけで構成されていて、それが一種の「スクリプトレベル」である場合、つまり、コードの特定の部分については、それを簡単に破棄して破棄することができます。 keep it として書き直すと、これらのテクニックの多くはやり過ぎです。私は、TDD (おそらく、統合テストで結合するようなペアダウン バージョン) は常に価値があると思いますが、それ以上の価値があるとは限りません。

ただし、実際にソフトウェア システムを設計している場合 (データベース モデル、入力画面、結果の配布など、すべてがそうでなくても、少なくともあなたが行っていることのいくつかは資格があるかもしれません) であれば、これらの本を十分に読んでください。初心者にとって常に正しく実行できなくても心配する必要はありません。毎週測定可能な進歩を遂げていることを確認してください。

ところで、デザイン パターンは、同様の問題に対処する方法について読むのに役立ちますが、他の何かの代わりに「それらを使用して設計する」ことはしないでください。あなたのデザインはそれ自体ではうまくいかないかもしれませんが、パターンは実際のデザインから得られるものであり、その逆ではありません。そのため、あなたが行っていることよりも多くのオブジェクト指向ソリューションを確実に見ることができますが、あなたが行っていることが設計パターンに適合するかどうかは心配する必要はありません。あなたがやっていることは、それ自体が保守可能な優れた設計であることを確認してください。そうすれば、そこからパターンが流れます。

于 2009-07-24T16:53:07.927 に答える
1

すべてを一度に行うことはできません (ご存知のとおり)。時間を節約するテクニックもあり、TDD とリファクタリングはそのリストの上位にあります。特に TDD の場合は、いつ行うか、行うかどうか、スケジュールにどのように合わせるかについて心配する必要はありません。早くやれよ。始めるのが早ければ早いほど、時間の節約になります。そのスキルを手に入れたら、レガシ コードのタスクに取り組むときに、それを保護するためにテストを作成します (いいえ、それは TDD ではありませんが、TDD で磨いたテスト作成スキルが適用されます)。変更が必要なモジュールを十分にカバーできたら、自由にリファクタリングして、頻繁にテストを実行できます。あなたが言及した本のうち、あなたが説明した状況で、次に読むことをお勧めするのはマイケル・フェザーズです

ただし、当面はすべてを TDD にします。想像していたよりも早く時間を節約でき、その時間をより多くのより良い技術を学ぶことに費やすことができます.

于 2009-07-24T16:55:04.553 に答える