1 인칭 의견이 산만하고 비전문가입니까?


63

방금 작성한 일부 (archaic Visual Basic 6.0) 코드에서 다음 주석을 작성하는 것을 발견했습니다.

If WindowState <> 1 Then
    'The form's not minimized, so we can resize it safely
    '...
End if

내가 왜 내 의견에 "우리"를 무의식적으로 사용하는지 잘 모르겠습니다. 누군가가 코드를 실제로 실행하는 것을 보는 것이 아니라 실제로 각 행의 모든 ​​명령을 "실행"하는 것처럼 코드를 단계별로 실행한다고 상상하기 때문입니다. 이 사고 방식으로, 나는 I can resize it현재 그것을 "하고있는"사람이기 때문에, 또는 you can resize it내가 미래에 그것을 "누르고있는"사람에게 말하고있는 것처럼 사용할 수 있었지만,이 두 경우 모두 가장 가능성이 높기 때문에 내 코드를 통해 다른 사람을 이끌고있는 것처럼 "우리"를 사용합니다.

나는 단순히 그것을 재 작성 it can be resized하고 문제를 피할 수는 있지만 호기심을 불러 일으켰다.


1
downvote에 대한 의견? 이것은 나의 첫 번째 Programmers.SE 질문이며, 여전히 좋은 P.SE 질문과 좋은 SO 질문을 만드는 것이 무엇인지 정확히 파악하려고 노력하고 있습니다.
dlras2

2
나는 당신을 공감하지 않았지만 제목 질문에 대한 대답이 짧고, 수다스럽고, 뒷받침되지 않은 의견에 지나치게 주어질 수 있기 때문에 제목 질문을 좋아하지 않았다고 생각할 수 있습니다. 마지막 질문과 비슷하다고 말하면 도움이 될 수 있습니다.
DKnight

56
나는 '우리'를 좋아한다. 건강하고 민속적인 방식으로 친절하고 포용 적입니다.
Jeremy

25
전 제 3의 사람으로 작업하는 모든 버그 수정에 대해 언급하기 시작할 것 같습니다. 사무실 주변에서 저를 인기있게해야합니다 ... "그는 John이 잘못 제작 한 추가 프로그램이 항상이 코드를 건너 뛰어 사용자가 당황하게 할 것이라는 것을 알았습니다. 빈 디스플레이 필드로 ... "
DKnight

4
내 의견이 바보 같은 오타를 피하지 않도록하기 위해 할 수있는 모든 것. 이제 수동태를 사용해야하는지 걱정해야합니까? 다음으로 전치사에 매달리지 않도록해야합니다. 동료들이 참지 못할 수도 있습니다. 그리고 나는 분할 부정사를 사용할 수 없다고 생각합니다. 문장 조각?
Michael Burr

답변:


103

인간이 이해할 수 있도록 의견을 작성해야합니다. 인간이 의사 소통 할 때 일반적으로 "I", "we", "you"등을 사용합니다.

누군가가 어떤 코드를 이해하려고 할 때, 두 명 이상의 행위자가 있습니다 : 그것을 읽는 사람과 코드의 원래 저자. "우리"라고 말하는 것이 좋습니다. '전문가'가 아닌 한 '로봇과 같은'을 의미합니다.


3
이 방법으로 글을 쓰면 +1은 글쓴이가 잠재적 인 독자를 고려하도록 장려하며 더 잘 설명해야 할 개념을 보는 데 실제로 도움이 될 수 있습니다.
저스틴 옴스

64
// we approve of this answer:)
Jarrod Dixon

3
+1 및 증폭 : 반대로 "크기를 조정할 수 있음"과 같은 수동형 음성 구성은 일반적으로 이해하기 어렵 기 때문에 서면으로 거부됩니다. 수동 음성을 사용하면 독자가 문장의 주제를 발명하고 기억하도록 강요합니다.
msw

1
@msw : '우리는'크기를 조정할 수있다 '와 같은 수동적 음성 구성을 거부한다 ...'
tdammers

2
예를 들어, @msw는 러시아어에서 수동 음성 구성이 더 일반적이며 일부 문화적 차이로 인해 더 쉽게 이해됩니다. (아니, 나는 의도적으로 수동적 인 목소리로 그 문장을 쓰지 않았습니다 !)
P Shved

22

'I'는 코드에 대한 모든 책임을 자동으로 가정하므로 사용하지 않는 것이 좋습니다. 다른 사람들이이 책을 읽고 있다면,이 경우 팀의 노력이 필요하기 때문에 나빠 보일 것입니다. '우리'를 사용하는 것에 무관심합니다. 그러나 다른 독자들을 독창적으로 포함시킬 수도 있습니다.

내 투표는 여전히 간결하고 간결합니다. 메시지가 덜 장황하게 전달 될 수 있다면 왜 다른 것을 선택해야합니까? 따라서이 예제와 관련하여 다음과 같이 작성합니다.

'The form is not minimized so it can be resized safely.

4
"메시지를 덜 장황하게 전달할 수 있다면 왜 다른 것을 선택해야합니까?" 문서화가 잘 안된 라이브러리를 구현하려고 시도하는 사람이 벽에 대고 머리를 숙이고있는 것처럼 (오픈 소스 라이브러리는 이것으로 악명 높음) 너무 적은 의견이 너무 많을 것입니다. 나는 당신이 의미있는 올바른 문장 부호와 함께 좋은 문장을 사용하는 것을 의미한다고 생각합니다.
Jonathan Henson

3
팀 환경에서 모든 책임을 다하지 않은 +1 그리고 나는 장황한 주석을 피하려고 노력하는 것에 동의하지만 때때로 수동 시제는 읽기가 더 어려워지고 (jkj가 지적한대로) 더 장황하지 않을 수 있으며, 난독 화를 피하는 것을 선호합니다. =]
dlras2

2
@ 조나단 헨슨 (Jonathan Henson) : 많은 의견은 좋지만 유용한 정보가 많은 경우에만 유용합니다. 동일한 양의 정보를 두 개의 동등한 방식으로 표현할 수 있으면 더 짧은 것이 좋습니다.
tdammers

저의 조언은 수동태를 사용하지 않는 것입니다. 특히 비영어권 모국어 사용자에게는 이해하기가 더 어렵습니다.
Ville Laurikari

18

나는 보통 두 가지 접근법 중 하나를 취합니다.

요구 사항이나 정당화와 같은 것을 설명 할 때 나는 "우리"와 함께 다음과 같이 진행합니다.

// We can't proceed unless the user has given us this information.

프로세스를 설명하는 경우 명령적인 음성을 사용하는 경향이 있습니다 (잘못된 용어 인 경우 수정).

// Get the foo from bar and make sure it follows our required format.

후자는 위험한 코드 반복에 가까워 질 수 있지만 용도가 있습니다. 그래서 그것은 우리 나 우리를 사용하는 것이 아니라 실제로 "당신"을 의미합니다.


이것도 저의 스타일입니다. 당신이 묘사하는 두 가지 방법 모두 그 자리에 있습니다.
zourtney

9
후자에도 "우리"가 있습니다. 사람들이 자연스럽게 1 인칭 복수형으로 의견을 쓴다는 것이 흥미 롭습니다.
Reid

@ 리드 와우 그래, 그건 그냥 본능이었다, 나는 심지어 눈치 채지 못했습니다. 그러나 그것은 단지 "the"라고 쉽게 말했을 수 있습니다.
Tesserex

8

나는 그것이 종종 개인적이지 않은 학문적 / 기술적 글쓰기 스타일의 변형 일 뿐이라고 생각합니다. 수동적 인 음성을 사용하여 "royal we"를 사용합니다 ( "일자"는 날짜가 지났습니다).

일반적으로, 그것은 이다 어쨌든 그것을 사용 비특이적 - 테이너 혜택에 대한 댓글이 없습니다 일반적으로 단지 원래의 작성자입니다.

이유를 설명 - 그건 내가 의견에 자주 첫번째 사람을 사용했다 나는 특정 결정을하고, 무엇을 나는 생각했다.


3
나는 개인적으로 "하나"가 데이트되었다고 생각하지 않습니다. 그렇습니다. 때때로 사용하는 것이 아니기 때문에 덜 일반적으로 사용됩니다. 그러나 주석의 의미에서 "하나"를 사용할 경우 읽을 수 없거나 사용성이 떨어질 가능성은 거의 없습니다.
Billy ONeal

7

의견은 무엇을하고 있는지, 왜하고 있지 않은지를 말해 주어야합니다. 수행중인 작업이 코드에서 명확하지 않은 경우 코드를 수정하고 주석 만 추가하지 마십시오. 1 인칭, 2 인칭 등은 중요하지 않습니다. 중요한 것은 필요한 정보를 전달하는 것입니다.

코드를 설명해야하는 경우 명령을 선호하십시오 (예 :

'ensure that the window is not minimized
If WindowState <> 1 Then
    'resize the window
    '...
End if

(그리고 코드에서 "1"과 같은 베어 상수를 사용하지 마십시오)


3
명령을 선호하는 +1, 나는 그것을 생각하지 못했습니다. 또한 네, 맨손으로 사용해서는 안됩니다 1. 나는 일반적으로 그것에 대해 꽤 좋은 ... 인터넷에 내 마음을 미끄러 몇 번 중 하나를 게시하도록 저에게 맡겨주세요.
dlras2

6

어쩌면 우리 는 마술을 일으키는 프로그램 안의 작은 사람들을 언급하고 있습니까? :)

영어 수동태 는 사용하기 어렵고 소리가 나지 않습니다. 사람들은 사람 형태 (I, 당신, 우리, 하나)를 사용하는 것을 좋아합니다.

예:

(당신 / 우리 / 하나는 반드시) 델리게이트를 사용하여 창 크기 조정 이벤트를 부모에게 전달하십시오.

창 크기 조정 이벤트를 부모에게 전달하려면 대리자를 사용해야합니다.

다른 예 (주석에서 사람 양식을 생략 할 수 있음) :

(우리는) 예외를 잡았다. 오류 대화 상자가 표시됩니다.

예외가 발생하여 오류 대화 상자가 표시됩니다.

추신. 수동 언어를 "귀하"로 바꾸는 것은 영어에서 너무 일반적이기 때문에 다른 언어로 누출되기 시작했습니다. 예를 들어 핀란드에서 두 번째로 특이한 형태가 존재하는 곳 (예 : 영어 "thou")에서는 매우 재미있게 들립니다.


언어 적으로 이것은 정확하지 않다고 생각합니다. 첫 번째는 필수적이며 주제가 없습니다. "문을 닫아주세요." 그것은 "제발, 문을 닫을 수 있습니까?"와 대략 같은 의미입니다. 약어가 아닌 고유 한 문법 형식입니다. 두 번째 예에서는 "(예제) 예외가 발생했습니다. 오류 대화 상자가 표시됩니다."라고 말할 수도 있습니다.
잉카

3

프로그램 실행에 대해 이야기하고 있다면 '우리', '당신'또는 '나'가 아닙니다. 의인화는 눈에 띄지 않을 정도로 널리 퍼져 있지만 위험한 습관입니다 (PDF 경고. Dijkstra 경고.) :

나는 의인화가 최악이라고 생각합니다. 나는 이제 "일을하려고한다", "일을하고 싶다", "사실을 믿는다", "알고있는 것"등의 프로그램을 보았습니다. 프로그래머는 프로그램 실행으로 자신을 식별하고 거의 작동 시맨틱을 사용하도록 강요합니다.


2
Dijkstra 경고! 더 많은 것만 가지고 있다면 :(
Tom Anderson

나는 1 인칭 복수형으로 주석을 작성하는 것이 의인화라고 생각하지 않습니다. 나는 주석을 작성하는 프로그래머가 독자의 코드를 통해 독자를 이끌고있는 것처럼 "이제 컴퓨터에게 ..."라고 암시한다고 생각합니다.
blujay

2

나는 첫 사람이나 "왕의 왕"이 전문가답지 않거나 산만 해 보이지는 않는다고 생각합니다. 나는 "to be"동사를 가지고 있지 않은 영어의 하위 집합 인 E-Prime 에 영어로 의견을 쓰려고 노력해야한다고 생각합니다 .

주석에 "있다"를 과도하게 사용하면 다음과 같은 혼란스러운 진술이 나타납니다.

// X is 10
// X is the user data of the newly-authenticated user
// X is a BigInt

글쎄, 아마도 한 번에 모두는 아니지만 평등은 실제로 주석을 불분명하게 만들 수 있습니다.

필자는 작가가 행동과 함께 배우를 표시해야하므로 E-Prime으로 요구 사항을 작성하면 이러한 요구 사항을보다 명확하게 이해할 수 있다고 생각합니다.


흥미로운 개념; "X는 5 이상이어야합니다"또는 "Y는 23 이하이어야합니다"라는 개념을 어떻게 표현할 수 있습니까?
supercat

@supercat- "X 값의 크기는 5 이상이어야합니다". "Y의 값은 23을 초과하지 않아야합니다." 평등, 논리 또는 산술은 "to be"동사를 사용해서는 안됩니다. "X는 5를 포함해야합니다"또는 "X는 5로 평가됩니다"또는 "X의 값은 5"또는 이와 유사한 것입니다. 명확하지 않은 주석이 나오면 "동사"동사를 찾으십시오. 나는 불분명 한 주석은 동사가 아닌 "동시"라는 단어를 사용한다고 확신합니다. 또한 위의 답변을 E-Prime에 썼습니다.
Bruce Ediger

두 번째는 괜찮습니다. -6의 크기가 5 이상이므로 첫 번째는 그리 많지 않습니다.
supercat

@ supercat-아주 잘. "X의 부호있는 정수 값은 5 이상이어야합니다." 미국에서는 "크기"를 "절대 값"이라고 부릅니다. 이는 평등에서 비롯된 값으로 변수가 아니라 변수의 값을 설명하는 요점을 강화합니다.
Bruce Ediger

2

주석을 달기위한 올바른 스타일은 3 인칭 비인간적입니다. " 양식이 최소화되지 않았으므로 안전하게 크기를 조정할 수 있습니다 ."

  • 나는 순진하다.
  • 당신 은 멍청이입니다.
  • 우리 는 너무 공식적입니다.

모든 문장은 이런 식으로 표현 될 수 있으며 (위 참조) 유일한 전문적인 글쓰기 방법입니다.


11
-1 이유 : 올바른 방법이 없습니다. 귀하의 I / You / We에 대한 요약이 약간 닿아 서 마지막 부분을 이해하지 못합니다. 제쳐두고 : 제 의견에 "우리"라고 말할 때, 저는 왕처럼 말하려고하지 않습니다. 나는 당신과 대화하고있는 사람이 내 코드를 읽고 내 생각을 나란히 밟고 있습니다.
doppelgreener

2

의견에 따라 다릅니다.

일반적으로 소의 입에서 제안한 방식으로 의견을 작성합니다 . 또한 항상 이런 방식으로 문서 생성 주석 (Doxygen, JavaDoc)을 작성합니다.

그러나 많은 사람들이 소스 파일에서 누가 라인을 작성 / 터치했는지 식별하기 위해 버전 제어 사용을 종종 무시합니다. "I"라고 말하는 것이 적절할 때가 있습니다. 특히 코드를 작성한 사람에게 "I"를 추적하는 것이 매우 쉬운 경우가 있습니다. 개인이 결정을 내린 경우 "I"(버전 관리와 함께)를 사용하여 코드에 따라 결정을 식별하고 추적하는 것이 좋습니다.


Doxygen 및 JavaDoc의 경우 +1 나는 문서가 주석과 구별된다는 것에 동의하며 (일부 주석은 문서를 생성하지만) 그러한 문서를 내 의견보다 공식적인 단계로 유지하기 위해 최선을 다한다.
dlras2

1

나의 좋은 오래된 아버지 (mhrip)는 다음과 같이 물을 것입니다. "더 신경 쓰는 것이 더 중요하지 않습니까?"

그러나 개인적으로 나는 "우리"를 좋아합니다. 또한 회사에서 유일하게 직원임을 고려할 때 코드가 아닌 업스트림 문서에 왜 우리를 작성해야하는지 궁금합니다.

그러나 나 자신과 나는이 방법으로 우리가 덜 외로움을 느낀다는 데 동의합니다 :)


1

"우리"라고 쓰고 "나와 컴퓨터"(또는 "나의 팀과 컴퓨터")를 생각하는 유일한 사람입니까? "우리"는 외부가 우리에게 보낸 요청을 처리 할 것입니다. 즉, "우리"는 요청을 읽고 일부 창을 열고 "우리의"비즈니스 요구 사항에 따라 계산을 수행해야합니다. 이것은 또한 코드가 적의 것이 아니라 당신 편의 일부로 보는 것을 돕는다 :-)


0

짧은 의견의 경우, 나는 종종 다른 사람에게 지시하는 것처럼 마치 다음 개발자에게 의견을 읽도록 지시하는 메시지로 다른 사람에게 글을 씁니다. 와 같은

//You can get a session_id from SYSSession.getSessionID() if you need one

더 긴 주석 (긴 함수 헤더 또는 여러 줄의 알고리즘 설명과 같은) 나는 중립적이거나 일인칭, 2 인칭 또는 3 인칭을 유지하려고 노력합니다.


영어 패시브는 거의 들리지 않습니다. "필요하다면 session_id를 SYSSession.getSessionID ()에서 얻을 수 있습니다"
jkj

0

코드가 명확하지 않기 때문에이 주석을 추가했습니다. 나는 일반적으로 잘 정의 된 방법을 통해 표현 의도를 언급하는 것을 피합니다. 예를 들어, 해당 라인을 이름이 지정된 메소드로 이동했을 수 있습니다 CanThisFormBeResized.

비록 이름과 방법이 작더라도 주석과 코드가 동기화되지 않기 때문에 주석보다 우선합니다.

따라서 대부분의 주석을 코드로 표현할 수 있다면 주석의 이유는 거의 없습니다.

  • 귀하의 의견이 귀하의 의견이라면 "I"로 시작하십시오.
  • 의견이 공유 의견이어야한다고 생각하는 경우 (예 : 모범 사례) "우리"로 시작하십시오.
  • 귀하의 의견이 반 재치로 작성된 일부 난독 한 코드에 관한 것이라면, 의견을 긁어 내고 동료의 혼란스러운 코드를 펀칭 한 다음이 얼굴을 마주 보며 다루십시오.

1
죄송하지만이 스타일의 팬은 아닙니다. 특히이 코드는 한 곳에서 한 번만 사용되므로 이미 크기 조정 방법에서 유일한 코드입니다. 특히 VB6 디버거로 작업 할 때 리팩토링을 통해 복잡성을 더하기 위해 짧고 잘 설명 된 주석을 선호합니다. 제쳐두고, CanThisFormBeResized아마도 ThisFormCanBeResized처럼 사용될 것 If ThisFormCanBeResized Then입니다.
dlras2

1
그 선호. 나는 function() { return this.windowState != 1 }어떤 주석보다 개인 부울 메소드 를 사용합니다. +1에서
keppla

1
@Dan, 나중에 다른 사람이 오면 어떻게해야합니까? 왜 창을 최소화 할 수 있는지 결정하기 위해 논리를 검색하고 논리를 다시 작성해야하는 이유는 무엇입니까? 주석으로 작은 코드 줄을 발견하지 않고 자신의 코드를 추가 할 수도 있습니다. 이제 논리가 변경되면 주석이 코드와 동기화되지 않을 수있는 두 곳과 변경해야하는 두 곳이 있습니다. 상태가 변경되지 않는 잘 알려진 1 행 방법이 왜 복잡성을 더합니까? 가장 간단하고 깨끗한 리팩토링 중 하나입니다.
Steve Dunn

0

경험상 첫 번째 사람, 즉을 사용하는 것이 좋습니다 I.

왜? 나는 소유의 성격 때문에가 아니라 사람들이 다른 관점에서 이야기 할 때 너무 많은 단어를 사용하거나 문장을 너무 복잡하게 만들고 설명을 시도 할 때 길을 잃는 경향이 있기 때문입니다. 첫 번째 사람은 항상 가장 읽기 쉬운 경향이 있습니다.


0

개인적으로 (C #으로) 다음과 같이 씁니다.

if (WindowState != WindowState.Minimised)
{
     ResizeWindowSafely();
}

또는 그 줄을 따라 뭔가 설명이 필요하지 않습니다.


ResizeWindowSafely크기를 조정할지 여부를 모르는 경우 호출 할 수 있으므로 if (WindowState != WindowState.Minimised)자체 를 포함해야 합니다.
dlras2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.