2009-05-19 3 views
5

오늘 아침에 몇 가지 일반적으로 끔찍한 자바 스크립트 코드 작업을하는 동안, 나는 가로 질러 온 (여러 곳에서) 다음재능을 판단하는 중 - 한 사람은 여름을 삼켜도됩니까?

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

내가 직접 쓴 남자가 맞은 편에 앉아; 그는 7 년 동안 이곳 개발자였습니다. 나는, 다른 한편으로는 방금 시작했다, 꽤 중학교이고 잭을 알고 있다고 주장하지 않는다.

그럼에도 불구하고 소프트웨어를 개발 한 지 수년이 지난 후 간단한 논리의 왜곡에 대해 궁금해하고 있습니다.

제 질문은이 기사를 작성한 개발자 (3 주 전)의 전반적인 역량에 대한 다른 사람들의 견해와 비슷합니까? 아니면 전혀 반영하지 않습니까?

누구나 회선을 지적 해 주시겠습니까?

나 자신은 그러한 판단이 내게 이루어 지도록 끊임없이 두려워한다.

+0

errm moveAmount = 0-moveAmount; 나는 moveAmount가 각각의 경우에 양수라고 희망한다. –

+0

0은 필요하지 않습니다. – mysomic

+0

방어 코딩, P. 또한 나는 '누군가가 회선을 지적하겠습니까?' 틀리게. 그러므로 명백한 논평. –

답변

30

간단한 해결책 : 코드 줄을 보여주고 그가 왜 그랬는지 물어보십시오. 두 분 모두 뭔가를 배울 수있는 기회입니다. 어쩌면 브라우저에 버그가 있거나 다른 문제 (반올림이 떠오름)가있어 코드가이 부분없이 깨질 수 있습니다. 또는 그는 실수를 저질렀습니다. 어느 쪽이든, 묻는 것은 이것을 정리할 것입니다.

당신이 옳다고 생각하는 동안 다른 사람들이 당신이 보게되는 코드에서 당신을 판단 할 것입니다. 그것은 이 아닙니다. 그들은 단지입니다. (그렇다면, 당신은 틀린 곳에서 일하고 있습니다. 장소 - 당신이 여전히 제정신 인 동안 떠나십시오). 그들은 또한 당신이 정중하고, 호기심 있고, 도움이 될 때도 볼 것입니다.

이 내용은 작성한 코드보다 많습니다. 화를내는 동료보다 코드를 훨씬 쉽게 수정할 수 있습니다.

+1

동의. 나는 정중하게 "이봐,이 코드를 보았고 왜 이렇게했는지 궁금해했다."라고 정중히 말했습니다. –

+0

그가 얼굴을 붉히다가 다음 커밋에서 고쳐 주더라도, 미묘한 언급은 그것을 고쳐줍니다. 그리고 그는 duhs에 대한 오래된 코드 검사를 할 것입니다 –

+1

또 하나의 추천입니다. 당신은 그 일을하기위한 다소 수수한, 그러나 타당한 이유가 있었는지 결코 알 수 없습니다. – fenomas

3

잘 작동하므로 ap ****처럼 보일 것입니다. 그 코드를 싫어한다고 말하면 아마 그렇게 될 것입니다. :) 그리고 나서 그는 7 년 전 가장 먼저 자바 스크립트로 코드를 작성했을 것입니다. 한 줄의 코드만으로 사람을 심판하지 않고 썼다.

+0

분명히 지적하지 않겠습니다. – mysomic

+1

Aaron이 말했듯이이 코드가 이와 같이 작성된 이유는 더 이상 유효하지 않습니다. 아마 일부 먼 스크립트 언어에서는이 코드가 좋았을 것입니다. 당신이 묻지 않는 한 결코 알지 못할 것입니다. –

+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

그가 처음 시작할 때, 그는 패스를 얻는다 고 썼다면. 그가 최근에 저에게 쓴다면, 그는 나에게서 엄지 손가락을 얻는다. 개발자의 전반적인 역량은 의심의 여지가 있습니다.

다른 사람들은 개발자가 한 줄의 코드로 개발자를 판단 할 수는 없다고 말하는 사람들이 있지만 나는 자신의 능력에 의심의 여지가 있다고 말할 수 있습니다. 나는 결론을 내릴 것을 제안하는 것이 아니지만 그 유형의 코드는 확실하게 평범한 개발자의 증거 일뿐입니다.

... 과다하거나 스트레스를받는 것과 관련하여 ... 결론은 코드 품질이 중요하다는 것입니다. 그가 이렇게 한 줄짜리 글씨를 썼다면, 그다지 쉽게 눈에 띄지 않는 다른 글이있을 수 있습니까?

4

예를 들어 코드가 좋지는 않지만 좋지 않지만 (어쨌든 작동 할 수있는 상황이 있고 일부 코드에서는 그런 말조차 할 수없는 상황이 있습니다). 나는 당신이 정말로 묻는 질문이 있다고 생각한다 : 개발자가 그 한 줄을 기준으로하여 무능력하다고 여겨 질 수 있다는 것을 의미하는 코드 라인이 너무 많다?

아니요. 나는 아기처럼 끔찍한 침상이었던 두 명의 자녀를두고있다. 독감에 걸렸습니다. 나는 20 시간 연속으로 일하는 죽음의 행진 모드에서 일하고있다. 이런 상황에서는 누구나 끔찍한 코드를 작성할 수 있습니다. (이런 이유로 이러한 상황을 피해야합니다.)

허락하시면 나중에 무서운 코드를 찾아 내고 수정 해주기를 바랍니다.

1

그는 3 주 전에이 책을 썼기 때문에이 줄에 대한 비판을 받아야한다고 말했습니다. 그것은 전문적으로 일하는 7 년 후에 정말 용서 할 수없는 미성숙을 보여줍니다.

적어도 이런 짓을 그가했을 경우

moveAmount -= moveAmount * 2; 

그는 덜 플랙을 얻었을 것입니다. 적어도 다른 운영자를 알고 있으며 일을 더 쉽게 읽을 수 있도록 노력하고 있습니다.

나는 항상 한 줄로 사람들을 판단 할 수 있다고 생각하지 않지만 코드는 한 줄로 사람에 관해 많이 말할 수있는 사람의 적성에 관해 당신에게 너무 많이 말할 수 있다고 생각합니다.

+3

귀하의 버전이 읽기 쉽습니다. –

+0

OP의 코더가 - =을 사용하지 않은 이유를 말할 수는 없지만, 나는 최근에 그런 종류의 연산자뿐만 아니라 증분 및 감소를 멀리 한 이유를 말할 수 있습니다. 직장에서 현재 3을 사용하고 있습니다. 언어 - 2 나는 완전히 새로운데 (그리고 제 3 회는 조금만 사용했습니다) - 네 번째로 솔질을하고 있습니다. 나는 집 프로젝트를 위해 몇 가지 다른 것들을 사용한다. 어떤 것은 ++ & -, some + =, 등등을 허용하며, 둘 중 하나는 허용하지 않습니다. 나는 적어도 지금은 포기했다. 어떤 언어가 어떤 언어를 허용 하는지를 바로 잡으려고 노력한다. x = x + 1 그래서 나는 =, + = 등을 사용하지 않는 것을 쉽게 볼 수있다. – PTBNL

2

판단의 두려움과 관련하여 긴장을 풀어 라. 사실, 우리는 모두 어떤 시점에서 누군가에 의해 심판을받을 것입니다. 그것은 뾰족한 머리카락인지 사기스러운 어린 시선인지에 달려 있습니다. 그립에 도달하는 주된 일은 그러한 모든 만남에서 유용한 것을 얻는 방법입니다.

분명히, 그것을 위해 사람들이있을 것입니다. 그러나 배울 점이있는 비슷한 상황이 많이있을 것입니다.

동료와 대화를 시작하기위한 제안은 훌륭합니다. 그 중 하나 또는 둘 모두가 중요한 것을 배울 수있는 그러한 만남에 직접적으로 영향을 줄 수 있습니다.

1

제비에 달려 있다고합니다. 고립되어 있다면, 여러분이 보여준 코드 줄은 매우 유능한 프로그래머라도 기대했던 것입니다. 그것은 아주 영리하지 않은 무언가의보기이고 피곤한 사람들은 그렇게 영리하지 않습니다. 반면에, 그런 종류의 코드가 자주 나타나면 아마 당신은 꼬인 마음을 가진 사람과 일하고있을 것입니다.

나쁜 프로그래머의 분명한 징후는 나쁜 습관과 관련이 있습니다. 좋은 프로그래머는 거대한 방법을 만들지 않을 것입니다. 피곤하더라도, 그들은 느슨하게 결합 된 그들의 유형을 유지하려고합니다. 접근 자나 속성을 통해 공개 필드를 노출하는 대신 공개 필드를 노출시키지 않습니다. 반복적으로 복사 붙여 넣기를하는 대신 코드 재사용의 형태로 상속 및 집계를 시도합니다 ... 목록은 길다. 그것은 나를 거의 즉시 그것이 여름이라고 느끼게하는 제비의 종류 다. :-)

관련 문제