프로그래머를 고용하기로 한 결정에는 좋은 코딩 스타일이 얼마나 중요합니까? [닫은]


15

학생이더라도 시험을 통과하지 않은 프로그래머 코드를 검토하라는 요청을 받았습니다 (안드로이드에 피보나치 번호 목록 만들기).

코딩 스타일이 매우 엄격하지만 누군가가 사용한 "블록"스타일에 대해 읽었습니다 (주석 읽기!) .

제 입장에서는 이런 스타일을 사용하는 사람을 고용하지 않는 것이 좋습니다. 코드는 회사에서 사용하는 코딩 스타일과 완전히 반대입니다.

코딩 스타일과 그것의 부족을 처리하는 방법을 검색하는 동안 나는 한 가지에 대해 궁금합니다.심각한 문제 회사에서 사용되는 코딩 스타일을 적응 시키는가?

참고 : 이것은 일반적으로 코딩 스타일에 대한 논의 가 아니며 어떤 것이 더 좋습니다. 그것은 누군가를 고용하기로 한 결정에 대한 코딩 스타일의 중요성에 관한 것입니다!

추가 정보:

나는 결정을 내리는 사람이 아니며 코드를 기반으로 의견을 제시합니다. 그 사람은 무엇이든 우리의 머리가 부드러운 기술을 확인하는 인터뷰를 통과해야합니다. 그가 이것을 통과하면, 그는 우리의 작은 기술 테스트를 통과해야하며, 때로는 서면 코드를 검토하라는 메시지가 표시됩니다. 나는 '예'또는 '아니요'라고 말할 수 없습니다. 리뷰에 코딩 스타일이 얼마나 중요한지 알고 싶습니다 ...


9
영리한. "심각한 문제 적응"(사실에 의해 뒷받침되지 않는)을 제거하는 대신에 그것을 통해 선을 긋습니다. 마치 다른 사람의 태도에 대한 근거없는 주장이 실제로 바뀌는 것처럼.
S.Lott

2
코딩 스타일은 가장 중요하게 고려해야 할 사항입니다. 결국, 그것은 단지 코드입니다.
SK-logic

7
귀하의 질문을 읽으려고했으나 형식을 따르기가 어렵다는 것을 알게되었습니다. 단락에 시작 들여 쓰기를 추가 할 수 있습니까? 'K THX BAI
dietbuddha

2
코드 일관성 (또는 부족)은 지표입니다. 예를 들어 누군가 코드를 정리할 시간이 없다면 아마도 서브 버전에서 새로운 프로젝트를 수행 할 적절한 장소를 찾을 시간이 없을 것입니다. 아마도 리팩토링 할 시간이 없을 것입니다. 목록은 계속됩니다.
Kevin

10
코딩 스타일은 엄청나게 쉽게 조정할 수 있습니다. "이 사람은 검은 색 정장을 입지 만 회사에서는 직원들이 어두운 회색 정장을 입는 것을 선호합니다. 직원을 고용해야합니까?" 회사에서 가지고있는 스타일 규칙을 알려주십시오. 문제 해결됨.
juicy lucy

답변:


41

그가 적응하는데 문제가 있다는 것을 어떻게 알 수 있습니까? 다른 코딩 스타일을 사용하기 때문에? 꽤 뻔뻔 스럽습니다. 나는 오랫동안 계약자였으며 어떤 코딩 스타일을 사용하든 상관없이 적응합니다. 다소 시간이 걸릴 수 있지만 습관은 꽤 빨리 형성됩니다.

코딩 스타일이 코드의 들여 쓰기와 레이아웃을 의미하지는 않기를 바랍니다. 코드 포매터를 사용하여이를 버전 제어 시스템에 통합하는 것이 쉽게 처리됩니다.

코딩 스타일을 사용하여 명명, 일반 순서, 단위 구분 및 가독성 및 유지 관리 성을 다루는 기타 모든 것을 의미하는 코딩 스타일의 가장 중요한 점은 코딩 스타일입니다. 어느 쪽이 아닙니다. 코딩 스타일이없는 것은 확실한 레드 플래그입니다.

어떤 코딩 스타일을 사용하든 두 번째로 중요한 것은 일관성있게 사용한다는 것입니다. 누군가가 코딩 스타일을 사용하는 것처럼 보이지만 자주 그것에 대해 "사인"을하는 것은 또 다른 분명한 플래그입니다.


5
+1이 없거나 일관되게 사용하지 않는 것은 '레드 플래그'이며 다른 스타일을 갖는 것은 아닙니다.
jv42

1
나는 "적어도 일관되게 사용"하는 것에 전적으로 동의합니다. 코드를 검토 할 때 가장 중요합니다. 그러나 코드 스타일 / 코드 형식은 외부 코드를 볼 때 가장 먼저
느끼는

3
@ WarrenFaith : 그래서 당신은 표지로 책을 판단? :-) 진심으로, 예, 첫 인상을 주지만, 인터뷰 할 때 자신의 현재 스타일이 자신의 스타일과 일치하지 않기 때문에 그 이상을 보살 피고 완벽하게 유능한 개발자를 전념하지 않을 것이라고 가정합니다.
Marjan Venema 2016 년

일관성 +1 : 스타일이 부족하면 일반적으로 많이 쓰지 않았 음을 나타냅니다. 쓸 때 습관을 선택하십시오.
Matthieu M.

1
자동 코드 포맷터가 싫지만 필요에 동의 할 수 있습니다. 그들은 단지 모든 잘못된 장소에서 줄 바꿈을 선택하는 것 같습니다. 예, 일식에 대해 이야기하고 있습니다.
Kevin

27

거의 백여 명의 고객을 위해 수백 가지 프로젝트에서 프로그래밍을 해왔으므로 한 가지 점을 강조하겠습니다.

코딩 스타일 (및 코딩 스타일에 대한 문제)은 완전한 시간 낭비입니다.

극복 해

많은 다른 프로그래머들로부터 많은 코드를 읽었습니다. (중앙 팀 규모는 5 ~ 100 개의 서로 다른 팀으로 가정합니다. 500 명입니다.) 스타일은 중요하지 않습니다.

나는 병리학 적으로 잘못된 코드를 보았습니다.

[제한이 있습니다. 의도적 인 난독 화는 해지 사유입니다. 짧은 스타일은 시간 낭비입니다.]

코딩 스타일은 "최종 경계"

소프트웨어 개발의 모든 문제를 해결 한 경우 오류가없는 코드를 거의 또는 전혀 즉시 생성 할 수있는 경우 품질 수준이 너무 높으면 더 이상 버그 수정 대기열이 없습니다. 유용성이 너무나 멋진 경우에는 더 이상 헬프 데스크가 없습니다. 서버 팜이 없지만 iPad에서 엔터프라이즈를 실행하는 지점까지 무자비하게 최적화 할 수 있다면 ...

해결해야 할 것이 없으면 코딩 스타일에 집중할 수 있습니다.

그때까지는 스타일보다 더 크고 가치있는 문제가 많이 있습니다.


2
@ WarrenFaith : 나는 이것을 강력하게 말할 수 없습니다. 그것은 중요하지 않습니다. 내 요점을 반복하겠습니다. 나는 수백, 수백 명의 프로그래머로부터 (전문적으로, 유료, 청구 가능한 시간) 코드를 읽었습니다. 그것은 중요하지 않습니다. 첫인상이 아닙니다 : 정확성과 선명도가 첫인상입니다.
S.Lott

2
@WarrenFaith : 의도적 인 모호함은 거의 없습니다. "코드를 읽을 수 없다면"글쓴이만큼 독자의 문제 일 수 있습니다. 내 요점을 반복하겠습니다. 나는 수백, 수백 명의 프로그래머로부터 (전문적으로, 유료, 청구 가능한 시간) 코드를 읽었습니다. "간단히 읽을 수 없습니다"는 발생하지 않았습니다. 스타일은 중요하지 않습니다.
S.Lott

2
코딩 스타일 (및 코딩 스타일에 대한 문제)은 완전한 시간 낭비입니다. -두 번째 포인트는 100 %, 첫 번째 포인트는 약 40 %에 동의합니다. 코딩 스타일은 중요합니다. 코딩에 스타일이 전혀 없다면. 있다면, 그 모습이 그다지 중요하지 않습니다.
Treb

4
@ WarrenFaith : 샘플을 보았는데 명확하지 않은 것은 없습니다. 형식을 지정할 수있는 형식이 아니지만 코드가 작동하지 않음을 나타내는 것은 없습니다. 확실하지 않습니다. 글을 쓴 사람이 팀 표준을 준수 할 수 없거나 의지 할 것임을 암시하는 것은 없습니다. @ S.Lott가 맞습니다. 중요하지 않습니다.
Joel Etherton

4
그리고 //Important모든 라인에서 사용 합니다. 아헴. 모든 코드 줄이 중요하거나 삭제해야합니다.
S.Lott

7

코딩 스타일에 기반한 프로그래머 판단은 스노 버 50 %, 불안 50 %입니다.

나는 내 코드가 깔끔하고 깔끔하게 보이기를 좋아하며 OP가 링크에서 비웃은 사람처럼 들린다. 우리의 코드는 동일하게 보이지 않지만, 코드로 돌아올 때 코드를 이해하는 데 도움이되는 스타일을 사용합니다. 나는 그의 코드를 이해하는 데 전혀 어려움이 없었으며 OP가 그랬다는 것을 의심합니다. 코딩 스타일 "조언"은 왜 중괄호가 다음 줄에 있어야하는지에 대한 엄청난 지혜를 전달할 수있는 손쉬운 샷입니다. 전혀 중요하지 않습니다. 코드를 읽기 어려운 이유는 다음과 같습니다.

  • 그들이 나타내는 것을 설명하지 않는 미친 명명 규칙 (또는 부족).
  • 무슨 일이 일어나고 있는지 말하기 어려운 프로그램 흐름 (goto, try / catch with business logic 등).
  • 뇌가 추적 할 수있는 것보다 더 많은 일을하는 정신없이 긴 기능.

위에 나열된 것을 수행하지 않았지만 특히 스타일 경찰과 같은 도구를 사용하여 읽기가 어려운 코드를 상상하는 데 어려움이 있습니다.


7

그건 말도 사람을 고용하기로 결정 때 코드 형식이 요인이 될 수있다 할 수 있습니다.

  1. 고려해야 할 더 중요한 요소가 많이 있습니다.
  2. 대부분의 개발자는 자신의 스타일을 적용 할 수 있습니다.
  3. 포맷이 중요한 경우 코드 포맷터와 보푸라기 검사기를 사용하십시오.

쉼표가 어리석은 후에 공백을 추가하지 않기 때문에 좋은 개발자를 고용하지 않습니다.


4

회사에 공식 서식 스타일이 있다고 가정합니다.

그런 다음 모든 소스를 공식 스타일로 쉽게 다시 포맷하고 소스 파일을 저장할 때마다 자동으로 발생하도록하는 것이 좋습니다.

그의 소금 가치가있는 프로그래머라면 커밋의 차이를 최소화하여 더 높은 품질을 보장하기 때문에 이것을 좋아하게 될 것입니다.


커밋 문제를 잊어 버렸습니다 ... 그렇습니다. 공식 서식 스타일과 저장하기 전에 자동 서식도 있습니다.
WarrenFaith 2016 년

@Warren, 그렇다면 인터뷰에서 그렇게 말하고 프로그래머가 이것이 중요하다는 것을 이해하도록하십시오. 그가 일을 계속하고 싶다면 약속을 지키는 것은 그에게 달려 있습니다.

4

StyleCop 사용

Visual Studio를 사용하는 경우 컴파일 할 때 항상 StyleCop 규칙을 적용하여 코드를 읽을 수있는 상태로 만들 수 있습니다.

읽을 수없는 코드는 아마도 비표준 스타일 일 것입니다 . 저자 자체조차도 앞으로 유지하기매우 어려워 질 것입니다 . 이것은 과거에 여러 번 입증되었습니다.

CVS 통합 코드 형식 = 최적 솔루션

CVS가 체크인시 자동 코드 형식을 지원할 수 있다면 정말 좋을 것입니다. 스타일 우선 순위를 설정하면 코드가 저장되기 전에 형식이 지정됩니다. 그러면 코드 형식에서 개발자 고유 스타일이 더 이상 사용되지 않습니다. 일부 개발자가 다른 들여 쓰기 문자를 사용하는 경우 문제를 볼 수 있습니다. 다른 코드를보고 (쉽고 빠르게 다시 포맷 할 수 있음) 그리 문제가되지 않지만 DIFF는 처리하기가 더 어려워집니다. DIFF 도구에 많은 오 탐지가 있습니다.


그렇다면 ... 어떤 회사가 자체 C # 코딩 표준을 개발했다면 그게 위험할까요?
Job

1
@Job : StyleCop이 추가 규칙을 추가 할 수 있기 때문에 반드시 그런 것은 아닙니다. 나는 처음에는 없었던 SPACE에 TAB을 적용하는 두 가지를 썼다는 것을 알고 있습니다. 그러나 아이디어는 코딩 스타일을 강요 하여 균일 한 코드를 훨씬 쉽게 만들 수 있다는 것입니다.
Robert Koritnik

스타일이 StyleCop의 스타일로 다시 돌아간 경우, StyleCop을 전혀 사용하지 않는다면 어떻게됩니까?
Job

@일. 누군가가 오래된 Fortran (80 열 고정 레이아웃 사람) 인 것처럼 C # 코드를 작성하지 않으면 코딩 스타일을 준수해야한다고 생각합니다. 누군가가 좋은 개발자 인 경우 당신은 그들의 스타일을 개선하는 그들을 생각 나게 (또는 그들을 통해 자신의 스타일을 정당화 할 수있는 우리를 ). 그것이 코드 검토의 목적입니다. 모든 코드는 신속하게 다시 포맷 할 수 있지만 최소한 명명 규칙을 따라야합니다. 그러나 결코 고용을위한 적기입니다. 해서는 안됩니다.
Robert Koritnik 2018 년

3

다음의 훨씬 더 중요한 세부 사항보다 훨씬 아래에 있습니다.

  • 팀 맞춤
  • 문제 해결 능력
  • 통신

코딩 스타일은 위에 나열된 마지막 두 가지를 가진 대부분의 사람들이 배울 수 있습니다.

그러나 일반적으로 최종 인터뷰 전에 코드 샘플을 볼 수 있으며 코딩 스타일이 우리가 사용하는 것보다 먼 길이면 적응 능력을 드러내는 질문에 중점을 둘 것입니다.


내 경우에는 종종 그 남자에게서 볼 수있는 유일한 것입니다 ...
WarrenFaith

@WarrenFaith-좋아,하지만 정보가 거의없는 사람을 고용하기로 한 손으로 결정하지는 않습니까? 당신은 의견을 요구하고 있습니다.
pdr

진실. 저는 기술적 인 관점에서 저의 의견을 제시하며 부드러운 기술도 중요합니다. 그리고 우리는 최소한 인터뷰에서 소프트 기술 "테스트"를 통과 한 사람 만 테스트합니다. 그러나 코딩 스타일이 제 의견에 미치는 영향이 궁금합니다 ...
WarrenFaith

@WarrenFaith-당신의 입장에서, 나는 그것을 언급 할 것이지만, 매우 중요한 것보다는 주석으로 언급합니다.
pdr

나는 기본적으로 프로와 콘트라의 목록을 만들고 CTO를 위해 설명하고 정당화합니다. 최종 결정은 그에게
달려있다

3

스타일이 일관되고 그 사람이 다른 스타일에 적응 (변경) 할 수있는 한 문제가 없습니다.

현재 스타일이 사용하는 스타일과 다르더라도 나쁜 것은 아닙니다. 후보자에게는 완전한 의미가 있습니다.

다른 사람들이 말했듯이 적응에 문제가있는 것이 유일한 문제 일 수 있습니다.


0

나는 이것이 확실히 고용이 없다고 말하지는 않지만,이 사람에 대한 강력한 논증이다.

실제로 코딩 스타일에 대해서는 걱정하지 않지만 일반적인 문제의 증상으로 적응할 수 없다는 점에 대해서는 걱정하지 않아도됩니다. 후보자가 팀 문화의 다른 측면에도 적응하기가 어렵다는 것을 두려워 할 것입니다.

낙타 스타일 케이싱 대신 파스칼 스타일을 사용하여 마음을 감쌀 수 없다면 마지막 컵을 가져 가면 새로운 커피 배치를 시작하는 것을 기억하는 데 어려움이있을 수 있습니다. 이런 종류의 일은 팀에 정말 해로울 수 있습니다.

(그렇습니다, 나는 카페인 중독자입니다.)


"나쁜 코딩 스타일"에서 발생하는 문제는 종종 경험이없는 것입니다. 내가 가장 초보자를 볼 때 종종 코딩 스타일이라고 할 수있는 것이 부족합니다.
WarrenFaith 2016 년

?? "이 사람에 대한 강력한 논증"... "실제로 코딩 스타일에 대해 걱정하지 마십시오". 무엇 이니? 중요하지 않습니까? 당신의 조언이 무엇인지 대답하기가 어렵습니다. 명확히 해 주시겠습니까?
S.Lott

@ S.Lott : 이게 뭐야? -물론입니다. 나쁜 코딩 스타일은 나쁜 습관이며, 대부분의 사람들은 그것을 버리는 법을 배울 수 있습니다. 그들이 당신에게 문제가 있다는 것을 배울 수 없거나 배울 수 없을 때입니다.
Treb

0

제 생각에는 프로그래머가 작업하기 위해서는 좋은 코드 스타일이 필수적입니다.

좋은 코드 스타일을 갖는 것은 개인 개발의 문제입니다. 이 프로그래머가 이미 어느 수준에 도달했는지 표시합니다.

문제는 회사가 "높은 전문가"또는 "높은 잠재력"을 원하는지 여부입니다. "고급 전문가"가 필요하고 학습과 발전의 여지가없는 경우 코드 스타일은 필수 조건입니다.

진화의 여지가 있고 프로그래머가 개발 될 수 있다면, 빨리 배우거나 창의적으로 생각하는 능력에주의를 기울이는 것이 좋습니다.

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