«clean-code» 태그된 질문

"클린 코드"라는 용어는 간결하고 이해하기 쉽고 프로그래머의 의도를 명확하게 표현하는 컴퓨터 프로그래밍 코드를 설명하는 데 사용됩니다. 이 태그에 대한 질문은 깨끗한 코드를 작성하거나 오래된 "더러운"코드를 깨끗한 코드로 리팩토링하는 프로세스와 관련이 있습니다.

8
들어오는 매개 변수를 수정하는 것이 반 패턴입니까? [닫은]
Java로 프로그래밍하고 있으며 항상 다음과 같은 변환기를 만듭니다. public OtherObject MyObject2OtherObject(MyObject mo){ ... Do the conversion return otherObject; } 새로운 직장에서 패턴은 다음과 같습니다. public void MyObject2OtherObject(MyObject mo, OtherObject oo){ ... Do the conversion } 들어오는 매개 변수를 변경하지 않는 데 익숙해 져서 약간 냄새가납니다. 이 수신 매개 변수 변경이 …

2
“기능 부러움”코드 란 무엇이며 왜 코드 냄새로 간주됩니까?
SO 에 대한 이 질문 에서는 OP가 생각하는 기능 부러움 코드를 수정하는 방법에 대해 설명합니다 . 이 멋진 문구가 인용 된 또 다른 예는 최근 프로그래머가 여기 에 주어진 대답에 있습니다 . 나는 그 대답에 대한 정보를 묻는 의견 을 들었지만 Q & A를 따르는 프로그래머가 feature-envy 라는 용어의 의미를 …

14
함수에서 파라미터를 주문하는 가장 좋은 방법은 무엇입니까?
때때로 (드물게), 적절한 양의 매개 변수를 취하는 함수를 만드는 것이 가장 좋은 경로 인 것 같습니다. 그러나 내가 할 때 종종 매개 변수의 순서를 임의로 선택하는 것처럼 느낍니다. 나는 가장 중요한 매개 변수를 먼저 사용하여 "중요도 순서"로 이동합니다. 더 좋은 방법이 있습니까? 선명도를 높이는 매개 변수를 정렬하는 "모범 사례"방법이 있습니까?

15
Clean Code : 매개 변수가 적은 함수 [닫기]
나는 Robert C. Martin 의 Clean Code 의 첫 번째 장을 읽었으며 그것이 꽤 좋은 것 같지만 의심의 여지가 있습니다. 가능한 한, 3 개 이상의 매개 변수가 함수 (너무 과장되고 이상적이라고 생각)에 비해 너무 많음을 제안하기 때문에 궁금해하기 시작했습니다 ... 전역 변수를 사용하고 함수에 많은 인수를 전달하는 방법은 프로그래밍 방식이 …

20
"버스 팩터"를 늘리기 위해 좋은 문서와 깨끗한 코드를 작성해야합니까?
소프트웨어 개발 회사의 주요 목표 중 하나는 버스 팩터 를 늘리는 것 입니다. 이는 Google이 주최 한 강연 에서도 옹호됩니다 . 즉, 내일 버스를 타더라도 프로젝트를 계속할 수있는 방식으로 모든 것을 코딩하고 문서화해야합니다. 다시 말해, 자신과 비슷한 기술을 가진 다른 프로그래머가 쉽게 교체 할 수 있어야합니다. 대체 가능한 것은 개발자의 …

8
함수 이름의 인수 이름을 더 일반적으로 인코딩하지 않는 이유는 무엇입니까? [닫은]
에서 청소 코드 저자의 예를 제공합니다 assertExpectedEqualsActual(expected, actual) vs assertEquals(expected, actual) 전자는 주장이 어디로 가고 어디에서 오용 될 가능성이 있는지 기억할 필요가 없기 때문에 더 명확하다고 주장했다. 그러나 나는 어떤 코드에서 이전의 명명 체계의 예를 보지 못했고 후자를 항상 볼 수 있습니다. 저자가 주장하는 것처럼 후자가 더 명확하다면 코더가 왜 …
47 clean-code 

13
밥 삼촌의 Clean Code 원칙을 준수하기 위해 if-else if 문을 편집하려면 어떻게해야합니까?
밥 삼촌의 깨끗한 코드 제안을 따르고 특히 방법을 짧게 유지하려고합니다. 그래도이 논리를 단축 할 수는 없습니다. if (checkCondition()) {addAlert(1);} else if (checkCondition2()) {addAlert(2);} else if (checkCondition3()) {addAlert(3);} else if (checkCondition4()) {addAlert(4);} 나는 else를 제거 할 수 없으므로 전체를 더 작은 비트로 분리하여 "else if"의 "else"가 성능을 향상시키는 데 도움이됩니다. 이러한 …

3
Bob 아저씨의 깔끔한 아키텍처-각 계층의 엔티티 / 모델 클래스?
배경 : 내 안드로이드 앱에서 Bob 아저씨의 깨끗한 아키텍처를 사용하려고합니다. 올바른 방법을 보여주기 위해 노력하는 많은 오픈 소스 프로젝트를 연구했으며 RxAndroid를 기반으로 흥미로운 구현을 발견 했습니다 . 내가 알았던 것 : 모든 계층 (프레젠테이션, 도메인 및 데이터)에는 동일한 엔터티 (토킹 UML)에 대한 모델 클래스가 있습니다. 또한 데이터가 경계를 넘을 때마다 …

8
IF 문 반전
그래서 저는 몇 년 동안 프로그래밍을 해왔으며 최근에는 ReSharper를 더 많이 사용하기 시작했습니다. ReSharper가 항상 나에게 제안하는 한 가지는 "네 스팅을 줄이기 위해 'if'문을 뒤집는 것"입니다. 이 코드가 있다고 가정 해 봅시다. foreach (someObject in someObjectList) { if(someObject != null) { someOtherObject = someObject.SomeProperty; } } 그리고 ReSharper는 다음과 같이 …

14
마감 시간이 촉박 할 때 다른 사람의 코드를 정리하는 것이 얼마나 중요합니까? [닫은]
(저는 프로그래밍 언어가 아닌 HTML / CSS 코드에 대해 이야기하고 있지만 프로그래머와 같은 문제에 직면하고 있다고 생각합니다.) 저는 팀의 선임 프론트 엔드 디자이너이며, 종종 마감일에 주니어 출력을 재 작업해야합니다. 나는 두 가지 문제에 직면 해있다. 그들의 코딩 스타일은 약간 엉망입니다. 미학은 좋지 않습니다. 그들의 코딩 스타일은 적절한 컨벤션 / 표준이없는 …

5
아이디 또는 객체를 전달 하시겠습니까?
도메인 엔티티를 얻기 위해 비즈니스 로직 메소드를 제공 할 때 매개 변수가 오브젝트 또는 ID를 승인해야합니까? 예를 들어 다음과 같이해야합니다. public Foo GetItem(int id) {} 아니면 이거: public Foo GetItem(Foo foo) {} 나는 객체를 전체적으로 전달하는 것을 믿지만 객체를 얻고 ID 만 알고있는이 경우는 어떻습니까? 호출자가 빈 Foo를 작성하고 ID를 …

14
코드를“예쁘게 보이게”하는 데 집착하면 어떤 이점이 있습니까?
때때로 나는 코드를 "예쁘게 보이게"만드는 것보다 어리석은 시간 (시간)을 소비한다. 나는 물건을 대칭 적으로 보이게 만드는 것을 의미합니다. 실제로 전체 클래스를 빠르게 스크롤하여 "예쁘거나 깨끗하지 않은"것으로 보이는 것이 있는지 확인합니다. 나는 시간을 낭비하고 있습니까? 이런 종류의 행동에 가치가 있습니까? 때로는 코드의 기능이나 디자인이 변경되지 않을 수도 있습니다. 코드를 재구성하여 더보기 …
34 clean-code 

6
Clean Code의 블록과 추가 매개 변수에 추가 라인
문맥 에서 클린 코드 , 35 페이지, 그것은 말한다 이는 if 문, else 문, while 문 등의 블록은 한 줄 길이 여야 함을 의미합니다. 아마도 그 라인은 함수 호출이어야합니다. 이렇게하면 둘러싼 함수가 작게 유지 될뿐만 아니라 블록 내에서 호출 된 함수의 이름이 잘 설명 될 수 있으므로 다큐멘터리 값도 추가됩니다. …
33 clean-code  solid 

7
실수로 중복되는 코드를 방지하려면 어떻게해야합니까?
나는 다소 큰 코드 기반으로 작업합니다. 수백 개의 클래스, 수많은 다른 파일, 많은 기능, 새로운 사본을 풀다운하는 데 15 분 이상이 소요됩니다. 이러한 큰 코드 기반의 큰 문제는 상당히 많은 유틸리티 메소드가 있고 동일한 기능을 수행하거나 가능한 경우 이러한 유틸리티 메소드를 사용하지 않는 코드가 있다는 것입니다. 또한 유틸리티 메소드는 모두 …

7
나중에 사용하기 위해 루프에 플래그를 설정하는 것이 코드 냄새입니까?
특정 조건이 true가 될 때까지 맵을 반복 한 다음 나중에 해당 조건을 사용하여 더 많은 작업을 수행하는 코드가 있습니다. 예: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) { limitFlag = true; break; } } } …

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