변수 이름에 유니 코드 문자를 사용하는 것이 좋지 않습니까? [닫은]


82

최근에 Python 3에 순위 알고리즘 AllegSkill을 구현하려고했습니다.

수학은 다음과 같습니다.

대체 텍스트

아뇨

이것은 내가 쓴 것입니다 :

t = (µw-µl)/c  # those are used in
e = ε/c        # multiple places.
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5

실제로 파이썬 3가 변수 이름을 받아들이지 않거나 ²변수 이름으로 사용 하는 것이 불행하다고 생각했습니다 .

>>> √ = lambda x: x**.5
  File "<stdin>", line 1
    √ = lambda x: x**.5
      ^
SyntaxError: invalid character in identifier

나는 내 마음에서 벗어나 있습니까? ASCII 전용 버전을 사용해야합니까? 왜? 위의 ASCII 전용 버전이 수식과 동등한 지 확인하는 것이 더 어렵지 않습니까?

일부 유니 코드 글리프는 서로 매우 비슷하게 보이고 (또는)) 또는 ╦와 같이 작성 된 코드에서는 의미가 없습니다. 그러나 이것은 수학이나 화살표 그림에는 해당되지 않습니다.


요청에 따라 ASCII 전용 버전은 다음과 같습니다.

winner_sigma_new = ( winner_sigma ** 2 *
                    ( 1 -
                     ( winner_sigma ** 2 -
                       general_uncertainty ** 2
                     ) * Wwin(t,e)
                    ) + dynamics ** 2
                   )**.5

... 알고리즘의 각 단계마다.


58
그것은 완전하고 읽을 수 없으며 말할 수 없을 정도로 시원합니다.
도미니크 맥도넬

2
유니 코드에 대해 이야기 ... codinghorror.com/blog/2008/03/i-entity-unicode.html
CoderHawk

3
파이썬이 산술 연산을 변수로 받아들이지 않는 것이 아주 좋은 것입니다. 제곱근 기호는 제곱근을 취하는 작업을 나타내며 변수가 아니어야합니다.
David Thornley

4
@David, Python에는 그러한 차이점이 없습니다. 실제로, sqrt = lambda x: x**.5나에게 함수 (보다 정확하게 말하면 호출 가능)를 얻습니다 sqrt(2) => 1.41421356237.
badp

4
OutputStream.🚽;

답변:


54

난 그냥 교체 할 것을 강하게 느낄 수 σs또는 sigma뇌사에 경계, 바보 될 것입니다.

잠재적 인 이익은 무엇입니까? 음 .. 어디 한번 보자 …

  • 가독성이 향상됩니까? 아뇨, 조금도 아닙니다. 그렇다면 원래의 수식은 의심 할 여지없이 라틴 문자를 사용했을 것입니다.

  • 쓰기 가능성이 향상됩니까? 언뜻보기에, 그렇습니다. 그러나 두 번째는 아닙니다. 이 공식은 절대 변하지 않기 때문에 (“그렇지 않습니다”). 일반적으로 코드를 변경하거나 이러한 변수를 사용하여 코드를 확장 할 필요가 없습니다. 따라서 한 번만 쓸 수있는 쓰기 기능은 문제가되지 않습니다.

개인적으로 저는 프로그래밍 언어가 수학 공식에 비해 한 가지 이점이 있다고 생각합니다. 의미 있고 표현적인 식별자를 사용할 수 있습니다. 수학에서는 일반적으로 그렇지 않으므로 한 글자 변수에 의존하여 때로는 그리스어로 만듭니다.

그러나 그리스어는 문제가되지 않습니다. 설명이없는 한 글자로 된 식별자입니다.

프로그래밍 언어 유니 코드를 지원하는 유니 코드를 지원 한다면 기술적 인 장벽은 없습니다. 또는 의미있는 식별자를 사용하십시오. 그리스 문자를 라틴 문자로 바꾸지 마십시오. 또는 아랍어 또는 힌디어.


3
프로그래밍 언어가 해당 기능을 지원하더라도 일부 도구는 유니 코드 문자를 읽을 수 없습니다. 유니 코드가 아닌 변수 이름을 사용하는 것은 치명적인 결정이라고 부르지 않을 것입니다. 이는 게시물 이후 2.5 년이 지난 후에도 여전히 유효합니다.
게리 S. 위버

44
@Gary“일부 도구는 유니 코드를 읽을 수 없습니다”– 도구를 변경하면 문제가됩니다. 죄송합니다. 2013 년에 이런 도구에 대해 동정심이없고 인내심이 떨어졌습니다. 결함이있는 공구를 지속적으로 공급하면 진행이 방지됩니다.
Konrad Rudolph

3
@KonradRudolph 제 요점은 어떤 도구는 어떤 이유로 든 유니 코드를 지원하지 않으며 지원할 수 없기 때문에 "도구 변경"이 항상 정답은 아니라는 것입니다. 나는 유니 코드가 좋고 도구가 그것을 이해해야한다는 데 동의하지만 항상 옵션은 아닙니다.

3
@John“도구 변경”이 적절한 답변이라고 생각합니다. 특히 귀하의 예는 그러한 경우를 보여줍니다. Java .properties파일은 구문 분석하기가 쉽지 않습니다. 당신이 정말로 바탕으로, 툴 체인과 함께 작업 할 일이 경우 .properties유니 코드를 지원하지 않았다, 파일, 그건 전적으로 말했다 드롭 합리적인 툴 체인 (및 중 최악의 경우, 자신을 교체 대안을 찾거나, 수수료 하나 ). 물론 이것은 레거시 시스템에는 적용되지 않습니다. 그러나 레거시 시스템의 경우 모범 사례에 대한 고려 사항이 적용되지 않습니다.
Konrad Rudolph

8
이러한 "교환"문제는 주로 Java 및 Windows 개발자의 문제인 것 같습니다. Linux 세계의 대부분은 10 년 전에 UTF-8로 표준화되었습니다. 확실히 툴체인 문제입니다. 나쁜 도구 사용을 중지하십시오.
리치 레머

33

개인적으로, 다시 입력하기 위해 문자표를 불러 와야하는 코드가 싫습니다. 유니 코드가 알고리즘의 내용과 밀접하게 일치하더라도 가독성과 편집 기능이 실제로 손상됩니다. 일부 편집기에는 해당 문자를 지원하는 글꼴이 없을 수도 있습니다.

대안은 //µ = u어떻습니까? 위에 올라서 모든 것을 ASCII로 작성하십시오.


14
그건 그렇고, 모든 키보드가 표준 코딩 키를 편안하게 노출한다고 가정하지 마십시오. 내 키보드 레이아웃 에는 입력하는 데 세 개의 키가 필요 {하며 }(ttys btw에서 실패) 완전히 부족 `하며 ~... 커스텀 키 맵을 사용하지 않은 경우 Bash 스크립트에서 문자 맵을 사용하지 않아도되는 방법은 무엇입니까? :)
badp November

4
기본 키보드와 함께 그리스어 키보드를 설치했으며 한 번의 키 입력으로 키보드를 전환 할 수 있습니다. 이것은 IM / 이메일에 대한 수학에 대해 이야기 할 때 유용합니다. 그리고 이미 파이썬 스크립트에서 수학을 사용하려고 생각했습니다.
liori

18
어. 그리스 문자를 일반 문자로 바꾸는 것입니까? 아무것도 얻지 못합니다. 의미있는 변수 이름을 사용하거나 종이의 이름을 사용하십시오. 창의성을 발휘할 이유가 없습니다.
Konrad Rudolph

12
µ와 μ를 섞지 마십시오.
endolith

4
합리적인 편집기에는 이와 같은 코드를 쉽게 편집 할 수있는 유니 코드에 대한 합리적인 입력 방법이 있습니다. 예를 들어, Emacs는 TeXand를 지원합니다 rfc1345. TeX그냥 소리처럼 들립니다. \sigmafor σ\tofor 를 입력 할 수 있습니다 . rfc1345당신과 같은 몇 가지 조합 제공 &s*을 위해 σ&->를 들어 . 경험상, 나는 Emacs보다 능력이 낮은 편집기를 사용하여 프로그래머를 수용하는 것에 대해 걱정하지 않습니다.
Tikhon Jelvis

31

이 인수는 유니 코드를 입력하거나 그리스 문자를 읽는 데 아무런 문제가 없다고 가정합니다.

여기에 논쟁이 있습니다 : pi 또는 circle_ratio를 원하십니까?

이 경우, 나는 초등학교 때부터 pi에 대해 배웠고 pi의 정의가 그의 소금 가치가있는 모든 프로그래머에게 잘 뿌리 내릴 것으로 기대할 수 있기 때문에 pi를 circle_ratio보다 선호합니다. 따라서 Circular_ratio를 의미하기 위해 π를 입력해도 상관 없습니다.

그러나 어떻습니까?

winner_sigma_new = ( winner_sigma ** 2 *
                    ( 1 -
                     ( winner_sigma ** 2 -
                       general_uncertainty ** 2
                     ) * Wwin(t,e)
                    ) + dynamics ** 2
                   )**.5

또는

σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5

나를 위해, 두 버전처럼 똑같이 불투명 pi또는 π이다 제외하고 내가 초등학교에서이 공식을 배울하지 않았다. winner_sigma그리고 Wwin나에게 또는 코드를 읽는 다른 사람에게는 아무것도 의미 σw하지 않으며 둘 다 사용 하면 더 나아지지 않습니다.

따라서, 예를 들어 total_score, winning_ratio등의 설명적인 이름을 사용하면 그리스 문자 만 발음 하는 ASCII 이름을 사용하는 것보다 가독성이 훨씬 향상 됩니다. 문제는 그리스 문자를 읽을 수 없다는 것이 아니라 문자 (그리스어인지 아닌지)를 변수의 "의미"와 연관시킬 수 없다는 것입니다.

다음과 같이 언급 할 때 문제를 직접 이해했습니다 You should have seen the paper. It's just eight pages.... 문제는 가독성에 관계없이 간결성을 위해 단일 문자 이름을 선택하는 종이를 기반으로 변수 이름을 지정하는 경우 (그들은 그리스어인지 여부에 관계없이) 사람들이 문자를 "의미"; 즉, 사람들이 코드를 이해할 수 있도록 인공 장벽을 설정한다는 것은 항상 나쁜 일입니다.

심지어 당신은 ASCII 전용 세상에서 살고, 모두시 a * b / 2alpha * beta / 2의 동등 불투명 렌더링입니다 height * base / 2, 삼각형 지역 공식. 수식이 복잡 해짐에 따라 단일 문자 변수를 사용할 수없는 가독성이 기하 급수적으로 증가하며 AllegSkill 수식은 사소한 수식이 아닙니다.

단일 문자 변수는 그리스 단일 문자 또는 ASCII 단일 문자인지 여부에 관계없이 간단한 루프 카운터로만 사용할 수 있습니다. 다른 변수는 단일 문자로만 구성되어서는 안됩니다. 나는 당신이 당신의 이름으로 그리스 문자를 사용하는지 상관하지 않지만, 당신이 그것들을 사용할 때, 다른 곳에서 임의의 종이를 읽을 필요없이 그 이름을 "의미"와 연관시킬 수 있는지 확인하십시오.

초등학교 때, 나는 기본 산술을 위해 +,-, ×, ÷와 같은 기호를 사용하는 수학 표현을 보지 못하고 √ ()는 제곱근 함수입니다. 초등학교를 졸업 한 후에는 통합을 위해 새롭고 반짝이는 새 기호를 추가하지 않아도됩니다. 트렌드에 주목하십시오. 이들은 모두 운영자입니다. 연산자는 변수 이름보다 훨씬 많이 사용되지만 완전히 다른 의미로 재사용되는 경우는 거의 없습니다 (수학자가 연산자를 재사용하는 경우 새로운 의미는 여전히 오래된 의미의 일부 기본 속성을 보유합니다. 변수 이름을 재사용 할 때).

결론적으로, 변수 이름에 유니 코드 문자를 사용하는 것은 나쁘지 않습니다. 그러나 변수 이름에 단일 문자 이름을 사용하는 것은 항상 좋지 않으며 유니 코드 이름 사용이 단일 문자 변수 이름을 사용할 수있는 라이센스가 아닙니다.


9
솔직히 말해서, 여기의 공식은 내가 error_on_measured_skill_with_99th_percent_confidence대신 사용해야하더라도 더 이해가되지 않습니다 sigma.
badp

4
@badp : 긴 이름! = 좋은 이름. 그럼에도 불구하고, 좋은 이름을 선택하는 것이 불가능한 경우가 있습니다 (예 : 수식 만 이해하지만 수식의 각 부분이 수행하는 작업을 완전히 이해하지 못하는 경우 (완전히 다른 수준의 이해)), 그런 경우, 두 번째 가장 좋은 대안은 엉덩이를 약간의 주석으로 덮는 것입니다 (외부 용지로 보내는 것보다 낫습니다). 변수 이름은, 예를 의미에 대해 설명하는 데이터 사전 추가 // σw = skill level measurement error
라이언 거짓말

1
@badp : 솔직히 말해서, 시그마는 어떤 퍼지 요소 (말하자면)를 의미한다고 시그마가 나에게 치는 것보다 공식을 조금 더 잘 이해하게 해줍니다. 수식을 이해하기가 어려우면 그 위에 더 많은 불투명도를 추가하고 싶지 않습니다.
Lie Ryan

2
예. 이. 불행히도, 나는 대답을 쓸 때 그것을 간과했다.
Konrad Rudolph

3
통계와 관련된 모든 일을하는 사람은 σ가 "표준 편차"를 의미한다는 것을 알고 있습니다. 해당 도메인에서 잘 알려진 표준 심볼입니다.
TRiG

14

코드를 이해합니까? 다른 사람이 읽어야합니까? 그렇다면 아무런 문제가 없습니다.

개인적으로 ASCII 전용 소스 코드의 뒷면을 보게되어 기쁩니다.


끝난. (마지막 줄은 ASCII 버전의 코드를
보라고했다고 가정

4
@ badp : 아니요, ASCII 전용 코드의 죽음을 보라고 요청했습니다.

Windows 1252 시스템에 착륙 할 때 유니 코드 소스 파일에 어떤 일이 발생하는지 확인할 때까지 ...

1
@ Thorbjørn : BOM이 포함되어 있으면 아무 일도 일어나지 않을 것입니다.

9

예, 당신은 당신의 마음에서 벗어났습니다. 주석에서 종이와 수식 번호를 개인적으로 참조하고 모든 것을 직선 ASCII로 작성합니다. 그러면 관심있는 사람은 코드와 수식을 상관시킬 수 있습니다.


5
코드와 수식 이 처음부터 일치 하는지 확인하기가 어려웠 습니다 ...
badp

10
@Paul : 운 좋게도 유니 코드는 10 세 이상이므로 이의 제기가 처리되었습니다. 그리고 다른 UTF간에 확실한 승자는 없지만 문제는 아닙니다. 그것들을 구별하는 것은 소프트웨어에게는 사소한 일입니다.
Konrad Rudolph

1
@ Konrad : 지금 부터 10 년을 의미 합니다. 많은 프로그램이 여전히 유니 코드를 지원하지 않습니다. 또한, 나는 당신의 주장에 동의하지 않습니다-3 개의 utfs를 모두 처리하는 일반적인 역 루틴을 작성하는 것은 쉬운 일이 아닙니다. 확실한 승자가 있어야합니다. 3 가지 UTF를 지원하는 것은 의미가 없습니다 (다른 코드 페이지는 여전히 존재하지 않습니다).
Paul Nathan

3
@Paul : 얼마나 자주 "일반적인 리버스 루틴"을 작성해야합니까? 세 가지 UTF는 서로 다른 용도로 사용되며 통합을 원한다고 생각하지 않습니다.
Dean Harding

7
@ 폴 :이 프로그램들을 조이십시오. 유니 코드를 처리하는 방법을 알고있는 훌륭한 편집자가 충분합니다. 일부 편집자가 여전히 악몽을 타지 않았다면 경제적 인 선택으로 처리하십시오. Dean이 말했듯이 UTF는 다른 목적으로 사용됩니다. 그것들이 존재 하는 것이 좋습니다 . 그리고 나는 당신의 다중 역 루틴에서 요점을 보지 못합니다. 개별 UTF가 아닌 코드 포인트의 경우 한 번만 작성 하면됩니다 (현재 정규화 양식 무시).
Konrad Rudolph

5

유니 코드 변수 이름을 사용하는 것은 두 가지 이유로 나쁜 생각이라고 말합니다.

  1. 그들은 타이핑하는 PITA입니다.

  2. 그들은 종종 영어 문자와 거의 동일하게 보입니다. 이것이 내가 수학 표기법으로 그리스 문자를 보는 것을 싫어하는 이유와 같습니다. p와는 별도로 rho에게 알려주십시오. 쉽지 않습니다.


6
입력하는 데 사용하는 내용에 따라 다릅니다.
endolith

4

이 경우에는 복잡한 수학 공식이 있습니다.

나는 20 년 안에이 복잡한 그리스 문자가 원래 수학에 가깝게 유지하는 것을 코딩 할 필요가 없었다고 말할 수있다. 이해할 수 없으면 유지해서는 안됩니다.

내가 μ 당신이 저를 물려 σ 늪지에 표준 코드를 유지해야하는 경우, 그 말을 나는 어디 라이브 찾아 ...


3
  • 찬성
  • 단점 : 유니 코드 문자이므로 툴 체인 (편집기, 코드 포맷터, 버전 제어, 이전 컴파일러)에서 전체 의미가 손실 될 수 있습니다

위험이 얼마나 큽니까? 이익이 위험을 능가 하는가?


2
툴체인? 어떤 툴 체인?
badp

2
에디터, 코드 포맷터, 버전 관리, 구형 컴파일러. 모든 도구와 사람이 파일을 만집니다. 유니 코드 파일 YMMV로 엉망이되는 도구에 대해 나쁜 경험을했습니다.
LennyProgrammers

2

언젠가는 먼 미래에, 우리는 모두 고전 그리스 문자 등을 포함하여 편집 텍스트를 쉽게 작성할 수있는 텍스트 편집기 / IDE / 웹 브라우저를 사용하게 될 것입니다. "현재 사용중인 도구의 기능 ...)

그러나 그럴 때까지 프로그램 소스 코드에서 ASCII가 아닌 문자는 많은 프로그래머가 처리하기 어려울 수 있으므로 다른 사람이 유지 관리해야하는 응용 프로그램을 작성하는 경우 나쁜 생각입니다.

(우연히 파이썬 식별자에서 그리스 문자를 가질 수 있지만 제곱근 부호는 가질 수없는 이유는 간단합니다. 그리스 문자는 유니 코드 문자로 분류되지만 제곱근 부호는 문자가 아닙니다. http://www.python.org 참조 / dev / peps / pep-3131 / )


직접 입력 할 수없는 사용자를 위해 문자를 번역 할 수있는 IME를 만드는 것이 좋습니다.
AndrejaKo

예, DVORAK으로 전환 할 때 더 많거나 적습니다. :(
badp

1
@AndrejaKo Linux에는 LaTeX 스타일 명령을 받아들이는 IME가 있습니다. 즉, 입력 \mu하고 입력 합니다 µ.
badp

@ badp 감사합니다! 다음에 부팅 할 때 시도하겠습니다!
AndrejaKo

Emacs는 유니 코드 기호를 쉽게 입력 할 수있는 멋진 입력 방법을 지원합니다. (내가 사용하는 TeX를 포함한다.) Emacs는 미래가 아니다. (그것은 이다 물론, 멋진.)
티콘 Jelvis

2

어떤 언어 / 컴파일러를 사용하고 있는지 말하지 않았지만 일반적으로 변수 이름의 규칙은 알파벳 문자 나 밑줄로 시작해야하며 영숫자와 밑줄 만 포함해야한다는 것입니다. 유니 코드 √는 문자 대신 수학 기호이므로 영숫자로 간주되지 않습니다. 그러나 σ는 (그리스 알파벳이므로) á 일 수 있으며 á는 영숫자로 간주 될 수 있습니다.


1

같은 종류의 질문을 StackOverflow 에 게시했습니다.

나는 수학과 관련된 심각한 문제에서 유니 코드를 사용할 가치가 있다고 생각합니다. 일반 ASCII로는 불가능한 수식을 직접 읽을 수 있기 때문입니다.

디버깅 세션을 상상해보십시오. 물론 코드가 올바른지 계산하기 위해 계산 해야하는 수식을 항상 직접 작성할 수 있습니다. 그러나 시간의 90 %는 귀찮게하지 않으며 오랫동안 버그를 숨길 수 있습니다. 그리고 아무도이 끔찍한 7 줄, 평범한 ASCII 공식을 보려고하지 않습니다. 물론, 유니 코드를 사용하는 것은 텍스-렌더링 된 수식만큼 좋지는 않지만 더 좋습니다.

수학에서 식별자가 짧지 않으면 수식이 더 복잡해 보이기 때문에 긴 설명 적 이름을 사용하는 대안은 실현 가능하지 않습니다 (XVIII 세기 경 사람들이 왜 "plus"를 "+"로 대체하기 시작했다고 생각합니까 및 "-"로 "빼기"?).

개인적으로, 나는 또한 아래 첨자와 위첨자를 사용합니다 ( 이 페이지 에서 복사하여 붙여 넣기합니다 ). 예를 들어 : (파이썬이 √를 식별자로 허용 했습니까?)

√ = math.sqrt #function alias
c² = c**2
σʷ² = σʷ**2
γ² = γ**2
σ′ʷ = √(σʷ² * (1 - (σʷ²/c²)*Wʷⁱⁿ(t, e)) + γ²)

유니 코드와 동등한 첨자가 없기 때문에 위 첨자를 사용한 곳. (유감스럽게도, 유니 코드 첨자 문자 세트는 매우 제한되어 있습니다. 언젠가 유니 코드로 첨자 화는 분음 부호로 간주되기를 바랍니다.

마지막으로, 비 ASCII 문자 사용에 대한이 대화는 기본적으로 편향되어 있다고 생각합니다. 많은 프로그래머가 "수식 중심의 수학 표기법"을 다루지 않기 때문입니다. 따라서이 질문은 ASCII가 아닌 식별자를 사용해야하는 코드의 상당 부분을 경험 한 적이 없기 때문에이 질문은 그렇게 중요하지 않다고 생각합니다. 당신이 그들 중 하나라면 (그리고 최근까지도), 이것을 고려하십시오 : 문자 "a"가 ASCII의 일부가 아니라고 가정하십시오. 그런 다음 사소한 수학 공식을 계산할 때 그리스 문자, 아래 첨자, 위첨자가없는 문제에 대해 꽤 잘 알고 있습니다.


0

이 코드는 개인 프로젝트만을위한 것입니까? 그렇다면 견과류를 골라 원하는 것을 사용하십시오.

이 코드는 다른 사람들이 사용하도록되어 있습니까? 즉, 일종의 오픈 소스 앱입니까? 그렇다면 다른 프로그래머가 다른 편집기를 사용하기 때문에 문제가 발생할 가능성이 높으며 모든 편집기가 유니 코드를 올바르게 지원하는지 확신 할 수 없습니다. 또한 소스 코드 파일을 입력 / catd 할 때 모든 명령 셸에 올바르게 표시되지 않으며 html 내에 표시해야 할 경우 문제가 발생할 수 있습니다.


0

개인적으로 저는이 상황에서 수학을위한 도구로 프로그래밍 언어를 고려할 동기가 있습니다. 저는 실제로 제 삶에서 그런 식으로 보이는 수학을 사용하지 않기 때문입니다. : D 물론, ɛ 또는 σ 등을 사용하지 않는 것이 좋습니다. 그 맥락에서 실제로 읽기 쉽습니다.

(단, 내가 선호하는 것은 변수 이름이 아닌 직접 메소드 호출로 위 첨자 번호를 지원하는 것입니다 (예 : 2² = 2 ** 2 = 4 등))


-2

도대체 무엇입니까 σ, 무엇이며 W, 무엇이며 ε, c무엇 γ입니까?
변수의 목적이 무엇인지 설명하는 방식으로 변수의 이름을 지정해야합니다.
ASCII 버전이 더 좋지만 유지 보수를 위해 유니 코드 또는 ASCII 버전을 남겨 두는 사람을 개인적으로 이길 것입니다.

어떤 악한 것은 변수 호출 σ또는 s또는 sigma또는 value또는 var1이 어떤 정보를 전달하지 않기 때문에.

코드를 영어로 작성한다고 가정하면 (어디에서나 사용해야한다고 생각할 때) ASCII는 변수에 의미있는 이름을 부여하기에 충분해야하므로 실제로 유니 코드가 필요하지 않습니다.


2
종이의 복사 / 붙여 넣기를 한 다음 한 문자 변수 이름에도 불구하고 주석으로 소스 코드의 일부로 만들면 어떻게 될까요?
브라이언

19
이러한 변수 이름 중 다수는 문제 영역에 익숙한 사람들에게 강력한 의미를 갖습니다. 도메인에 익숙한 사람에게는 영어 이름이 sigma 또는 rho와 같은 이름 보다 읽기 어려울 수 있습니다 .
dsimcha

3
나는 rank_error_with_99_pct_confidence이것을 위해 너무 오래 걸리는 것을 두려워하고 실제로 공식을 이해하기 쉽지 않습니다. AllegSkill / TrueSkill은 이러한 시그마를 호출하므로 도메인 고유 이름을 유지하는 것이 허용됩니다.
badp

3
@badp : 좋은 이름은 간결하고 서술 적입니다. 그러나 완전히 설명 할 필요는 없습니다. 시그마의 rank_error경우 문서 / 설명 어딘가에 99 %의 신뢰도를 추가 하여 사용하는 것이 좋습니다 .
거짓말 라이언

1
@ dsimcha : 특정 도메인에 익숙한 사람들은 들어 본 적이없는 사람들보다 훨씬 드물다고 생각합니다. 그리고 도메인에 익숙한 사람들은 평범한 영어 이름에 대처할 수있을 것이라고 생각하지만, 도메인에 익숙하지 않은 사람들은 모든 그리스어 문자로 인해 혼란스러워지면 무슨 일이 일어나고 있는지 완전히 이해할 수 없습니다.
back2dos

-2

잘 알려진 수학적 기원을 가진 변수 이름의 경우 이것은 절대적으로 허용되며 심지어 선호됩니다. 그러나 코드를 배포 할 것으로 예상되는 경우 IDE 자동 완성 기능이 이상한 문자를 "입력"할 수 있도록 이러한 값을 모듈, 클래스 등에 배치해야합니다.

식별자에 √ 또는 ² 사용-그리 많지 않습니다.

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