깨끗한 코드가 개발을 개선했다는 것을 설득력있는 사례 연구가 있습니까? [닫은]


13

나는 프로그래머로서의 첫 번째 실제 직업에 있고 내가 보는 것은 단지 "Big Ball of Mud"코드 (유용한 주석이 없음)이지만 깨끗한 코드를 좋아하고 더 나쁜 코드를 작성하는 것은 정말 어렵다 방법.

깨끗한 코드의 사용 (여기서 깨끗한 코드에 대한 다양한 정의를 볼 수 있음)이 개발 및 유지 보수성을 개선 한 연구 사례를 찾고 있습니다.


1
누군가가 깨끗한 코드 대 진흙에서 버그를 추적해야 할 때마다
ratchet freak

@ratchetfreak : OP가 조직에서 코드를 정리 해야하는 이유에 대한 논쟁을 사용하기 위해 공개 연구를 찾으려고 생각합니다.
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner 네,하지만 회사에 "인수"라는 주장을하지 않습니다. 작은 도시에서 동시성이없는 (적어도 다른 생각으로) 오래된 기술을 사용하는 16 년 된 회사입니다. 그것은 단지 약간의 호기심이며 "나쁜 코드"에 굴복하지 않도록 격려 할 필요가 있습니다.
Renato Dinhani


"깨끗한 코드"만이 시스템을 유지 관리 할 수있는 것은 아닙니다. 따라서 INMO라는 그러한 연구는 결과에 기여하는 다른 많은 요인들로부터 한 요인을 분리하기 어렵 기 때문에 수행하기 어려울 것입니다.
NoChance

답변:


4

Google Scholar 의 빠른 검색 (그러나 철저한 검색 은 아님) 은 Bob Martin의 Clean Code 와 관련된 많은 기사를 표시 하지만, "clean code"와 개선 된 개발 사이의 상관 관계를 다루는 논문은 개인적으로 보지 못했습니다.

그러나 질문에 대해 잠시 생각해보십시오. 개선 된 개발에 대해 질문하고 있으며, 그 자체로는 단순히 더 나은 코드를 작성하는 것뿐만 아니라 커뮤니케이션, 기대치 관리, 방법론 및 프로세스 능률화, 테스트, 지속적인 통합 및 실제로 같은 많은 다른 요소에 의해 다루어지는 매우 광범위한 주제 영역입니다. 소프트웨어 개발 프로젝트를 성공적으로 만드는 데 몇 가지가 필요한지 고려할 때 전체 상자와 주사위.

따라서 깨끗한 코드를 작성하는 것이 소프트웨어 개발 향상에 기여합니까? 그에 대한 대답으로, 내가 제공 할 수있는 유일한 "증거"는 전적으로 일 화일 뿐이며, 클린 코드 (Clean Code) 책은 밥 마틴 (Bob Martin) 자신이 쓴 것이 아니라 많은 장이 공헌 한 훌륭한 참고 자료 라고 생각합니다. 가장 똑똑한 소프트웨어 개발자 중 일부가 그래도 도움이되지 않으면 약간의 냉혹 한 논리가 적용될 수 있습니다.

집에 엉망이 생기고 집안 청소를하지 않으면 집에 사는 것이 번거로운 일이 될 것입니다. 물건을 찾기가 더 어려워지고, 이동하기가 더 어려워지고, 더러운 환경에 살면 올바른 마음으로 아무도 당신을 방문하기를 원하지 않을 것입니다. 코드도 마찬가지입니다. 코드가 엉망인 경우 문제를 해결하기는 어렵지만 문제를 찾기가 더 어렵다는 것을 알게됩니다. 일을하지 않을 수도있는 해결 방법을 정당화하는 것이 더 쉬워 지지만, 모든 오래된 레거시 멍청이를 극복해야한다는 것이 확실합니까? 결국 집을 정리하지 않는 것처럼 코드를 어수선하게 만들려면 시간과 노력이 들며 장기적으로 어려움을 겪게됩니다. 그러나 코드를 깨끗하게 유지하면 작업하기에 더 좋은 플랫폼을 제공하고 리팩토링 및 디버깅 작업을 줄일 수 있습니다.

아니요, 나는 당신에게 줄 직접적인 증거가 없으며, 이것은 단지 오랫동안이 일을 해 왔으며 그 과정에서 약간의 소프트웨어 개발 지혜 를 얻은 사람에 대한 생각 일뿐 입니다. :-)


좋은 대답입니다. 문제는 실제로 당신이 지적한 것입니다.
Renato Dinhani

좋은 비유, 깨끗한 직장이나 가정이 생산성을 향상 시킨다는 연구가 있습니까?
Bob

15

이해해야 할 것은 평범한 코드를 작성하는 회사가 없다는 것입니다. 문제는 코드의 50 %가주고 받거나 회사의 평균 프로그래머가 작성한다는 것입니다. 깨끗한 코드의 이점을 설명 할 때 성가대에게 설교하고 있습니다. 요령은 그것을 하는 방법 입니다. 동료 검토 도구, 정적 분석, 자동화 된 테스트, 지속적인 통합, TDD, 스크럼, 극단적 인 프로그래밍 등과 같은 것에 대해 조사하고 문제가 왜 나쁜지 설명하는 대신 잠재적 인 솔루션을 제시하십시오.


5

나는 이것이 결정에 반대 할 것이라는 것을 알고 있지만 시장에 출시 할 시간이 필요합니다. 요구 사항을 올바르게 작성하고 올바른 자금 조달, 좋은 마케팅, 올바른 가격 및 일반 행운이 코드 품질보다 소프트웨어 제품 성공에 훨씬 더 많은 영향을 미칩니다.

이다 NOT 당신은 단지 하나의 많은 요인이다 인정한다, 코드 품질은 무시해야 말을하지만.

매우 성공적인 제품에는 단순히 끔찍한 코드의 많은 예가 있습니다 (예 : 스레드 관리를 응용 프로그램에 남겨둔 원래 Apple OS).

나쁘게 생각되거나 비싼 제품을 극복하는 아름다운 코드의 예를 생각할 수 없습니다.

따라서 출시 시간과 예쁜 코드의 경우 출시 시간이 우선해야합니다!


1
나는 당신에게 완전히 동의합니다, 이것이 일어나는 일입니다. 고객은 만족하고, 경영진은 만족하고, 프로그래머는 코드로 마술을하기 위해 열심히 노력하고 결코 만족하지 않습니다.
Renato Dinhani

3

깨끗한 코드를 실제 목표와 분리해야합니다. 배포 후 결함 수정 비용을 줄이고 불필요한 재 작업을 줄입니다. "버그를 줄이기 위해 깔끔한 코드 작성"에 대해 이야기 할 때 종교에 대해 이야기하는 것입니다. "프로젝트에서 2 개월 간의 노력을 10 % 절약하여 결함률을 줄이면"에 대해 이야기하고 있습니다. 클린 코드는 코드베이스의 초기 품질을 향상시켜 총 비용을 낮추는 도구이지만 많은 것 중 하나입니다.

다음 백서는 비용 관점에서 처음으로 올바르게 얻는 것이 중요한 이유를 설명합니다. http://www.cs.umd.edu/~mvz/pub/eworkshop02.pdf


1

나는 구체적인 연구를 알지 못하지만 Steve McConnell의 작업을 확인하십시오 .

누군가 가지고 있다면 그는 할 것입니다. 예를 들어, 2 분의 스캔 이 이것을 발견 했습니다 (16 살이지만 오늘날에도 여전히 관련이 있습니다).


1

mattnz의 답변에 추가하려면 아직 코드 완성 : Steve McConnell 의 소프트웨어 구성대한 실용적인 핸드북을 확인하십시오 . 코딩이 향상 될 것이라는 사실 외에도 다양한 코딩 방법이 프로그램의 품질에 어떤 영향을 미치는지에 대해 책 전체에서 수많은 연구를 인용합니다.

예를 들어 (책에서) :

서로 다른 450 가지 루틴에 대한 또 다른 연구 (단지 우연의 일치 임)는 결합-응집 비율이 가장 높은 루틴이 결합-응집 비율이 가장 낮은 루틴보다 7 배 많은 오류를 가지고 있으며 비용이 20 배나 많은 것으로 나타났습니다. 수정 (Selby and Basili 1991).

또한 모든 프로그래머가 읽어야 할 가장 영향력있는 책은 무엇입니까? (나는이 질문에 대한 답변이 최근에 절름발이로 재구성 된 것을 본다)

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