«code-smell» 태그된 질문

"코드 냄새"가 무엇인지 아닌지를 결정하는 것은 주관적이며 언어, 개발자 및 개발 방법론에 따라 다릅니다. 일부 기법이 "코드 냄새"인지 묻기 전에, 해당 기법을 사용한 경우 특정 프로젝트에 어떤 영향을 미칠지 스스로에게 물어보십시오. 단순히 "코드 냄새"인지 아닌지를 묻는 것은 너무 주관적입니다.

8
TryGetValue보다 C # 사전을 사용하는 더 좋은 방법이 있습니까?
온라인에서 자주 질문을 찾고 있으며 많은 솔루션에 사전이 있습니다. 그러나 구현하려고 할 때마다 코드 에서이 끔찍한 악취가납니다. 예를 들어 값을 사용할 때마다 : int x; if (dict.TryGetValue("key", out x)) { DoSomethingWith(x); } 기본적으로 다음을 수행하는 4 줄의 코드입니다. DoSomethingWith(dict["key"]) out 키워드를 사용하면 함수가 매개 변수를 변경하기 때문에 안티 패턴을 사용하는 …

9
너무 많은 어설 션 코드 냄새가 있습니까?
나는 단위 테스트 및 TDD에 정말 빠져 들었습니다. 테스트에 감염되었습니다. 그러나 단위 테스트는 일반적으로 공용 메소드에 사용됩니다. 때로는 개인적인 방법으로 몇 가지 가정 가정을 테스트해야하지만 그 중 일부는 "위험한"리팩터링으로 더 이상 도움이되지 않기 때문입니다. (테스트 프레임 워크는 개인 메소드를 테스트 할 수 있음을 알고 있습니다). 그래서 개인적인 방법의 첫 번째와 …

7
추상화는 코드 가독성을 줄여야합니까?
내가 함께 일하는 좋은 개발자는 우리가 상속 한 코드에서 기능을 구현하는 데 어려움을 겪었다 고 최근에 말했다. 그는 문제는 코드를 따르기가 어렵다고 말했다. 그로부터 나는 제품을 더 깊이 들여다보고 코드 경로를 보는 것이 얼마나 어려운지를 깨달았습니다. 그것은 많은 인터페이스와 추상 레이어를 사용하여 일이 시작되고 끝나는 곳을 이해하는 것이 매우 어려웠습니다. …

4
왜 데이터 클래스가 코드 냄새로 간주됩니까?
이 기사에서는 데이터 클래스가 "코드 냄새"라고 주장합니다. 이유: 새로 생성 된 클래스에 소수의 공개 필드 (및 소수의 getter / setter) 만 포함 된 경우에는 정상적인 현상입니다. 그러나 객체의 진정한 힘은 데이터에 대한 동작 유형이나 작업을 포함 할 수 있다는 것입니다. 객체가 데이터 만 포함하는 것이 왜 잘못 되었습니까? 클래스의 핵심 …

7
객체를 변경하는 메소드에 객체를 전달하는 것이 일반적인 패턴입니까?
Martin Fowler의 Refactoring book 에서 일반적인 코드 냄새에 대해 읽고 있습니다. 그런 맥락에서, 나는 코드베이스에서보고있는 패턴에 대해 궁금해했고, 객관적으로 패턴을 반 패턴으로 간주 할 수 있었다. 패턴은 하나 이상의 메소드에 대한 인수로 오브젝트가 전달되는 패턴으로, 모두 오브젝트의 상태를 변경하지만 오브젝트를 리턴하는 것은 없습니다. 따라서 C # /. NET의 참조 특성에 …

5
함수가 매개 변수를 수정해도 괜찮습니까?
Linq To SQL을 래핑하는 데이터 계층이 있습니다. 이 데이터 레이어에는이 방법이 있습니다 (간체 화됨) int InsertReport(Report report) { db.Reports.InsertOnSubmit(report); db.SubmitChanges(); return report.ID; } 제출 변경 사항이 있으면 보고서 ID가 데이터베이스의 값으로 업데이트 된 다음 반환됩니다. 발신 측에서 다음과 같이 보입니다 (간체). var report = new Report(); DataLayer.InsertReport(report); // Do something …

9
소프트웨어가 고도로 결합되어 있는지 어떻게 알 수 있습니까?
나는 "높은 결합"이라는 용어에 익숙하지만 코드가 높은 결합을 나타내는 신호 (코드 냄새)가 있는지 궁금합니다. 현재 Java EE로 작업하고 있지만 모든 언어에 적용 할 수 있습니다. 편집하다: 관심있는 사람이 있다면이 기사가 도움이 될 것입니다. 코드 품질 추구 : 꽉 조이는 커플을 조심하십시오! (IBM)

3
Mocking은 생산 코드에서 처리를 소개합니다
IReader 인터페이스, IReader 인터페이스 ReaderImplementation의 구현 및 리더에서 데이터를 소비하고 처리하는 클래스 ReaderConsumer를 가정합니다. public interface IReader { object Read() } 이행 public class ReaderImplementation { ... public object Read() { ... } } 소비자: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { ... } // …

3
병렬 어레이를 사용하는 것이 좋은시기는 언제입니까?
나는 '병렬 배열'또는 목록이라고 부르는 것을 사용하는 코드 (새로운 코드)를 겪었습니다. 의미는 관련 데이터를 포함하고 어레이의 위치 (인덱스)로 연결된 2 개의 어레이가 있음을 의미합니다. 나는 혼란스럽고 모든 종류의 오류가 발생하기 쉽다고 생각합니다. 내가 일반적으로 제안하는 솔루션은 CompanyCompanyId 및 CompanyName 필드로 불리는 객체를 만드는 것 입니다. 매우 실제적인 예 : List<string> …

3
PHP 웹 앱의 흐름을 잃어 가고 있는데, 작업하기가 점점 어려워지고 있습니다.
몇 년 동안 프로그래밍을 해 왔으며 시간이 지남에 따라 C # 및 JavaScript에 매우 익숙해졌습니다. 탐색하는 데 문제가없는 더 큰 C # 및 JavaScript 프로젝트가 있습니다. 최근에 PHP에 대한 사전 경험이없는 작업을 위해 PHP & AngularJS 프로젝트를 시작했습니다. PHP 측면의 흐름을 추적하기가 어려워지고 있습니다 (JavaScript 측면은 더 크지 만 쉽게 …


5
'유틸리티'수업이 문제의 원인입니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 칠년 전에 …

7
당신이 자랑스럽게 생각한 최악의 코드는 무엇입니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 팔년 전에 …

7
매개 변수 목록에서 로거의 위치는 무엇입니까?
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 내 코드에서는 생성자의 매개 변수 목록을 통해 많은 클래스에 로거를 주입합니다. 나는 그것을 무작위로 넣는 것을 알아 차렸다 …

5
복잡한 소프트웨어는 얼마나 많은 중복성 / 강건성을 구현해야합니까?
이 질문의 초점 : 일부 소프트웨어는 소프트웨어의 하나 이상의 내부 오류에도 불구하고 "최종적으로 성공 / 만족스러운"결과의 가능성을 높이기 위해 "추가 작업"을 수행하므로 이러한 오류가 발생하면 실행 시간이 길어집니다. 결과가 성공적이면 사용자 모르게이 모든 것이 발생합니다. 복잡한 소프트웨어의 정의 : 평생 동안 10 명 이상의 개발자가 작성 (기여) 한 코드를 포함하며 …

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