내 동료 모두가 그것을 이해하지는 않지만 메타 프로그래밍을 사용해도 괜찮습니까?


102

반복적 인 작업을 피하고보다 안전한 추상화를 구축하기 위해 많은 메타 프로그래밍을 사용합니다.

나는 최근에 더 큰 팀에서 일하고있는 새로운 직장으로 옮겼는데, 이해하지 못하는 동료들도 걱정하고 있습니다.

나는 항상 언어의 잠재력을 최대한 활용하려고 노력하지만, 동료의 일부 (전부는 아님)가 위험으로 인식합니다 (일부는 환영합니다).

팀의 다른 누구도 이해할 수없는 코드를 작성하는 것이 문제라는 데 동의합니다. 반면에 우리는 모두 전문적인 C ++ 개발자이며 클래스로 C를 작성하는 것보다 더 높은 표준을 열망해야한다고 생각합니다.

내 질문은 누가 옳은가, 어떻게해야합니까?

설명 : 언어의 잠재력을 최대한 활용한다고해서 모든 문제에 TMP를 던지는 것은 아닙니다. C ++는 도구 상자이며 저에게 C ++ 능력은 상자에서 모든 도구를 사용할 수 있고 특정 작업에 적합한 도구를 선택하는 것입니다.


38
이것은 궁극적으로 의견 기반입니다. 개인적으로 C ++ 템플릿 메타 프로그래밍과 같이 너무 복잡한 기능을 사용하여 실수로 튜링이 완료되지 않는 규칙을 만들었습니다.
Kilian Foth

24
@KilianFoth 템플릿은 "실수로"Turing-complete가 아닙니다. 그것들은 항상 강력한 추상화 도구로 만들어졌습니다.
Caleth

73
아무도 이해할 수없는 코드는 더 높은 표준이 아닙니다.
gburton

37
@Caleth Herb Sutter는 실수로 Turing-complete 라고 부릅니다 . 물론, 그것들은 강력한 추상화 기능을위한 것이었지만, Turing-completeness가 허용하는 것처럼, 결정적이고 결정 불가능한 구조를 허용한다고 생각하지는 않습니다. 그리고 그들의 구문은 그러한 메타 프로그래밍을 덜 투명하게 만들도록 설계되지 않았습니다.
leftaroundabout

26
거짓 이분법. "높은 표준"으로 프로그래밍하고 클래스를 사용하여 C를 떠나고, 현대적인 C ++를 채택하고, 템플릿 (예 : STL)을 사용할뿐만 아니라 const, no () 캐스팅, 포인터 산술, 값 의미론, 많은 장점을 가질 수 있습니다. ibnto TMP. C-with-classes와 TMP 사이에 일광이 없으면 잘못하고있는 것입니다.
Kate Gregory

답변:


185

메타 프로그래밍이 정상입니다. 당신이하려는 것은 OK가 아닙니다.

나는 직업에서 항상 메타 프로그래밍을 사용합니다. 보다 읽기 쉽고 유지 보수가 쉬운 방식으로 많은 일을 수행하는 데 사용할 수있는 강력한 도구입니다. 또한 프로그래밍 스타일을 이해하기가 더 어렵 기 때문에 실제로 유지해야합니다. 1000 줄의 코드를 50으로 줄일 수있을 때 마음에 들지만 그렇게 제한하려고합니다.

이 문제는 메타 프로그래밍이 아니지만 다음과 같습니다.

반면에 우리는 모두 전문적인 C ++ 개발자이며 클래스로 C를 작성하는 것보다 더 높은 표준을 열망해야한다고 생각합니다.

이것은 당신이 곤경에 처한 곳입니다. 당신은 의견이 있습니다. 메타 프로그래밍이 좋다는 의견을 갖는 것이 좋습니다. 우리 모두 더 나은 C ++ 개발자가 되길 열망한다는 의견을 갖는 것이 좋습니다.

자신의 의견에 동의하기 위해 작성한 코드를 유지해야하는 동료 미래의 직원을 모두 강제하는 것은 좋지 않습니다 . 그게 네 상사의 일이야 상사는 장기적으로 코드를 유지 관리 할 수 ​​있도록 걱정해야합니다. 그들이 (사업 적으로) 더 많은 사업 경험을 가지고 있습니다. 왜냐하면 그것이 제가 이념적 인 결정이 아니라 사업 결정이라고 말할 때 저를 믿기 때문입니다.

메타 프로그래밍하는 것이 좋습니다. 메타 프로그래밍하도록 다른 사람들을 가르치고 싶은 것이 좋습니다. 그러나 다른 사람들이 메타 프로그램을 배우지 않기로 선택하는 것도 괜찮다는 것을 이해하십시오. (그리고 업계의 비밀로서 : 당신이 마침내 개발자의 힘을 발휘할 때, 당신은 권력의 위치에 있지 않습니다. 권력이있는 지갑을 통제하는 사람이 있습니다).

당신이 원하는 경우에 권장 메타 프로그래밍과 괜찮아 질을, 작은 시작 . enable_ifAPI를보다 쉽게 ​​읽을 수 있는 단일 항목으로 시작하십시오 . 그런 다음 일광 을 주석 으로 처리하십시오. 그런 다음 템플릿 메타 함수가 10 개의 큰 반복 클래스를 10 개의 작은 도우미가있는 1 개의 클래스로 바꾸는 경우를 찾을 수 있습니다. 도대체 의견을 말하십시오. 피드백을받습니다. 사람들이 그것에 대해 어떻게 생각하는지 찾으십시오. 그들이하지 말라고하면 괜찮습니다. 메타 프로그래밍이 철저하게 유지하는 틈새 시장을 찾아서 동료들이 모두 자신에게 맞는 도구라는 데 동의하십시오.

짧은 이야기로, 나는 광범위한 메타 프로그래밍을 사용하여 아름다운 라이브러리를 한 번 썼습니다. 그것은 한 정확하게 우리는 다른 접근 방식은 원격으로 가까이 얻을 수있는 시간에 필요한 것. 실제로 작성중인 응용 프로그램의 방향이 바뀌 었습니다. 그러나 메타 프로그래밍이었습니다. 회사 전체의 한두 사람 만 읽을 수있었습니다.

나중에 동료가 문제에 대해 또 다른 찌르기를했습니다. 그는 메타 프로그래밍을 활용하여 필요한 것을 정확하게 수행하는 대신 메타 프로그래밍이 필요하지 않은 문제에 대한 제약을 완화하기 위해 리더십과 협력했습니다. 보다 정확하게는 메타 프로그래밍이 필요 했을 것 입니다. 그는 메타 프로그래밍이 가장 잘하는 것에 한정 할 수있었습니다.

결과 라이브러리는 현재 매우 광범위한 시장 에서 사용될 수있는 위치에 있으며 , 훨씬 광범위한 개발자가 새로운 코드를 유지할 수 있기 때문에 그다지 중요하지 않습니다. 메타 프로그래밍으로 길을 닦는 것을 자랑스럽게 생각하지만 더 많은 사람들에게 다가 갈 동료의 코드이며 그만한 이유가 있습니다.


72
"메타 프로그래밍"을 다른 스타일, 기술, 기술, 라이브러리로 바꾸면 그 답은 여전히 ​​큽니다!
Andrejs

4
상사는 장기적으로 코드를 유지 관리 할 수 ​​있도록 걱정해야합니다. 대부분의 보스는 코드 유지 관리 기능이 무엇인지조차 모릅니다. 그들은 사실상 기술적 지식이 없기 때문에 오히려 정치적 성격을 가진 결정을 믿지 않을 것입니다.
t3chb0t 11

4
@ t3chb0t : 숙련 된 보스는 고객 서비스에 얼마나 많은 돈을 소비해야하는지 (버그 수정 및 새로운 기능) 비용을 최소화하는 방법을 알고 있습니다. 유지 관리 성은 그 목적을위한 가장 강력한 도구입니다. 그 상사는 기술적 인 세부 사항을 알지 못하지만 그 시점에서 신뢰할 수있는 팀을 구성 할 수 있어야합니다.
mouviciel

25
@DDrmmr 저는 프로그래머가 표준을 높이기 위해 메타 프로그래밍을 사용해야한다고 생각하는 사람에게 어조를 설정했습니다. 나는 그것이 가장 숙련 된 팀원이 그것을 유지할 수있는 곳으로 멍청하다고 생각하지 않습니다. 이 유지할 수 있는 곳에 바보가되어야 하고, 심지어는 더 강하게 팀이 당신없이 그것을 유지할 수있는 곳에 바보가되어야 합니다 . 그렇지 않으면 사람은 스스로 일을하고 있습니다.
Cort Ammon

15
@Joshua 내가 찾은 것은 "유지 보수가 필요없는 코드"와 같은 것은 존재하지 않는다는 것입니다.
Cort Ammon

39

우선, 이것이 팀의 문제이므로 팀과 함께 해결해야합니다. 특정 요소와 구성을 사용하여 프로그래밍을 위해 팀의 백업이있는 경우 수행하십시오. 그렇지 않다면, 그들과 논의하고, 당신이 그들을 설득 할 수없고 왜 "접근법"이 더 나은지 강하게 주장한다면, 그것을 사용하지 않는 것이 더 나을 것입니다.

C ++에서 템플릿 메타 프로그래밍을 사용하는 것은 항상 절충입니다. 물론 응용 프로그램의 특정 부분을 더 건조하게 디자인하는 데 도움이 될 수 있으며 매우 효율적이고 재사용 가능한 라이브러리를 만드는 데 확실히 도움이됩니다.

반면에, 이러한 혜택은 특정 비용으로 올 : 코드는 종종 더 추상적 도착 많이 , 더 열심히 읽을 수 많은 디버깅 더 열심히하고 유지하기 어렵습니다. 이것은 어플리케이션 프로그래밍에서 메타 프로그래밍의 유용성이 종종 의심 스럽다. 따라서 다음 STL을 만들지 않을 것이라고 가정하면 메타 프로그래밍을 사용하려고 할 때마다 그 단점이 실제로 가치가 있는지 스스로에게 물어보십시오. 확실하지 않은 경우 코드 검토 중에 동료 검토 자와 논의하십시오.


동의하지만 코드로 작성하기 전에 품질 관리팀과 논의하십시오. 거부 될 무언가를 만드는 데는 의미가 없습니다.
shawnhcorey

8
어떻습니까 : "동의합니다.하지만 ..."그것을 "로"바꾸면 의미가 완전히 바뀝니다. 시간이 걸리기 전에 항상 QA와 관련이없는 것을 논의해야합니다. 이 논의는 코드 검토에서 시간이 소비 된 후에 이루어져야한다고 언급했습니다.
shawnhcorey

@shawnhcorey : 조직의 "QA"가 코딩 표준에 책임이 있는지 확인하십시오. 그러나 이것은 일반적인 "QA"역할이 아닌 IMHO입니다. 대부분의 조직에서 "QA"라는 용어는 블랙 박스 방식으로 품질 보증을 수행하는 사람들의 그룹을 말하며 프로그래밍 언어의 어떤 요소가 사용되는 것과 그렇지 않은 것. 그러한 사람들은 그러한 세부 사항을 논의 할 프로그래밍에 충분한 자격이 없습니다.
Doc Brown

2
@shawnhcorey : 그것은 바로 제 요점입니다. QA 역할은 조직마다 크게 다릅니다. 많은 조직에서 QA 담당자는 프로그래밍에 대해 전혀 모릅니다. 따라서 이러한 주제에 대해 논의하기에 적합하지 않을 수도 있습니다.
Doc Brown

2
@shawnhcorey : 글쎄요, 당신은 "QA는 일반적인 용어입니다"라고 썼습니다 – 다른 한편으로, 당신은 매우 특정한 QA 역할과 책임을 염두에두고 있습니다-저에게는 약간 모순되는 것처럼 들립니다.
Doc Brown

18

내 일반적인 견해 : 당신이 종종 그렇듯이 다음 세 가지 옵션 중에서 선택할 수 있다면 :

  • 사소한 코드 구조를 손으로 반복해서 입력하십시오.
  • C ++ 템플릿 메타 프로그래밍을 사용하여 코드 생성을 자동화하십시오.
  • 매크로 또는 다른 프로그래밍 언어와 같은 다른 코드 생성 메커니즘을 사용하여 C ++ 소스 파일 생성

그러면 템플릿 메타 프로그래밍이 올바르게 수행되면 세 가지 옵션 중 가장 읽기 쉽고 유지 관리가 쉬울 것입니다. 이것이 내가 당신의 입장에 있다면 팀에게 할 주장입니다. 실제 코드가있는 예제는이를 확신시키는 데 도움이됩니다.

반복을 피하기 위해 Template Meta-Programming ( TMP )을 사용하는 경우 TMP 코드 내에서 복잡성을 지역화하는 잘 문서화되고 신중하게 테스트 된 추상화를 작성하여 올바른 클라이언트 코드를 쉽게 작성할 수 있도록해야합니다. 이것은 C ++ 표준 라이브러리의 디자인입니다.

우리가 작성하려는 코드 유형의 예를 보지 않고 누가 옳고 그른지를 판단 할 수 있다고 생각하지 않습니다.


2
직접 입력하지 않고 복사 + 붙여 넣기를 사용할 수도 있습니다. ;-)
Paŭlo Ebermann

4
@ PaŭloEbermann : 아뇨!
여호수아

2
@ PaŭloEbermann 내가 접근했던 한 가게는 "시작 마크 버그, 엔드 마크 버그, 카피 버그, 카피 버그, 카피 버그"입니다.
Kelly S. French

12

소프트웨어 개발자는 작동하고, 분명히 작동하고, 테스트하고, 검토하고, 검토하고, 디버깅하고, 변경이 필요할 때 조정할 수있는 코드를 작성해야합니다. "클래스와 함께 C"를 작성하면 이것이 달성됩니다.

그리고 이것들은 코드를 측정해야 할 표준입니다. 특히 : 분명히 작동합니까, 테스트하고, 검토하고, 검토하고, 디버깅하고, 필요할 때 조정할 수 있습니까?


9

동정심의 주장 :

당신의 직업은 학습에 자유 시간을 주거나, 아니면 상사들이이 언어 기능들을 배우기 위해 몇 시간을 할당하도록 설득 할 수 있습니까?

그렇지 않다면, 그것들을 사용하는 것이 본질적으로 추가 무급 작업을 제공하는 것입니다. C ++ 프로그래머 전체 언어 또는 이와 유사한 것을 알아야 한다고 생각할 수도 있지만, 학문적 포인트로 인해 부과되는 부담이 완화되지는 않습니다. 동료들에게는 아이, 부모, 병든 배우자, 또는 지옥, C ++ 학습과 관련이없는 합리적인 사회 생활이 있습니다. 귀하의 제안에 대해 성적으로 반대하는 사람은 게으를 수 있습니다.


8

인간이 읽을 수 있도록 코드를 먼저 작성해야하고, 컴파일러가 구문 분석 할 수 있도록 코드를 작성해야합니다.

이제 사소한 TMP에 대해 기억해야 할 것은 그 코드를 읽을 수있는 사람들의 수를 제한하고 있다는 것입니다. 유효한 트레이드 오프가 될 수 있지만, 라이브러리에서 훨씬 더 합리적인 트레이드 오프가 있다고 주장합니다. 작은 전문가 팀이 더 큰 응용 프로그램에 있습니다.

당신이 책에서 모든 트릭을 꺼내면 다른 모든 사람들에게 당신이 악용 한 변호사 코너 사건을 포함하여 언어를 이해해야한다는 점에서 비용을 부과하고, 당신은 또한 막대를 올렸다는 이유로 고용 비용을 부과합니다. 응용 프로그램을 유용한 방식으로 작업하려면 이제 그만한 가치가 있지만 비용을 지켜보십시오 ....

나에게 약간의 타이핑, 아마도 코드 중복 일 수도 있지만 수정이 필요할 때 "C 클래스와 STL을 가진 C"앞에 놓을 수 있다는 것은 내가 유지할 수있는 매우 우아한 TMP보다 훨씬 유용합니다. (따라서 영원히 유지 될 것입니다). 수업 담당자가있는 C는 주제 전문가가 될 수 있으며 전문 지식은 일반적으로 언어 변호사보다 훨씬 가치가 있다는 점을 기억하십시오.

"누군가가 디버깅이 더 어렵다는 것을 알고, 처음부터 작성하는 것을 알고 있으므로, 최대한 영리하게 프로그래밍하면 어떻게 디버깅 할 것인가?"

현대 C ++을 실제로 작성할 수는 있지만 유지 관리 프로그래밍을 덜해야한다는 것을 의미합니다.


7

아닙니다. 스펙을 만족시키는 코드를 작성하는 데 고용되었습니다. 이 코드는 자아 여행이 아닌 유지 관리가 가능해야합니다. 내일 버스를 이용할 수 있기 때문에 누군가 코드를 집어 들고 작업을 진행할 수 있어야합니다. 그러나 고용주가 새로운 기술을 프로그래밍 표준에 통합하도록 설득하는 것은 긍정적입니다.


3
스펙을 만족시키는 코드를 작성하는 데 고용되었습니다. 네,하지만 당신은 그것을 최고의 지식으로 잊어 버리고 있습니다 .
t3chb0t

2

문맥 상이 질문에 대답 할 수있는 유일한 방법은 메타 프로그래밍으로 특정 문제와이를 해결 한 특정 방법을 살펴 보는 것입니다. 여기에 코드를 게시하지 않으면 존재하지 않는 문제를 "해결"하는 것만으로도 재미있는 복잡한 합병증에 빠졌는지 알 수 없습니다. 또는 다른 방법으로는 사용할 수없는 단순하고 우아한 솔루션을 작성하기 위해 언어의 모든 기능을 사용했는지 여부

후자 인 경우 팀과 함께 계속 진행하는 것이 좋습니다 .모든 훌륭한 팀은 스타일 문제뿐만 아니라 프로그래머의 솔루션이 최상의 접근 방식을 사용하는지, 적절한 언어 기능을 사용하는지, 유지 관리 및 테스트가 가능한지 등을 논의하는 의미있는 코드 검토를 수행해야합니다. 메타 프로그래밍 솔루션은 이러한 검토 세션 중 하나를 작성해야합니다. 오후 내내 접근 방식을 거부하는 프로그래머는 대안 (예 : Perl을 사용한 코드 생성, 코드 복제 등)을 제시하고 솔루션과 비교하여 언급 된 기준에 따라 어떻게 수행되는지 보여야합니다. 논쟁에서 친숙한 "우연한"직책은 작업을 빠르게 수행하고 유지 관리가 쉽고 테스트가 쉽고 코드를 실제로 읽을 수 있다는 것을 보여주는 것입니다. 재미있는 문법을 파싱.

대부분의 프로그래머는 게으 르며 우아하고 작은 솔루션을 즐깁니다. 당신이 하나라면, 특히 대안이 부족한 경우, 당신은 그들을 설득 할 수 있습니다.


0

이 질문에 대한 하나의 정답은 없습니다.

가장 먼저 자문해야 할 것은 다음과 같습니다. 어떤 상황에서 고용에 의해 배치됩니까? 어떤 사람들은 실제로 사양을 코딩하기 위해 코드 원숭이로 고용되고, 어떤 사람들은 팀 선수로 고용되고, 다른 사람들은 지식 근로자 또는 전문가로 고용됩니다.

유일한 최종 결론은 고용주의 관점에서 볼 필요가 있다는 것입니다. 본질적으로 이것이 직원이라는 의미이기 때문입니다. 때로는 동료가 더 나아지고 고급 기술을 습득하도록 고용주에게 최선의 이익이되는 경우가 있습니다. 그러나 다른 상황에서는 많은 문제와 부채를 발생시키고 관련된 프로젝트의 성공을 위험에 빠뜨릴 수 있습니다.


-4

문제는 실제로 메타 프로그래밍이 올바른지 아닌지에 대한 것이 아니라 팀의 다른 사람들보다 나은 것이 좋은지에 관한 것입니다. 그래서 여기에 내가 어떻게 보는지에 대한 몇 가지 논란이 있습니다 ...


나는 최근에 더 큰 팀에서 일하고있는 새로운 직장으로 옮겼는데,이 [메타 프로그래밍]은 동료들을 이해하지 못하기 때문에 일부 동료들을 걱정합니다.

그들은 당신이 그들보다 낫다는 것을 걱정합니다. 잘 됐네요 당신은 새로운 전문가가 될 것입니다. 당신은 그들의 현 상태 세계를 파괴했습니다.


나는 항상 언어의 잠재력을 최대한 활용하려고 노력하지만, 동료의 일부 (전부는 아님)가 위험으로 인식합니다 (일부는 환영합니다).

물론, 다른 누구보다 숙련도가 떨어지는 사람은 아무도 없기 때문에 너무 복잡한 기술을 사용하지 못하게합니다. 그들은 안전하다고 느끼기 때문에 그것을 이해할 수 없거나 가지 않을 것입니다.


팀의 다른 누구도 이해할 수없는 코드를 작성하는 것이 문제라는 데 동의합니다.

난 아니야 나는 그것이 당신의 전문 지식을 보여주는 것이라고 생각합니다.


내 질문은 누가 옳은가, 어떻게해야합니까?

모든 기술을 사용하여 작성할 수있는 최상의 코드를 작성해야하며 이해하지 못하는 사람을 뒤돌아 보지 마십시오. 그렇지 않으면 당신은 그들의 수준에 갇히게 될 것이고 보통 코더가 될 것입니다. 다른 사람보다 나아지는 것이 좋으며, 그들보다 나아지기 위해 노력하는 것이 좋습니다. 새로운 것을 사용하거나 다르게 행동하지 않으면 새로운 경험을 얻지 못할 것입니다.


제가 다운 보트 될 것임을 알고 있지만 이것이 어떻게 생겼는지입니다. 팀의 다른 사람들보다 나은 것은 범죄가 아니며 기술을 사용하는 것은 범죄가 아닙니다. 그것은 모두가 그것을 인정하는 것을 두려워하는 것입니다 ... 그들은 기술이없는쪽에 있기 때문에 새로운 사람이 갑자기 할 수없는 일을 할 수 있다는 것을 싫어하기 때문입니다 . 그들이 영리하다면 도움과 조언을 구하고 이해하기 어려운 코드를 비판하지 않습니다.


편집하다

이 질문에 대해 많은 혼란이있는 것 같습니다. 의견에서 알 수 있듯이 많은 사람들은 일반적인 코드 가독성에 대해 생각합니다. 아뇨. 일부 팀원이 이해하지 못하기 때문에 특정 언어 기능 / 구문을 금지하거나 피해야하는지에 관한 것입니다.

내 대답은 아니요 입니다. 금지해서는 안됩니다. 무언가를 금지하고 싶다면 어떻게 하시겠습니까? 팀원들이 할 수있는 것과 할 수없는 것을 찾기 위해 어떤 종류의 설문지를 준비해야합니다. 또는 모든 언어 기능이 어딘가에 유용하기 때문에 배우고 싶지 않기 때문에 배우고 싶지 않습니다. 좋을수록 더 좋은 코드를 작성할 수 있습니다. 또한 초보자, 중급 또는 고급 기능을 정의 할 수있는 스케일이 필요합니다.

이러한 제한이 얼마나 어리석은지를 보여주기 위해 실제로 간단한 예를 들어 보겠습니다. 소프트웨어 엔지니어로 고용되지만 미래의 상사는 do/while두 사람이 있기 때문에 루프 를 사용할 수 없다고 알려줍니다 이전에는 사용하지 않았으며 항상 for모든 것에 루프를 사용하여 루프가 do/while혼란스러워 지기 때문에 사용하지 않는 팀 .

이제 당신은 이것이 멍청하고 미쳤다고 생각합니까? 그러나 다른 기능도 금지됩니다. 어떤 사람들은 그것들을 사용할 수 있고 다른 사람들은 배우기를 원하지 않습니다.

훨씬 적은 노력으로도 똑같이 할 수 있지만 훨씬 더 읽기 쉬운 코드를 만드는 것을 알고 있다면 더 나쁜 코드를 생성해야하는 이유는 무엇입니까?

기본 언어 기능 만 사용하거나 고급 기능 만 사용하더라도 중요하지 않으며 유지 관리가 불가능한 코드를 생성하여 완전히 다른 주제가 될 수 있습니다.


10
이 대답은 끔찍합니다. 메타 프로그래밍은 최고를 의미하지 않습니다 그 반대
polfosol

9
내 경험상, 다른 팀보다 훨씬 높은 수준의 전문 지식을 갖고 있다고 느끼는 사람은 실제로 Dunning-Kruger 효과에 희생되었습니다. 즉, 어떤 사람들은 다른 사람들보다 훨씬 숙련 되지 않았 거나이 경우 팀의 나머지는 실제로 무능하지 않다는 말은 아니지만 진정한 전문가는 항상 간단한 코드와 큰 그림에 중점을 둘 것입니다 스타일 포인트 만 프로그래밍하는 것이 아니라 엔지니어링 (시간이 지남에 따른 팀 효과 설명 포함).
Daniel Pryden

3
다른 사람이 읽을 수없는 코드를 작성한다고해서 자신이 더 낫다는 것을 증명하지는 않습니다. 읽을 수있는 코드를 작성할 수 없음을 증명합니다.
Stig Hemmer

3
@ StigHemmer 분명히 당신은 질문을 이해하지 못했고 주제를 변경하고 있습니다. 읽을 수없는 코드가 아니라 지식이 부족하여 다른 사람들이 이해할 수없는 코드에 관한 것입니다.
t3chb0t

4
@ t3chb0t 내 요점은이 둘이 같은 것입니다.
Stig Hemmer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.