web-dev-qa-db-ja.com

コード反復で前進する

プログラミングプロジェクトに取り組んでいるときがあり、プログラムの次の部分に進む準備ができているところまで来ています。しかし、この新機能を実装するために座っていると、ある意味で行き詰まります。機能を実装する方法がわからないということではなく、その機能を実装する方法を理解するのに行き詰まっているということです最良の方法。だから私は1日か2日座って、デザインに満足するまでアイデアを発酵させます。何かをうまく書けないのではないか、あるいは戻ってすべてをやり直さなければならないのではないかと心配になります。だから私はそれを延期しました。これが、私が多くの個人的なプロジェクトを実際に終えたことがない大きな理由です。他の誰かがこれを経験します、そしてあなたはどのようにあなたのプロジェクトであなたの自己を前進させ続けるのですか?

5
rcapote

私のアドバイスは、何かをするための最良の方法を考え出そうとして「行き詰まらない」ことです。早くやれよ!それは完全にひどいかもしれませんが、肝心なのはあなたがまだ何かをしたということです。経験に勝るものはありません...だから、それをして、あなたの過ちから学びましょう。

7
Pemdas

実際、それを間違った方法で書き、それから戻ってやり直さなければならないことは、良い学習経験になる可能性があります。私たちは一日中座って、機能を実装するための最良の方法について考えるですが、実際にコードを書いてそれがどのように機能するかを観察するほど有益ではありません。

だから、あなたの最初のアイデアに行き、それがどのように機能するかを見てください。何が正しく、何が間違っているかを学びます。次に、必要に応じて修正または書き直すことができます。経験があるので、2回目は簡単になります。

2
Bruce Alderman

これは私が抱えていたのと同じ問題です。それは人格障害です。私はSit down and do it哲学に同意しようとしています。リファクタリングが発生するため、困難です。しかし、何もできなかった(「考える」)と同時に、何かを成し遂げ、開発を前進させました。

これは通常、仕様が適切に記述されていない場合に発生します。私たちはシングル開発者なのでwe仕様を設定し、オプションが多すぎます。 1つを釘付けにして(最初のものが頭に浮かぶ)、それを使ってください。

私は何度も座ってオプション1を実装することを余儀なくされましたが、(実際にオプション1を使用してから)それが悪いオプションであることに気づきました。私はすべての変更を破棄して最初からやり直す必要がありました。しかし、それを実装しない限り、私が知る方法はありません(または、将来、どこでどのように問題が発生するかを推測できませんでした-厳密な仕様がないと非常に困難ですそして水晶玉です)。その間、私は何かをプログラムしましたが、結果が機能しないことを知っています。対その日を考えて何も達成しないで過ごします。

また、過労の場合は、解決策について「考える」ことと混同しないでください。プログラミングと開発サイクルから休む必要がある場合は、休憩してください。積極的な思考をしないでください。休憩を取る前に、ちょっとしたやること/「私が考えていたこと」を書いてください。数日以内にアラームを設定してバックアップを開始し、オプション1をプログラムします。リファクタリング。破棄します。オプション2。次へ。

1
David

機能が完了していることを確認するための受け入れテスト(BDD/TDD)を作成してから、可能な限り単純なソリューションを作成します。リファクタリングを行う場合は、受け入れを破っていないことを確認できます。

1
ssmithstone

誰かが言ったように、Just Do it-問題や課題がありますが、前進し続け、毎日非常に小さな機能を実装し、それが機能することを確認します。これにより、継続するための多くのモチベーションが得られます。

やる気と感動を維持するために、成功を収める必要があります。それが小さいかどうかは関係ありません。

これまで決してあきらめない。

0
Rachel

動作するシンプルでナイーブな実装を作成します。必要に応じてハードコードを作成します。コードをチェックインします。次に、リファクタリングしてより良いものにします。または、必要に応じて、リファクタリングの前にいくつかのテストを作成します。

0
Ed Niell

2つの戦略:1)プロジェクトの他の部分に取り組み、その間に1回「煮込み」を行います。 2)たとえそれが最適ではないかもしれないとしても、あなたが一緒に暮らすことができる何かを書きなさい。原則として前者の方が好きですが、少なくとも短期間は後者と一緒に暮らせると思うこともあります。多くの場合、特にユーザーが少し遊んだ後は、一般的な領域全体に十分な修正が必要であるため、私が考えていた一般的な方向性はまったく関係ありません。

0
Jerry Coffin

私がやります
完璧に見えるまでコードを書かないようにしています。ほぼすべての個人プロジェクト(十分に大きい場合)が無限の進化に運命づけられていることに気付いたので、アニメーションマネージャー、カスタムイベントサブシステム、いくつかのui、メディアを再生するためのラッパーなど、便利なクラスのライブラリの作成に集中することにしました。その瞬間から、新しい機能やプロジェクトなど、何かを実装する必要があるたびに、新しいコードを記述して新しいエンティティを作成することが、私の最愛のライブラリの進化とともにもたらされます。ちなみに、完璧だと思ったら共有します;)

0
www0z0k