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


10

私は「パターンへのリファクタリング」という本を読んでいて、パターンをリファクタリングして使用する新しい方法を意図的に練習しなければスキルが上がらないので、どうしたらスキルを練習できるのかと考えていました。

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

回答:


6

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

要するに、あなたのデザインをテーブルに置いて、あなたがどれだけ優れているか悪いかを知っておいてください。それ以外の場合、あなたのスキルをベンチマークする方法はありません。


3

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

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

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

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


リワークは興味深いテーマの一種です。37signals.com/ reworkは、このテーマについてのまともな本です。
カーペリアム

1
ああ、もう1つコメントがあります。これは、他の人のパターンをたどるのと同じです。あなたのオフィスの人々をリソースとして使用してください。彼らが何かをリファクタリングする方法についての計画を持っている場合、彼らに彼らの思考プロセスを説明してもらい、彼らにあなたに教えるように強制します。あなたのオフィスがあなたの個人的な専門能力開発に焦点を合わせていない場合、問題があります。
カーペリアム

+1は、タスクが終了したときのメモです。
ペーテルTörök

1

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

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