2009-05-19 2 views
5

今朝、いくつかの一般的に恐ろしいJavascriptコードに取り組ん一方で、私が出会った(複数の場所で)次裁決能力 - 1人は夏を飲みますか?

// make moveAmount negative 
moveAmount = moveAmount - (moveAmount * 2); 

私はこれを直接書いた男の向かいに座ります。彼は7年間ここの開発者だった。私は、一方で、ちょうど始めた、かなりジュニアであり、ジャックを知っていると主張していない。

それでも、ソフトウェアを開発して何年もの間、単純なロジックの人のひどさについて疑問に思っています。

私の質問は、これを書いた開発者(3週間前)の全体的な競争力を、他の人が見ているかもしれません。

誰でも畳み込みを指摘しますか?

私は自分自身で、このような判断を下すことを常に恐れています。

+0

errm moveAmount = 0-moveAmount;私はmoveAmountがそれぞれの場合に正の数であることを願っています。 –

+0

ゼロは必要ありません – mysomic

+0

防御コーディング; P。また、私は '誰でも畳み込みを指摘するだろうか?'間違っています。したがって明らかなコメントです。 –

答えて

30

単純な解決策:コード行を表示し、なぜ彼がそれをしたのか尋ねる。両方の人が何かを学ぶ機会です。多分、ブラウザにバグがあったり、何か他の問題がありました(丸めが心に浮かぶ)ので、コードはこれがなくても壊れるかもしれません。または彼は間違いを犯した。いずれにしても、これをクリアするかどうか尋ねると、

あなたが正しいと思っている間に、他の人があなたから見たコードからあなたを判断しますが、これはではありません。彼らが考慮するのはだけです。もしそうなら、あなたは間違った場所 - あなたがまだ正気である間に残しなさい)。彼らはまたあなたが礼儀正しく、好奇心が強い、助けているときにも見えます。

これらのことは、あなたが書くコードよりも重要です。怒っている同僚よりもはるかに簡単にコードを修正できます。

+1

合意。私はちょうど丁寧に言っただろうねえねえ、私はこのコード行を見て、あなたがなぜこのようにしたのか疑問に思っていた。 –

+0

もし彼が白くして次のコミットで修正されたとしても、微妙な言及は修正され、duhsの古いコードチェックを経るかもしれない。 –

+1

もう一つの親指。あなたは、それを行うためのいくつかの不可解だが正当な理由があったかどうかは決して分からない。 – fenomas

3

これはうまくいきますので、あなたはあなたがそのコードを嫌っていると言ってくれたら、おそらくap ****のように見えます:)そして、彼は7年前に初めてのJavaScript書いているが、ただ一つのコードから誰かを真剣に判断することはない。

+0

私は間違いなくそれを指摘しないでしょう – mysomic

+1

アーロンが言うように、なぜこのコードがこのように書かれたのか、もはや有効ではない何らかの理由があるかもしれません。恐らく遠く離れたスクリプト言語では、このコードは良いものでした。あなたが決して知らないと頼まない限り。 –

+0

私はそれを指摘したいと思います。あなたは、あなたの同僚にそれを持っていて、一緒に仕事をして、あなたの両方を改善することを誓っています。 – mquander

1

開発者についての一例を見つけて一般化するのは魅力的ですが、この種のナンセンスの実績がない限り、私はそれを孤立したインシデントと見なします。彼は書いていない理由は、単に彼に尋ねる:

moveAmount = moveAmount * (-1) 
+3

....またはmoveAmount = -moveAmount – mysomic

+0

見つけた //本当にDave(または誰でも)? moveAmount = moveAmount *(moveAmount * 2); も同じように迷惑になる可能性があります。 –

1

この動作はmoveAmountが十分(のような2^32-1大きかった場合は2 * moveAmountがオーバーフローを引き起こす可能性が場合に mountAmount = -moveAmount異なっています例えば)。

私はそれが彼の意図だったかどうかわかりません。

1

彼が最初に始まったときに、彼はパスを取得すると書いています。もし彼が最近それを書いたら、彼は私から親指を落とす。開発者の全体的な能力は間違いなく疑わしいです。

他にも、開発者を1行のコードで判断することはできないと言われていますが、彼の能力に疑いを抱かせることができます。私はあなたが結論に飛びつくことを示唆しているわけではありませんが、その種のコードは間違いなく最高の平凡な開発者の証です。

...そして、それは過度のストレスや何かに関係しています。結論はコードの品質が重要です。もし彼がこのようなライナーを書いたら、他に何が書かれているのでしょうか?

4

あなたの例は、コードが悪いかもしれませんが、悪化しています(結局のところ、動作する状況がありますが、一部のコードではそのことを言うことさえできません)。私はあなたが本当に求めている質問は、開発者がその1行に基づいて無能であるとみなすことができるという意味で、ひどいコード行がありますか?

私は言いません。私は赤ちゃんのようなひどい寝たきりの子どもが2人います。私はインフルエンザで働くようになった。私は20時間働いていた死の行進のモードで働いていました。このような状況では誰もが恐ろしいコード行を書くことができます。 (このような状況は避けなければならない理由です)

私は恐ろしいコードを後で見つけて修正したいと思っています。

1

彼は3週間前にそれを書いて以来、私は彼がこの行に対する批判に開放されるべきだと言います。それは専門的な仕事の7年後に本当に使えない未熟さを示しています。

彼は少なくとも、この行われていた場合は、次の

moveAmount -= moveAmount * 2; 

を彼はあまりフラックを得ているでしょう。少なくとも、彼は他の演算子を認識していて、物事をより読みやすくするために努力していることを示しています。

あなたは常に1行の人を判断できるとは思いませんが、1行で人について多くのことを伝えることができる人の適性についてコードではあなたにはそれほどのことが分かります。

+3

あなたのバージョンは明らかに読みにくいです。 –

+0

私はOPのコーダーが - =を使わなかった理由は言うことができませんが、なぜ最近私はそのような演算子から離れて増分&減分するのかと言うことができます:私は現在3言語 - 2私は全く新しいです(そして、私は少ししか使いませんでした) - そして4番目に磨き上げています。私は自宅のプロジェクトのためにいくつかの他のものを使用します。いくつかは++と - 、いくつかの+ =など、どちらも許しています。私はあきらめました - 少なくとも今のところ - どの言語がどの演算子を許しているかを保つために努力してください: x = x + 1 こうして私は - =、+ =などを使わないことを容易に見て取ることができます。 – PTBNL

2

判断の恐れに関しては、リラックスしてください。それは、誰かが何らかのポイントで裁かれることになります。それは、尖った髪の毛のボスか醜い小さな起業家かどうかです。グリップを得るための主なことは、このような出会いから役に立つものを得る方法です。

明らかに、それのために物事を掴んでいる人がいるでしょうが、学習すべきことがある多くの同様の状況もあります。

あなたの同僚との対話を開始するための上記の提案は優れています。それはあなたのどちらかまたは両方が重要な何かを学ぶかもしれないそのような出会いに直接的に繋がるかもしれません。

1

私はそれが嚥下に依存すると言います。孤立していると、表示されたコード行は、非常に有能なプログラマーであっても、疲れたプログラマーから期待されるものです。それはまったく賢くないものの例であり、疲れた人々はそれほど巧妙なものではありません。一方で、その種のコードが頻繁に出現したら、おそらくあなたは心をひねった人と働いているでしょう。

悪いプログラマーの明白な兆候は、悪い習慣に関連しています。良いプログラマは巨大な方法を作っていません。疲れていても、彼らはそのタイプを疎結合に保つよう努めます。彼らは、アクセサーやプロパティを介してパブリックフィールドを公開するのではなく、パブリックフィールドを公開しないようにします。繰り返しコピーするのではなく、コードの再利用の形として継承と集約を試みます...リストは長いです。それらは私がほとんど瞬時に夏であると感じるように導く嚥下の種類です。 :-)

関連する問題