9

私は非個人的なプロジェクトに取り組んでいるので、メンテナンスプログラマーは私ではないと言っても過言ではありません。そうでなければ、この質問をする必要はありません。

ここで、コードを意図的に読みにくくするのではなく、状況に適している(入力するコードが少ない)ために、コードで試してみたい構造(デリゲート、ラムダ式)がいくつかあります。私は言語に慣れていないので、それらの使用も練習します。

しかし、私たちの多くはac#のバックグラウンドを持っていなかったため、メンテナンスプログラマーがすべての構成を知っているかどうかはわかりません。また、彼が私と同じようにプログラミングに熱心であるのか、それとも通常のように扱っているのかはわかりません。日中の仕事。だから私の質問は:

    • 保守性を向上させるために、特定のプログラミング構造を回避する必要がありますか?

    • 上記の質問に対する答えが「はい」の場合、使用を避けるべき構成のサブセットはありますか?

    • 言語を完全に学ぶのはメンテナンスプログラマーの責任ですか?

4

4 に答える 4

17

私は最小公分母のコーディングに反対しています。私たちは専門家です。私たちに期待されるべきことの一部は、私たちが知らないことを学ぶことです。

一方で、私は栄光のコーディングにも反対です。仕事を成し遂げることができる最も単純な構造を使用してください-デバッグコードはそれを書くことの2倍難しいので、あなたはあなたができる限り賢いコードだけを書くほうがよいです!

于 2010-08-01T10:02:17.863 に答える
2

一般的な経験則は、特に単純ではないことをしている場所では、コードがたくさんのコメントで読めるようにすることだと思います。

デリゲートやラムダ式などの特定の構造を回避することは、適切かつ賢明に使用された場合、コードの複雑さを大幅に軽減し、コードをより簡潔で表現力豊かにする方法ではありません。結局のところ、それがLINQの美しさですよね。;-)

他のプログラマーがあなたのコードを理解するために必要なすべての知識を持っているかどうかにかかわらず、あなたは仕事の自分の部分をできる限りうまくやることに集中すべきだと思います。その保守プログラマーが去り、他の誰かが入った場合、それではどうしますか?メンテナンスプログラマーに合わせてコードを調整するのではなく、解決する必要のある問題に合わせてコードを調整する必要があります。

于 2010-08-01T10:05:01.640 に答える
1

自分のプロジェクトで書いている場合でも、使用している言語に関係なく、一般的/標準的なイディオムに可能な限り固執する価値があると思います。

私は自分でこの罠に遭遇しました。「賢い」何かをするコードを書き、それを十分に文書化せず、数か月後にコードを変更するために戻ってきたときに重大なバグを導入しました。

私の親指のルール-人間的に可能な限り「コア言語」を使用し、これから逸脱するときは、アプローチを徹底的に文書化します。本当に標準的なイディオム(C#のプロパティなど)でない限り、構文糖衣を利用してコードを短くすることは避けてください。読みやすさは、毎回タイピング速度よりも優れている必要があります。

メンテナンスコーダーがあなたの仕事を引き継ぐことを期待しているなら、これはすべて二重に真実です。ほとんどの組織では、メンテナンスコーダーが複数のパラダイムに習熟しているとは期待できません。したがって、たとえばオブジェクト指向コードでラムダのような論理/関数型プログラミング構造を使い始めると、英語の本でドイツ語の章を書くのと少し似ています。読者が多言語愛好家であることを望むかもしれませんが、そうではない可能性が高いです。

于 2010-08-01T10:12:33.887 に答える
1

I believe especially lambda-expressions make the code easier to read if anything. Instead of having multiple for-each's with lots of conditionals - a clean lambda can almost be read.

From my experience things that make code hard to read is clever generic Func arguments... These often only take out tw0+ easy to read functions and replace it with a generic hard-to-read one.

So, it is more important in my book to have methods with good names than avoiding certain constructs. But don't worry about them not knowing them - they should learn them anyhow.

于 2010-08-01T10:14:51.577 に答える