얼마 전에 나는 C ++로 작성된 것에 대해 SO에 대한 질문을했지만 현재 문제에 대한 답변을 얻는 대신 WIP 코드 임을 나타내는 경우에도 주석은 코딩 스타일에 열중했습니다. 기본 케이스를 실행했을 때 나중에 정리해야했습니다. (SO에 대한 내 담당자는 이미 거의 비열한 것처럼 질문을 풀기로 결정한 다운 투표가 너무 많았습니다.)
사람들이 왜 그렇게 어려운 선을 "당신은 멍청한 놈이야, 너 자신을 go 하겠어"라는 태도를 취하는 지 궁금해했다. 나는 마치 Java 인 것처럼 C ++을 작성했다고 비난 받고있었습니다. 내가 이해할 수없고 여전히 나를 방해하는 것.
나는 간격을두고도 수년 동안 꽤 많은 OOP 언어로 프로그래밍 해왔다. 사용 가능한 라이브러리 및 현재 작업에 대한 최적의 실행 환경 측면에서 사용할 언어를 선택합니다. 나는 OOP 코드에서 디자인 패턴을 채택하고 패턴 사용이 건전하고 OO 현명한 것으로 내 자신을 유지할 수 있다고 확신합니다. OOP 툴박스를 이해하고 있지만 실제로 필요한 것으로 판단 될 때에 만 툴을 사용하기로 선택합니다. (내가 아는 것은 최고 수준은 아니지만 n00b 수준도 아니라고 생각한다).
한 줄을 작성하기 전에 코드를 디자인합니다. 테스트를 정의하기 위해 특정 클래스의 목표와 준수해야 할 테스트 기준을 나열합니다. 시퀀스 다이어그램을 작성하고 코드를 작성하는 것이 더 쉽기 때문에 인터페이스가 명확 해지면 테스트를 작성하기로 결정했습니다.
질문에 게시 한 코드에서 스마트 포인터를 사용하는 대신 여전히 포인터를 사용하고 있음을 인정해야합니다. 가능하면 RAII를 사용합니다. 적절한 RAII는 nullpointer로부터 보호하는 것을 의미하지만 점진적으로 일합니다. 진행중인 작업이었고 나중에 정리하려고했습니다. 이 일하는 방식은 강력하게 정죄되었습니다.
In my view, I should have a working example first so I can see if the base case is a viable way of thought. I also happen to think that cleaning up the code is something that is typical of the refactoring phase of agile, after the base case has been proven. I must admit that although I'm slowly getting the Cxx standard, I prefer to use what I understand, instead of taking the risk of using concepts that I have yet to master in production code. I do try new stuff once in a while, but usually in play projects that I have on the side, just for that purpose.
[편집] 나는 gnat의 제안 [1]이 내가 질문을하기 전에 한 검색에 나타나지 않았다는 것을 분명히하고 싶습니다. 그러나 그의 제안은 질문의 한 측면을 다루고 있지만, 그가 연결 한 질문은 내 질문의 핵심이 아니라 그 일부에 대한 답변입니다. 내 질문은 코딩 스타일에 대한 응답과 다양한 코딩 스타일 및 (명백한) 기술 수준을 다루는 전문적인 측면에 관한 것입니다. SO에 대한 이전 질문과 함께 적절한 경우의 답변입니다. [/편집하다]
그렇다면 질문은 코딩 스타일을 사용하지 않는 사람을 비웃는 이유는 무엇입니까?
나를 위해 당면한 문제 / 세분은 다음과 같습니다.
- 리팩토링이 나중에 더 강력 해지면 프로토 타입 상황에서 더 많은 오류가 발생하기 쉬운 코드를 사용하는 것이 왜 나쁜 프로그래밍 관행입니까?
- C ++로 작성된 프로그램은 Java로 작성된 것과 어떻게 비슷합니까? 나쁜 프로그램은 무엇입니까? (현재 스타일의 의도와 개선하려는 계획된 작업을 고려한 것을 고려하면)
- 특정 프로그래밍 패러다임 (예 : OOP / DP)에 사용되는 구문을 사용하기로 선택한 경우 어떻게 나쁜 전문가가 되나요?
[1] 빠르고 버그가 많은 코드를 개발 한 다음 각 코드 줄에 대해 오류를 수정하거나 느리게 처리 하시겠습니까?
int
실제 길이를 추적 하는 별도의 변수 포함.