다른 사람에게 잘못된 코드를 작성하고 있다고 어떻게 말합니까? [닫은]


217

나는 재미를 위해 코딩 프로젝트에서 작은 그룹의 사람들과 협력하고 있습니다. 조직적이고 상당히 응집력있는 그룹입니다. 내가 함께 일하는 사람들은 프로그래밍과 관련된 다양한 기술을 가지고 있지만, 일부는 과도한 전역 변수, 불충분 한 명명 규칙 및 기타 것들과 같이 오래되거나 완전히 잘못된 방법을 사용합니다. 작동하지만 구현은 좋지 않습니다. 그들의 경험이나 교육에 의문을 제기하지 않고 더 나은 방법론을 사용하도록 정중하게 요청하거나 소개하는 좋은 방법은 무엇입니까?


맥스, 너야? 걱정하지 마십시오. 항상 사용하는 TF2 엔지니어 아이콘으로 알려줄 수 있습니다. 내 코드가 엉터리라고 말하는가? ... ... ... ... 5 분 동안 일을 마치고 할 일이 없을 때까지하는 말.
Powerlord

나는 특정 사건을 골라 내려고 노력하지도 않고 내 코드가 완벽하고 훌륭하다고 말하려고 노력하지도 않고, 이것이 까다로운 주제라고 생각하기 때문에이 문제에 대한 두 번째 의견에 매우 관심이 있습니다.
Maximillian

14
나는 당신이 그들의 화면을 한눈에 볼 때마다 낄낄 거린다 고 생각합니다 ...
Steven A. Lowe

57
각 커밋을 롤백하는 옵션이 있습니까? "우리가 이런 일이 결코 일어나지 않은 척하는 것이 최선이라고 생각합니다"옵션입니까?
Draemon

1
스택 오버플로를 읽으면 훌륭한 프로그래머입니다. :-)
Matthew Farwell

답변:


188

그들이하고있는 일이 잘못되었다는 것을 깨닫게하는 질문을한다. 예를 들어 다음과 같은 질문을하십시오.

왜 이것을 전역 변수로하기로 결정 했습니까?

왜 그 이름을 주었습니까?

그 흥미 롭군요. [이유가 더 좋은 이유를 삽입하십시오]

그런 식으로 작동합니까? 나는 보통 [당신이 어리석게 보이게 만드는 방법을 삽입하십시오]

나는 이것에 대한 이상적인 방법은 왜 그들이 특정 방식으로 코딩하는지 미묘하게 묻는 것이라고 생각합니다. 다른 방법에는 이점이 있다고 생각할 수도 있습니다. 코딩 스타일의 이유가 잘못된 정보로 인한 것이라는 것을 알지 못하면 타당한 이유없이 내 길을 더 나은 것으로 판단하지 않을 것입니다. 이 문제를 해결하는 가장 좋은 방법은 그들이 왜 그렇게 선택했는지 물어 보는 것입니다. 그것이 그들의 능력이 아니라 공격해야하기 때문에 그들의 추론에 관심을 갖도록하십시오.

코딩 표준은 확실히 도움이 될 것입니다. 그러나 모든 소프트웨어 프로젝트에 대한 해답이라면 천국의 개인 섬에서 칵테일을 마시고 있습니다. 실제로, 우리 모두는 문제가 발생하기 쉽고 소프트웨어 프로젝트는 여전히 낮은 성공률을 가지고 있습니다. 문제는 컨벤션 문제가 아닌 개인의 능력에서 비롯된 것이라고 생각합니다. 따라서 문제가 추악한 머리를 키울 때 그룹으로 문제를 해결하는 것이 좋습니다.

가장 중요한 것은, 자신의 방식이 더 좋다고 즉시 가정하지 마십시오 . 실제로는 그렇습니다. 그러나 우리는 다른 사람의 의견을 다루고 있으며 그들에게는 단 하나의 해결책이 있습니다. 그들이 당신을 잘난 척하는 사람으로보고 싶지 않다면 당신의 길이 더 좋은 방법이라고 말하지 마십시오.


이것은 좋은 기술이며 전문적인 환경에서 가장 적합한 기술 일 것입니다. 동료가 실제로 이와 같은 질문을 실제로 고려하지 않고 답답하거나 답답하지 않은 경우 코드 표준이나 다른 "권한"을 무시할 가능성이 높습니다.
Greg D

1
나는 동의하지만 내 그립은 대부분 민감한 프로그래머를 다루는 것입니다. 누군가에게 그들의 코드가 잘못되었다고 직접 말하면 당연히 그들은 행복하지 않을 것입니다. 어리석은 일이지만 문제를 해결하고 배우는 것은 아마도 모든 사람에게 최상의 결과를 제공 할 것입니다.
Mike B

24
"왜 그 이름을 지어 주 셨나요?" 가깝지만 옳지 않습니다. 그것은 즉시 내 결정에 대해 방어 적으로 생각하게합니다. "흥미 롭습니다. [이유가 더 좋은 이유를 삽입하십시오.]"때문에 내가 이미 결정한 것 이외의 다른 방법에 대해 생각하게되므로 훨씬 더 좋습니다 . 후자의 톤으로, 나는 빛을 볼 가능성이 훨씬 더 높습니다.
Bill the Lizard 18

1
어떤면에서 그들은 방어 적으로 생각해야합니다. 내가 그들에게 일을하는 방법을 보여 주면 그들은 그들이 알고있는 방법을 고수하기로 결정할 수 있습니다. 타협은 좋을 것이며, 방법을 말한 다음 왜 방법이 더 빠르거나 더 나은지 미묘하게 추가합니다.
Mike B

그리고 "일관되게 대답하기 위해서는 많은 노력이 필요하기 때문에"(종종 기존 코드의 양이 많기 때문에) 또는 "우리는 항상 이런 식으로 해왔고 제대로 작동했기 때문에" "?
Dimitri C.

85

코드 검토 또는 페어 프로그래밍을 시작하십시오.

팀이 그러한 목표를 달성하지 못하면 매주 설계 검토를 시도하십시오. 매주 한 시간 동안 만나 코드 조각에 대해 이야기하십시오. 사람들이 방어적인 것처럼 보이면 적어도 처음에는 더 이상 감정적으로 애착이없는 오래된 코드를 선택하십시오.

@JesperE :가 말했듯이 코더가 아닌 코드에 중점을 둡니다.

당신이 생각하는 것이 다르다고 생각하지만 다른 사람들은 그것을 똑같이 보지 못한다면, 그것을 지적하는 대신 결함으로 이어지는 질문을 시작하십시오. 예를 들면 다음과 같습니다.

Globals :이 중 하나 이상을 원한다고 생각하십니까? 우리가 이것에 대한 접근을 통제하고 싶다고 생각하십니까?

Mutable state : 다른 스레드에서 이것을 조작하고 싶습니까?

또한 사람들이 휴식을 취할 수 있도록 한계 에 집중하는 것이 도움이됩니다 . 예를 들면 다음과 같습니다.

긴 기능 : 내 뇌는이 모든 것을 한 번에 수용 할만큼 크지 않습니다. 처리 할 수있는 작은 조각을 어떻게 만들 수 있습니까?

나쁜 이름 : 명확한 코드를 읽을 때 쉽게 혼란스러워합니다. 이름이 오해의 소지가 있으면 저에게는 희망이 없습니다.

궁극적으로 목표는 팀에게 더 나은 코딩 방법을 가르치는 것이 아닙니다. 팀에서 학습 문화를 확립하는 것입니다. 더 나은 프로그래머가되기 위해 각 사람이 다른 사람을 찾는 곳.


두 번째-팀의 모든 사람이 코드 피어를 검토하는 경우. 당신이 나쁜 습관을 가지고 있다고 생각하는 사람들은 희생을 느끼지 않을 것입니다
NotJarvis

2
동료들이 그런 일에 잘 반응한다면 내 동료보다 친절합니다. 그런 의견을 풀려고 할 때 일반적으로 그 사실을 다루도록 지시받습니다. 또는 자신의 방식이 유일한 방법에 대해 여러 페이지 독백으로 처리되었을 수도 있습니다. .Net이 문자열 대 정수 구문 분석, dangit에 내장되어 있지만.
Greg D

@ 그렉 : 아야. 당신이 거기에 도착 힘든 군중!
Jay Bazuzi

3
나쁜 이름과 관련됨 : Stroop effect에 대해 읽으십시오. 단어가 아닌 색을 읽으십시오. 이제 변수 이름을 지정하는 방법에 대해 생각해보십시오. 실제로 사용되는 변수를 설명하는 좋은 이름을 찾지 못하면 나중에 다시 코드를 읽을 때 코드를 읽고 이해하기가 어렵습니다.
Igor Popov

lol @ "정서적으로 코드에 첨부되었습니다." 팀에 이러한 문제가있는 경우 다른 팀과 협력 할 시간입니다.
dtc

45

코드 표준의 아이디어를 소개합니다. 코드 표준에서 가장 중요한 것은 코드베이스의 일관성에 대한 아이디어를 제안하는 것입니다 ( 이상적으로 는 모든 사람이 한 사람이 작성한 것처럼 보일 것임).


1
과연. 코드 검토에서 우리가 가진 것은 코드가 표준과 일치하지 않으면 검토자가 읽기를 중지하고 코드가 준수 될 때까지 코드로 돌아 오지 않는다는 것입니다.

1
그것을 시행하는 더 좋고 간단한 방법 중 하나입니다.
Scott Dorman

나는 그것이 문제의 본질에 달려 있다고 생각합니다. 코딩 표준이 있더라도 여러 가지 방법으로 작업을 수행 할 수 있으며 결함 중 일부는 시행 표준과 분리 될 수 있습니다.
Mike B

2
@Scott Durman : "모든 코드가 한 사람이 작성한 것처럼 보일 것입니다."... LOL !!! ;-)
Galwegian

5
@Galwegian : 먼저 내 성명을 사용하려면 적어도 철자를 정확하게 입력하십시오. :) 왜 그 말이 재미 있습니까? 내가 말했듯이, 그것은 코드 표준의 이상입니다. 나는 그것이 완전히 달성 가능하다고 말한 적이 없지만, 토드 작업에 대한 명확하고 명확한 목표를 제공합니다.
Scott Dorman

23

왜 길이 더 좋은지 설명해야합니다 .

잘라 내기 및 붙여 넣기보다 기능이 더 나은 이유를 설명하십시오.

배열이 $ foo1, $ foo2, $ foo3보다 나은 이유를 설명하십시오.

전역 변수가 위험한 이유를 설명하고 지역 변수로 인해 삶이 ​​더 쉬워 질 것이라고 설명하십시오.

단순히 코딩 표준을 사용하지 않고 "do do"라고 말하는 것은 프로그래머에게 그것이 왜 좋은지 설명하지 않기 때문에 가치가 없습니다.


1
나는 이것이 가능한 모든 계명 (프로그래밍 관련 명령뿐만 아니라)에만 적용된다고 생각합니다.
Dimitri C.

"밖으로 채찍질 표준 코딩 및 가치가 '이렇게'말 ' - 첫째, 표준 문서를 코딩 작성된 좋은 모든 지점 그것이 거의이다, 심지어 근거하지 않고, 둘째, 수에 대한 근거가 포함되어야 쓸모 가 여전히로 사용할 수 있습니다 - 팀이 합의한 경우 참조 코드를 따르지 않는 코드가 발견되면 "그러나 나는이 방식이 마음에 듭니다."
Johann Gerell

14

먼저 너무 빨리 판단하지 않도록주의해야합니다. 그럴만한 이유가있을 때 (예 : 이상한 규칙으로 레거시 코드로 작업) 일부 코드를 잘못된 것으로 쉽게 해제 할 수 있습니다. 그러나 그들이 실제로 나쁘다는 순간을 가정합시다.

팀의 입력에 따라 코딩 표준을 설정하도록 제안 할 수 있습니다. 그러나 좋은 코드가 무엇인지에 대한 비전을 강요하는 것이 아니라 그들의 의견을 고려해야합니다.

또 다른 옵션은 기술 서적을 사무실로 가져 와서 (Code Complete, Effective C ++, Pragmatic Programmer ...) 다른 사람에게 빌려주도록 제안하는 것입니다 ( "안녕하세요. )


12

가능하다면 자신이 아니라 자신의 코드를 비판하고 있음을 이해하도록하십시오 .


10

대립하지 않는 방식으로 더 나은 대안을 제안하십시오.

"이봐, 나도 이런 식으로 작동 할 것 같아. 너희들은 어떻게 생각하니?" [화면에서 ​​더 나은 코드를 만드는 제스처]


10

코드를 검토하고 코드를 검토 하십시오 .

코드 대신 자신의 코드를 검토하여 프로세스를 시작하기 때문에 전체 코드 검토 프로세스를 통해 사람들을 편하게 해줄 것입니다. 코드로 시작하면 작업 수행 방법에 대한 좋은 예가 제공됩니다.


8

그들은 당신의 스타일도 악취가 있다고 생각할 수도 있습니다. 일관된 코딩 스타일 가이드 라인을 논의하기 위해 팀을 구성하십시오. 무언가에 동의하십시오. 그것이 스타일에 맞는지 여부는 문제가되지 않으며, 일관성이있는 한 어떤 스타일이든 설정하는 것이 중요합니다.


아, 이것은 사실입니다! "왜 낮은 수준의 C 루틴을 사용하여 문자열 할당 (메모리 할당 / 할당 해제 및 0 종료자를 수동으로 추가 포함)을 수행 할 수 있는가? 실제로, 그 프로그래머들은 종종 프로그래밍 스타일을 사용하여 이상하지만 사실 인 대규모 프로젝트를 성공적으로 완료했습니다.
Dimitri C.

7

예를 들어. 그들에게 올바른 길을 보여주십시오.

천천히 해. 박쥐에서 바로 모든 작은 실수에 대해 그들을 찌르지 말고, 정말로 중요한 것부터 시작하십시오.


7

코드 표준 아이디어는 좋은 아이디어입니다.

그러나 아마도 당신이 친구 인 사람들과의 재미를 위해서라면 아무 말도 하지 마십시오 . 그냥 코드입니다 ...


1
나는이 프로젝트가 '작동하면 작동한다'는 점에서이 점이 마음에 들지만, 문제를 처리하는 적절한 방법을 찾는 것이 초기 본능보다 훨씬 많은 도움이 될 것 같은 느낌을받습니다. 이건 잘못이야. '
Maximillian

7
"그냥 코드 야"? 그것은 당신의 노력, 전문적인 얼굴, 회사 또는 인류에 대한 기여의 산물 일뿐입니다. 그것이 좋거나 나쁘면 누가 신경 쓰나요? 나는 당신의 동료들이이 주제를 열렬히 읽고 당신의 "그냥 코드"가 쓰레기라고 말하는 방법을 알아 내려고 노력할 것입니다.

4
그냥 코드입니까? Helloooo 유지 관리 악몽.
MetalMikester

6

Gerry Weinberg의 저서 "컴퓨터 프로그래밍의 심리학"에는 정말 좋은 조언이 있습니다. "자아없는 프로그래밍"에 대한 그의 모든 개념은 사람들이 자신의 코드에 대한 비판을 자신에 대한 비판과 구별되는 방식으로 받아들이도록 돕는 방법에 관한 것입니다.


5

잘못된 명명 방법 : 항상 변명 할 수 없습니다.

그리고 네, 항상 당신의 방식이 더 좋다고 가정하지 마십시오 ... 어려울 수 있지만 객관성이 유지되어야합니다.

나는 끔찍한 함수의 이름을 가진 코더에 대한 경험이 있었고 코드는 읽을 수없는 것보다 나빴습니다. 함수는 그들이 한 일에 대해 거짓말을했고 코드는 무의미했습니다. 그리고 다른 사람이 코드를 변경하도록 보호 / 보호했습니다. 매우 정중하게 맞닥 뜨렸을 때, 그들은 그 이름이 잘못되었다는 것을 인정했지만, 코드의 소유권을 유지하고 싶었다. 이것은 과거의 일이지만, 오류가 확인 된 다음 보호되는 상황을 어떻게 처리합니까? 이것은 오랫동안 계속되었고 나는 그 장벽을 극복하는 방법을 전혀 몰랐다.

전역 변수 : 나는 스스로 전역 변수를 좋아하지는 않지만 많은 훌륭한 프로그래머를 알고 있습니다. 명확하고 디버깅하기 쉽기 때문에 많은 상황에서 실제로 그렇게 나쁘지는 않다고 믿게되었습니다. (나를 화염 / 감소시키지 말아라.) 올바른 패턴을 꼼꼼하게 사용한 코드를 읽거나 유지 보수 / 수정할 수 없습니다. 어쩌면이 IS 장소는 글로벌 변수 (아마도 축소 불구하고)? 증거를 바탕으로 내 입장을 재고하는 것을 고려하고 있습니다.


5

일부 위키 소프트웨어를 사용하여 네트워크에서 위키를 시작하십시오.

사이트에서 "모범 사례"또는 "코딩 표준"또는 그와 같은 범주를 시작하십시오.

모두에게 지적하십시오. 피드백을 허용하십시오.

소프트웨어 릴리스를 수행 할 때 코드를 빌드에 넣는 담당자에게 개발자가 해당 페이지를 가리키는 위키 페이지를 가리 키도록하십시오.

조직에서이 작업을 수행했으며 사람들이 실제로 Wiki를 사용하는 데 몇 달이 걸렸지 만 이제는이 필수 불가결 한 리소스입니다.


4

코딩 표준이 느슨하거나이를 가리킬 수 있거나 올바른 형식이 아니기 때문에 코드를 따를 수 없음을 나타내는 경우 가치가 있습니다.

코딩 형식이없는 경우 이제 적절한 형식을 갖추십시오. 이 질문에 대한 답변과 같은 것이 도움이 될 수 있습니다 : /programming/4121/team-coding-styles


4

나는 항상 '이것이 내가 할 것이다'라는 행을 사용합니다. 나는 그들을 강의하고 강의하지 않으며 코드가 쓰레기라고 말하지만 분명히 조금 더 깔끔한 것을 보여줄 수있는 대안 적 관점을 제시합니다.


3

해당 담당자 (들)가 작성한 대표 모듈에 대한 코드로 그룹의 나머지 사람들에게 프리젠 테이션을 준비하게하고 Q & A가이를 처리하게하십시오 (나, 의지, 좋은 그룹이라면, 못 생겨서는 안됩니다).


3

나는 코드를 좋아하고, 정보학과 관련된 모든 것에 대해 내가 전혀 나쁜 일을 시작하고 예제에서 배우기 시작한 적이 없었지만, "Gang Of Four" 책을 읽은 후 항상 기억하고 기억하는 것은 :

"모두가 기계에 의해 이해되는 코드를 작성할 수 있지만 모든 사람이 이해할 수있는 코드를 작성할 수있는 것은 아닙니다"

이것을 염두에두고 코드에서 수행해야 할 것이 많이 있습니다.)


나도 그 사실을 알았습니다. 좋은 독서 :하지 말아야 할 것, 1 부 Joel Spolsky joelonsoftware.com/articles/fog0000000069.html 그는 다음과 같이 말합니다. "코드를 작성하는 것보다 코드를 읽는 것이 어렵다."
mjn

3

나는 인내심을 충분히 강조 할 수 없습니다. 나는 누군가가 지금 변화가 일어나기를 원했기 때문에이 종류의 정확한 것을 완전히 역효과를 보았습니다. 상당수의 환경에서는 혁명이 아니라 진화의 이점이 필요합니다. 그리고 오늘 변화를 강요함으로써 모든 사람에게 매우 불행한 환경을 만들 수 있습니다.

바이 인이 핵심입니다. 그리고 접근 방식은 현재 환경을 고려해야합니다.

"개별"이 많은 환경에있는 것 같습니다. 그래서 ... 나는 일련의 코딩 표준을 제안하지 않을 것입니다. 이 "재미있는"프로젝트를 가져와이를 고도로 구조화 된 작업 프로젝트로 바꾸고 자 할 것입니다. 대신 다른 사람이 말했듯이 어느 정도 다루어야합니다.

인내심을 갖고 다른 사람들을 당신의 지시에 따라 교육하도록 노력하십시오. 가장자리 (코드가 다른 사람들과 상호 작용하는 지점)로 시작하고 코드와 상호 작용할 때 코드를 만든 인터페이스를 토론하고 변경 된 경우 인터페이스에 문제가 없는지 묻습니다. 당신 또는 그들). 그리고 왜 변경을 원하는지 충분히 설명하십시오 ( "서브 시스템 속성 변경을보다 잘 처리하는 데 도움이 될 것입니다"). 잘못 고른 것으로 보이는 모든 것을 변경하려고 시도하지 마십시오. 일단 가장자리에서 다른 사람들과 상호 작용하면 코드의 핵심에서 어떻게 혜택을 얻을 수 있는지 알아보기 시작해야합니다 (충분한 추진력을 얻으면 현대 기술과 코딩 표준의 이점에 대해 더 깊이 논의하고 시작하십시오). 그래도 표시되지 않으면 ... 아마도

인내. 혁명이 아니라 진화.

행운을 빕니다.


3

나는 토가를 입어 민주적 인 방법으로 캔을 엽니 다.

문답법 고전 그리스 철학자 소크라테스의 이름을 따서 명명은 질문자가 합리적 사고와 켜 집 아이디어를 자극하는, 다른 사람의 위치의 의미를 탐구하는 철학적 탐구의 한 형태이다. 이 변증법은 종종 한 견해의 방어가 다른 견해에 맞서 싸우는 반대 토론을 포함한다. 한 참가자는 다른 참가자를 자기 자신과 모순되게하여 지망생의 입장을 강화할 수 있습니다.


소크라테스 방법의 문제점은 아무도 그것에 대한 인내심이 없으며 따라갈 의지가 없다는 것입니다.
Patrick Szalapski

2

대부분의 IDE가 선택한 스타일로 코드를 다시 포맷하므로 요즘에는 관련이없는 코드 형식과 관련이 있습니다. 실제로 중요한 것은 코드가 작동하는 방식이며 포스터는 전역 변수, 코드 복사 및 붙여 넣기 및 내 애완 동물 피킹, 명명 규칙을 볼 수 있습니다. 잘못된 코드와 같은 것이 있으며 형식과 관련이 거의 없습니다.

좋은 부분은 대부분 좋은 이유 때문에 나쁘다는 것입니다. 이러한 이유는 일반적으로 수량화하고 설명 할 수 있습니다. 따라서 대립하지 않는 방식으로 이유를 설명하십시오. 대부분의 경우 문제가 분명 해지는 작가 시나리오를 제공 할 수도 있습니다.


2

나는 프로젝트의 수석 개발자가 아니므로 코딩 표준을 강요 할 수는 없지만 나쁜 코드는 일반적으로 나중에보다 빨리 문제를 일으키는 것으로 나타났습니다. 그렇지 않으면 더 깨끗한 아이디어 나 솔루션이 있습니다.

당시에는 개입하지 않고보다 자연스러운 접근 방식을 취함으로써 리드와 더 많은 신뢰를 얻었으며 종종 아이디어를 구하고 프로젝트에 사용되는 건축 설계 및 배포 전략에 대해 설명합니다.


2

잘못된 코드를 작성하는 사람들은 단지 무지의 증상 일뿐입니다 (멍청한 것과는 다릅니다). 그 사람들을 다루기위한 몇 가지 팁이 있습니다.

  • 사람들 자신의 경험은 당신이 말할 것보다 더 강한 인상을 남깁니다.
  • 어떤 사람들은 그들이 생성 한 코드에 대해 열정적이지 않으며 당신이하는 말을 듣지 않을 것입니다
  • Paired Programming은 아이디어를 공유하는 데 도움이되지만 운전중인 사람을 전환하거나 전화로 이메일을 확인하는 사람을 전환합니다.
  • 너무 많이 익사하지 마십시오. 연속 통합조차도 일부 오래된 개발자에게 몇 번 설명해야한다는 것을 알았습니다.
  • 다시 흥분하게하고 배우고 싶을 것입니다. 하루 동안 로봇을 프로그래밍하는 것만 큼 간단 할 수 있습니다.
  • 빌드 시간에이를 확인하는 코딩 표준 및 도구는 종종 읽거나 성 가시지 않습니다.
  • 코드 소유권 제거, 일부 프로젝트에서는 사람들이 내 코드라고 말하면서 코드 사일로 또는 개미 언덕을 볼 수 있으며 변경할 수 없습니다. 매우 나쁘고 쌍을 이루는 프로그래밍을 사용하여이를 제거 할 수 있습니다.

1
나는 고의적 인 무지가 바보로 묘사 될 수 있다고 생각합니까? 기꺼이 배우지 않는 것과 같습니다.
Adam Naylor

이것의 예는 부분 물리학 자이지만 여자 친구를 사 can 수없는 남자입니다. 그는 분명히 똑똑한 사람이지만 여성에 대해서는 무지합니다.
Scott Cowan

2

코드를 작성하는 대신 코드를 유지 관리하도록합니다.

그들이 찜질 한 스파게티 더미를 유지해야 할 때까지, 그들은 코딩이 얼마나 나쁜지 이해하지 못할 것입니다.


더 나은 방법 : 다른 개발자의 코드를 유지하도록 요청하십시오. 이것은 또한 그들 사이의 의사 소통을 향상시키는 데 도움이 될 수 있습니다.
mjn

그것은 훨씬 덜 적대적이다 :-)
JDrago

2

아무도 자신의 일이 짜증 난다는 말을 듣기를 좋아하지 않지만 건전한 사람은 멘토링과 불필요한 일을 피하는 방법을 환영 할 것입니다.

한 학교에서는 실수를 지적하지 말고 올바른 일에 집중해야한다고 말합니다. 예를 들어, 이해하기 어려운 코드를 나쁜 것으로 지적하는 대신, 코드가 특히 읽기 쉬운 위치를 지적해야합니다. 첫 번째 경우, 당신은 엉터리 프로그래머처럼 생각하고 행동하기 위해 다른 사람들을 프라이밍하고 있습니다. 후자의 경우 숙련 된 전문가처럼 생각하기 위해 준비하고 있습니다.


2

나는 내가 일하는 사람들과 비슷한 상식을 가지고있다. 그들은 나만큼 코딩에 노출되지는 않지만 여전히 코딩에 유용하다.

내가 원하는 것을하고 다시 돌아가서 모든 것을 편집하게하는 것보다는. 나는 보통 그것들을 앉아서 두 가지 일을하는 방법을 보여줍니다. 우리의 길과 나의 길, 이것으로부터 우리는 각 방법의 장단점을 논의하고, 따라서 우리가 프로그래밍에 대해 어떻게 가야하는지에 대한 더 나은 이해와 더 나은 결론에 도달합니다.

여기 정말 놀라운 부분이 있습니다. 때때로 그들은 심지어 대답조차하지 못하는 질문을 내놓을 것이며, 연구 후에 우리 모두 방법론과 구조에 대한 더 나은 개념을 얻습니다.

  1. 논의하다.
  2. 이유를 보여주세요
  3. 당신이 항상 옳다고 생각하지 마십시오. 때때로 그들은 심지어 당신에게 새로운 것을 가르쳐 줄 것입니다.

내가 너라면 내가 뭘 할까 : D



1

솔직히 누군가의 코드가 변경, 디버그, 탐색, 이해, 구성, 테스트 및 게시 (허우)가 더 쉬울 때 더 좋다고 생각합니다.

그것은 누군가에게 코드가 무엇인지 설명하지 않고 자신의 코드가 나쁘다고 말하는 것이 불가능하다고 생각합니다.

그래야만 그들의 마음이 snap 아지고 누구나 그것을 볼 수 있습니다.

  • 전역 변수 값 변경은 거의 항상 추적 할 수 없습니다
  • 거대한 기능은 읽고 이해하기 어렵습니다
  • 패턴은 규칙을 지키기 만하면 코드를 쉽게 향상시킬 수 있습니다.
  • (등 ...)

아마도 페어 프로그래밍 세션이 트릭을 수행해야 할 것입니다. 코딩 표준을 적용하는 데 도움이되지만 좋은 코드를 정의하는 데 너무 멀습니다.


1

좋은 스타일인지 나쁜 스타일인지에 대한 주관적인 의견으로 기각되는 것이 아니라 잘못된 코드 의 영향 에 집중하고 싶을 것 입니다.


1

어떤 "나쁜"코드 세그먼트에 대해 개인적으로 문의하십시오 (실제로 어떤 경향이 있더라도 ) 실제로 합리적인 코드이거나 가능성이있는 상황이있을 수 있습니다. 여전히 코드가 잘못되었다고 확신하고 소스가 실제로이 사람이라는 것을 확신한다면 그냥 가십시오. 몇 가지 일 중 하나가 발생할 수 있습니다. 1) 사람이주의를 기울이고 수정 조치를 취합니다. 2) 사람이 아무 것도하지 않습니다 (분명하지 않거나 귀하만큼 관심이 없습니다).

# 2가 발생하거나 # 1이 귀하의 관점에서 충분히 개선되지 않고 프로젝트에 피해를 입히거나 귀하에게 충분한 영향을 미치는 경우, 표준을 수립 / 시행하기위한 캠페인을 시작해야 할 때가 있습니다. 팀. 이를 위해서는 경영진이 필요하지만 풀뿌리에서 시작될 때 가장 효과적입니다.

좋은 결과 내길 바랄 게. 나는 당신의 동생을 느낍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.