나는 프로그래머로서의 첫 번째 실제 직업에 있고 내가 보는 것은 단지 "Big Ball of Mud"코드 (유용한 주석이 없음)이지만 깨끗한 코드를 좋아하고 더 나쁜 코드를 작성하는 것은 정말 어렵다 방법.
깨끗한 코드의 사용 (여기서 깨끗한 코드에 대한 다양한 정의를 볼 수 있음)이 개발 및 유지 보수성을 개선 한 연구 사례를 찾고 있습니다.
나는 프로그래머로서의 첫 번째 실제 직업에 있고 내가 보는 것은 단지 "Big Ball of Mud"코드 (유용한 주석이 없음)이지만 깨끗한 코드를 좋아하고 더 나쁜 코드를 작성하는 것은 정말 어렵다 방법.
깨끗한 코드의 사용 (여기서 깨끗한 코드에 대한 다양한 정의를 볼 수 있음)이 개발 및 유지 보수성을 개선 한 연구 사례를 찾고 있습니다.
답변:
Google Scholar 의 빠른 검색 (그러나 철저한 검색 은 아님) 은 Bob Martin의 Clean Code 와 관련된 많은 기사를 표시 하지만, "clean code"와 개선 된 개발 사이의 상관 관계를 다루는 논문은 개인적으로 보지 못했습니다.
그러나 질문에 대해 잠시 생각해보십시오. 개선 된 개발에 대해 질문하고 있으며, 그 자체로는 단순히 더 나은 코드를 작성하는 것뿐만 아니라 커뮤니케이션, 기대치 관리, 방법론 및 프로세스 능률화, 테스트, 지속적인 통합 및 실제로 같은 많은 다른 요소에 의해 다루어지는 매우 광범위한 주제 영역입니다. 소프트웨어 개발 프로젝트를 성공적으로 만드는 데 몇 가지가 필요한지 고려할 때 전체 상자와 주사위.
따라서 깨끗한 코드를 작성하는 것이 소프트웨어 개발 향상에 기여합니까? 그에 대한 대답으로, 내가 제공 할 수있는 유일한 "증거"는 전적으로 일 화일 뿐이며, 클린 코드 (Clean Code) 책은 밥 마틴 (Bob Martin) 자신이 쓴 것이 아니라 많은 장이 공헌 한 훌륭한 참고 자료 라고 생각합니다. 가장 똑똑한 소프트웨어 개발자 중 일부가 그래도 도움이되지 않으면 약간의 냉혹 한 논리가 적용될 수 있습니다.
집에 엉망이 생기고 집안 청소를하지 않으면 집에 사는 것이 번거로운 일이 될 것입니다. 물건을 찾기가 더 어려워지고, 이동하기가 더 어려워지고, 더러운 환경에 살면 올바른 마음으로 아무도 당신을 방문하기를 원하지 않을 것입니다. 코드도 마찬가지입니다. 코드가 엉망인 경우 문제를 해결하기는 어렵지만 문제를 찾기가 더 어렵다는 것을 알게됩니다. 일을하지 않을 수도있는 해결 방법을 정당화하는 것이 더 쉬워 지지만, 모든 오래된 레거시 멍청이를 극복해야한다는 것이 확실합니까? 결국 집을 정리하지 않는 것처럼 코드를 어수선하게 만들려면 시간과 노력이 들며 장기적으로 어려움을 겪게됩니다. 그러나 코드를 깨끗하게 유지하면 작업하기에 더 좋은 플랫폼을 제공하고 리팩토링 및 디버깅 작업을 줄일 수 있습니다.
아니요, 나는 당신에게 줄 직접적인 증거가 없으며, 이것은 단지 오랫동안이 일을 해 왔으며 그 과정에서 약간의 소프트웨어 개발 지혜 를 얻은 사람에 대한 생각 일뿐 입니다. :-)
나는 이것이 결정에 반대 할 것이라는 것을 알고 있지만 시장에 출시 할 시간이 필요합니다. 요구 사항을 올바르게 작성하고 올바른 자금 조달, 좋은 마케팅, 올바른 가격 및 일반 행운이 코드 품질보다 소프트웨어 제품 성공에 훨씬 더 많은 영향을 미칩니다.
이다 NOT 당신은 단지 하나의 많은 요인이다 인정한다, 코드 품질은 무시해야 말을하지만.
매우 성공적인 제품에는 단순히 끔찍한 코드의 많은 예가 있습니다 (예 : 스레드 관리를 응용 프로그램에 남겨둔 원래 Apple OS).
나쁘게 생각되거나 비싼 제품을 극복하는 아름다운 코드의 예를 생각할 수 없습니다.
따라서 출시 시간과 예쁜 코드의 경우 출시 시간이 우선해야합니다!
깨끗한 코드를 실제 목표와 분리해야합니다. 배포 후 결함 수정 비용을 줄이고 불필요한 재 작업을 줄입니다. "버그를 줄이기 위해 깔끔한 코드 작성"에 대해 이야기 할 때 종교에 대해 이야기하는 것입니다. "프로젝트에서 2 개월 간의 노력을 10 % 절약하여 결함률을 줄이면"에 대해 이야기하고 있습니다. 클린 코드는 코드베이스의 초기 품질을 향상시켜 총 비용을 낮추는 도구이지만 많은 것 중 하나입니다.
다음 백서는 비용 관점에서 처음으로 올바르게 얻는 것이 중요한 이유를 설명합니다. http://www.cs.umd.edu/~mvz/pub/eworkshop02.pdf
나는 구체적인 연구를 알지 못하지만 Steve McConnell의 작업을 확인하십시오 .
누군가 가지고 있다면 그는 할 것입니다. 예를 들어, 2 분의 스캔 이 이것을 발견 했습니다 (16 살이지만 오늘날에도 여전히 관련이 있습니다).
mattnz의 답변에 추가하려면 아직 코드 완성 : Steve McConnell 의 소프트웨어 구성 에 대한 실용적인 핸드북을 확인하십시오 . 코딩이 향상 될 것이라는 사실 외에도 다양한 코딩 방법이 프로그램의 품질에 어떤 영향을 미치는지에 대해 책 전체에서 수많은 연구를 인용합니다.
예를 들어 (책에서) :
서로 다른 450 가지 루틴에 대한 또 다른 연구 (단지 우연의 일치 임)는 결합-응집 비율이 가장 높은 루틴이 결합-응집 비율이 가장 낮은 루틴보다 7 배 많은 오류를 가지고 있으며 비용이 20 배나 많은 것으로 나타났습니다. 수정 (Selby and Basili 1991).
또한 모든 프로그래머가 읽어야 할 가장 영향력있는 책은 무엇입니까? (나는이 질문에 대한 답변이 최근에 절름발이로 재구성 된 것을 본다)