また、タスクを完了した後、コードを忘れていますか?[閉まっている]


13

私は新しいプログラマーであり、上級プログラマー(実世界での経験があるプログラマー)に聞きたいです。

私は自分の仕事をし、コーディングした後、私のプロジェクトは完了しますが、正直に言って、コード、クラス、フレームワークの名前とそのプロパティを覚えていません。

時々私はこれを作ったのか自分自身を疑いますか?

これはすべてのプログラマーにとって普通ですか、それともコードとクラス/プロパティ名を思い出せない最も愚かなプログラマーですか?

編集:

多くのプログラマーがここで私を間違っていると思います。フレームワークの名前、クラスの名前、プロパティ名を忘れたと言いましたが、もう一度作業を始めると、自分のコードを思い出し始めます。私の質問は、構文やクラス/プロパティなどの名前を覚えていますか?

回答:


24

正直なところ、あなたが取り組んだコードを「忘れる」能力がなければ、どのようにして長期開発者になることができるのかわかりません。プロジェクトの量と結果のコードは、最終的に純粋な情報の過負荷につながります。

ただし、この状況は、クリーンで論理的な設計の裏付けとなると考えています。あなた自身のコードをサポートしなければならない時が来るでしょう。強力で論理的なコーディング規則を選択した場合、習熟時間は大幅に短縮されます。また、これにより、実際のメンテナンスの実行に必要な時間が理論的に短縮されます。


写真の記憶を持っている2人のコーダーに会いました。記憶能力が平均以下であるため、コードをきれいにして文書化するのに最善を尽くさざるを得ません。
ジョブ

3〜4種類のプラットフォームでプログラムできるコードを「忘れる」からこそ、あなたは正しいと思います。
-necixy

9

プロジェクトのすべての構文とAPIを記憶することは、そのプロジェクトに組み込まれた概念を覚えることほど重要ではありません。経験を積んだら、コードを読んで、これらの投稿を読むのと同じように意味を理解できます。

あなたが積極的に改善している場合、あなたが時間をかけて見つけるのは、古いコードを読むだけで過去に書いたものの欠陥を見るということです(これを行うことをお勧めします)。その実践を通じて、それがより簡単になります。他のスキルと同じです。

私はおそらく今までに100万行以上のコードを書いてきましたが、すべてを覚えることはできません。しかし、私はプロジェクトとそれらが解決しようとしていたもの(およびそれらを解決するためになった技術)を覚えています。


5

私はそれらを使い終わった後、多くのものを忘れますが、それらを異なって忘れます。

私は長年にわたって自分自身を見てきましたが、私たちの脳(わかりました、私の脳)は特定のキャッシュ戦略を採用しているという結論に達しました。

  • 新しい情報が学習され、使用され、有効期限切れのキューに入れられます。数週間で消えます。

  • 数か月前に学習した情報に繰り返しアクセスすると、何らかの方法でそれらが昇格され、数か月間記憶され、その後のみ有効期限が切れます。

  • 数年にわたって知識のブロックに繰り返しアクセスし、数か月間の使用のギャップにより、それらを何年も保持していた優先メモリに昇格させます。

PSコンピューターへのアプリケーションを使用したキャッシュの最初のアイデアは、人間が物事を学習し、記憶する方法を観察している誰かから来たのではないかと思います。ですから、私たちは何も発明していません。すでに組み込まれているものを取り入れました。


2

しばしば。コメントは過ぎ去りました」が、通常はコメントでコードを認識できることがわかります。

編集:私はトレンドに同意すると言っているわけではありません。それが今日のトレンドだと言っています。デイブが指摘するように、確かに限界点があります。ここには完全に素晴らしい議論があります:「コメントはコードの匂いです」。私は「コメントは、コードベースの外側の世界に関する情報を提供するためのものです(要件、ビジネスの変更など)」キャンプです。


コメントは過去のものですか?ただ真実ではない。
スティーブ

1
ああ、同意する。私は、コメントが必要でないと感じる傾向があるようだと言っています。メソッドの名前はあなたが必要とするすべてのコメントであるべきだと主張した人々にインタビューしました。明らかに、彼らはビジネス要件が半年ごとに変わらない神話的な場所で働いています。
マイケルブラックバーン

2
PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation()は記述的ですが、フローを破壊するため、読み取り不可能なコードにもなります。
デイブ・ワイズ

1
同意したx100。私が考えていたことと、慎重に言葉でコメントを付けて決定した理由を慎重に記録しなかった場合、数か月前に書いたコードを読みに戻ったときに何が起こっているのか全く分かりません。私は以前、コメントがノイズである、時代遅れである、または時代遅れであると言う建築宇宙飛行士にこの議論をしようとしましたが、誰も聞いたことはありません。私はソースコードにコメントを書かなければならないので、誰もが私が悪い開発者だと思っています。でも大丈夫です。それは私と私の後のみんなを助けます。
コーディグレー

@デイブ:私はあなたに同意しますが、あなたには2つの責任がある方法があります。あなたの苦行は、4つのHail Martinsと2つのGangOfFoursです。
マイケルブラックバーン

1

いくつかの使用後、一般的に覚えている構文。たとえば、ジェネリックまたはlinqを最初に使用し始めたとき、構文を正しく取得するのが困難でした。

IntelliSenseを使用すると、プロパティ名とメソッド名を覚えるのが非常に簡単になります。


1

私がテスターだったとき、会社の主任開発者はかつて、6か月前にコードが書かれたと言っていました。当時私は衝撃を受けました。私は理解している開発者になりました。コードの詳細は覚えていませんが、作業したことは知っていますが、詳細はありません。


0

ほとんどいつも。私の最も最近の(非常に小さな)プロジェクトは、自分の(錆びた)スキルのテストでした。手続き型コードを非常にシンプルなCスタイルで作成し、いくつかのデザインパターンを使用してJavaコードにリファクタリングし、可能であればすべてのメソッドを8行以内に維持しました。

私は約1か月間コードを書き留めました。私がそれに戻ったとき、私がそれを書いたことを認識するまでに1時間のように思えたものがかかりました。率直に言って、たとえコメント欄に自分の名前を入れていたとしても、それが私を納得させるかどうかはわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.