web-dev-qa-db-ja.com

設計パターンとリファクタリングを意図的に練習するにはどうすればよいですか?

私は本 パターンへのリファクタリング を読んでいて、パターンをリファクタリングして使用するための新しい方法を意図的に練習しなければ、私のスキルは向上しないので、スキルを練習するチャンスを得る方法を考えていました。

しかし、事務処理では、各タスクをできるだけ早く完了する必要があります。ほとんどの場合、プロジェクトのデザインとアーキテクチャは私が管理しているのではなく、既存のコードと同様のスタイルに従うしかありません。悪いデザインのプロジェクトがあることもありますが、デザインスキルが私よりも優れている別の開発者もいて、彼はプロジェクト全体をリファクタリングする計画をすでに持っているので、私は彼の計画に従っているだけです。練習する機会を得るにはどうすればよいですか?

10
rwong

率直に言って、あなたはあなたの玄関口をノックして来る機会を待つことができません。スキルの習得に非常に傾倒している場合は、いわゆるより優れたスキルの開発者が持っているものに関係なく、デザインを取り入れることができればすばらしいでしょう。あなたのアイデアを投げて、私の既存の悪い設計に私のものがどのように役立つかについて素敵な会話をしてください。たぶん最初の数回の試みで失敗するかもしれませんが、あなたはたくさん学ぶでしょう、そして(あなたのいわゆるより熟練した開発者の同僚もあなたから学ぶことがあるでしょう)。

手短に言えば、あなたのデザインもテーブルに置いて、あなたがどれだけ良いか悪いかを知っていると、あなたのスキルをベンチマークする方法はありません。

6
V4Vendetta

練習、練習、練習。趣味のプロジェクトは間違いなく良い考えです。そして、もしあなたが学びたいのなら、誰かelse'sのオープンソースプロジェクトに取り組み、彼らが採用するパターンから学ぶことができる方がよい場合がよくあります。

coding dojoscode katas を調べることをお勧めします。この概念の背後にある全体的なアイデアは、明確に定義された管理可能な練習問題を練習することにより、独自のコードで問題が発生した場合によりよく対応できるようになるということです。 (ウェブサイトは私よりもこのことをよく説明しています。ぜひチェックしてください。)

サイドポイント:完全なパターンではない重要なことの1つは、テストに関しては適切な習慣です。

また、最後のコメント:事務作業では、各タスクをできるだけ早く完了する必要があります。作業が速すぎて多くのバグが発生する場合は、タスクを完了していません。後で戻る必要があるためです。これはやり直しです。物事を行うための適切な方法を学ぶために必要な時間をかけないと、短期的には自分のためにより多くの仕事を生み出し、長期的に改善するための適切なパターンを学ぶことができなくなります。適切なデザインパターンを実践することは、あなたにとってもあなたの雇用者にとっても価値があります。 (とはいえ、デザインパターンは、熱心に、または背景を理解せずにそれらを実践する人々によって乱用されたり悪用されたりすることがよくありますが、それは別のポイントです。)

3
carpeliam

次のオプションがあると思います。

  • 非稼働時間で練習することを検討してください-作業を続け、コードをVCSにコミットせずにコードのリファクタリングを試してください。意図的な練習を行うために、変更をコミットする必要はありません。それがあなたの第二の性質になるまで、あなたは手順を再現する必要があります。
  • コミュニケーションスキルを習得して、どのリファクタリングがより適切かを同僚と話し合うことを検討してください。 重要な会話 は、コミュニケーションの仕組みを理解するのに非常に役立ちます。
  • ペットプロジェクト-ペットプロジェクトを作成し、自分のスキルを練習します。それほど有用である必要はありません。あなたの目標はプログラミングスキルを練習することです。
  • オープンソースプロジェクトでサービスを提案することを検討してください-フィードバックを得ることができるため、これは意図的な練習よりも有利です
1
Alexey