17

私は新しい仕事を始めたばかりで、新しい上司が私に話したことの1つは、コードの寿命でした。

私は常に自分のコードを無限に拡張可能で適応性のあるものにするためにコーディングしてきました。誰かが将来私のコードを変更しようとしているなら、それは簡単にできるはずだと私は考えました。

しかし、それがどれだけ未来にあるべきかについて、私は本当に明確な考えを持っていませんでした。

それで、私の新しい上司は、3年以上先はコーディングを気にしないようにと私に言いました。彼の理由は、テクノロジーの変更、プログラムの期限切れなどでした。

最初はちょっとびっくりして、彼はやっかいな仕事だと思っていましたが、考えれば考えるほど、コンセプトに熱中します。

他の誰かがあなたがコーディングすべき未来について意見を持っていますか?

4

7 に答える 7

26

達成するのが難しい判断の1つは、拡張性がどれほどあるかということです。上司として、私が誰かに2時間のタスクを割り当て、3日後もまだ作業を続けていると、私は本当にイライラします。他の4つまたは5つのオブジェクトを変更して、それに対応します。インストールドキュメントが古くなり、デプロイスクリプトを変更する必要があり、テスターはすべての組み合わせと順列を1〜2日試して、コードが働いていても。しかし、他の誰かが2時間のタスクを与えられて、送信先の電子メールアドレスも含めてすべてをハードコーディングすることで、30分タスクに変えてしまい、チームの他のメンバーがいつ不満を言っているのかわからなくなったときも、私は本当にイライラします。

単純で厳格なルールがあれば、コードを最初にコンパイルした日は誰もが上級プログラマーになる可能性があります。それには経験と判断が必要であり、おそらくあなたが獲得する最も重要な判断です。そして、あなたはあなたがどのように良い判断を得るか知っていますか?経験。そして、あなたはあなたがどのように経験を積むか知っていますか?悪い判断。

于 2010-05-24T15:31:03.207 に答える
9

仕様に合わせてコーディングする必要があります。それ以上でもそれ以下でもありません。仕様で30年間の規定がある場合は、30年間コーディングします。仕様に3か月の規定がある場合、同じことが適用されます。

ただし、自分の正気のためにコーディングする必要があることも覚えておいてください。作成するすべてのコードは、次の3つのことを達成する必要があります。

  • 置き換え可能なコード-これは私の意見ではちょうど良い習慣です。コーディングで置き換え可能であるほど、より良いコードを生成できます。これは少し逆の状況を提供します-あなたがあなたのコードをより置き換え可能にするほど、あなたはあなた自身をより価値のあるものにします。

  • 生産性を高めるコード-再利用、再利用、再利用。

  • コードは適切に記述されている必要があります-これは説明する必要はありません。
于 2010-05-24T11:01:12.390 に答える
4

本当に長続きするプログラムが必要な場合は、日付が2038年を過ぎても処理できることを確認するために撮影してください(これが次の「Y2K」です)。

日付はさておき、今から10年後ではなく、今から1年後の正確なコーディング方法を教えてください。保守可能なコードを作成するか、作成しないかのどちらかです。変更が「期限切れ」になるまでの期間を正確に指定することはできません。

彼らの言語の次の標準はメソッドを非推奨にするだろうと主張する人もいるかもしれませんが、メソッドが非推奨になる場合、それは将来の日付Fooのためにコーディングするよりも実際にはコードの品質と保守性の問題です。

于 2010-05-24T11:01:16.223 に答える
1

私が何かをコーディングしているときはいつでも、私は自分自身に尋ねます...

必要ですか?あなたがそれを必要としないのなら、なぜあなたはそれをコーディングしているのですか?

不要なコードを追加しないようにするのに役立ちます。不要なコードは無駄です。他の活動から離れるには時間がかかります。これにより、コードのサイズと複雑さが増します。特にコードベースが認証プロセスを経る必要がある場合は、プロジェクトに$$$が追加されます。

于 2010-05-24T15:24:48.230 に答える
1

うまくコーディングし、次の成果物だけを見てください。適切に記述されたコードは、これを念頭に置いて記述されているかどうかに関係なく、無限にリファクタリング/拡張可能です。拡張可能であることを意図した不十分に記述されたコードは、実際にはめったにありません。

于 2010-05-24T11:00:01.360 に答える
1

アジャイルの方法論に従っている場合は、現在の問題をコーディングする必要があります。これは YAGNI (You Ain't Gonna Need It) の原則としても知られています。

アイデアは、角を曲がって何が来るかわからないので、それをコーディングしようとしても意味がないということです。

しかし、これは特に賢明なアプローチだとは思いません。

アジャイル環境にいる場合でも、コードで何回も繰り返し実行できるようにしたいという考えがあるため、それに合わせてコーディングする必要があります。

その「キラー」アプリを作成している場合、プログラムは期限切れになり、テクノロジは変更されますが、それは 3 年よりもずっと長く使用されます。

于 2010-05-24T11:02:18.447 に答える
0

コードを設計するときは、コードを拡張したり、新しい機能を要求したりする可能性のある方法を念頭に置いて、新しい機能を追加できるように十分にモジュール化するように努める必要があります。ある決定によって柔軟性や拡張性が向上し、別の決定によってより厳格になるポイントがある場合、柔軟性を高めるためのコストがほとんどまたはまったくない場合は、それを採用するのが理にかなっています。ただし、より柔軟なルートのコストが大きい場合は、そうしないでください。その機能が必要になること、およびコストが正当であることが確実にわかっている場合を除き、そのような機能を追加しようとして夢中になるべきではありません。そうした場合、ほとんどの場合、無駄に多くの費用を費やすことになります。

于 2010-05-24T11:09:15.643 に答える