소프트웨어 공학

시스템 개발 수명주기 내에서 작업하는 전문가, 학자 및 학생을위한 Q & A

5
const가 조기 최적화를 참조 할 때 인수를 전달합니까?
"조기 최적화는 모든 악의 근원" 우리 모두 동의 할 수 있다고 생각합니다. 그리고 나는 그것을 피하기 위해 매우 열심히 노력합니다. 그러나 최근에는 Value 대신 const Reference로 매개 변수를 전달하는 방법에 대해 궁금 합니다 . 나는 사소하지 않은 함수 인수 (즉, 대부분의 기본이 아닌 유형)는 const 참조 로 전달하는 것이 바람직하다는 …

8
릴리스 빌드에 어설 션이 있어야합니다
assertC ++에서 기본 동작은 릴리스 빌드에서 아무것도하지 않는 것입니다. 나는 이것이 성능상의 이유로 수행되고 사용자가 불쾌한 오류 메시지를 보지 못하게하는 것으로 가정합니다. 그러나, 나는 assert불이 붙었을 때 비활성화되었지만 비활성화 된 상황 은 응용 프로그램이 아마도 불일치로 인해 더 나쁜 방식으로 충돌 할 수 있기 때문에 훨씬 더 번거 롭다고 주장합니다 …

1
대문자로 된 상수의 이름은 무엇입니까?
모든 대문자의 상수 명명 규칙에 대한 역사는 무엇입니까? 내 직감은 C 전 처리기에서 시작하여 사람들이 전 처리기 매크로의 이름을 대문자로 지정하여 실제로 별도의 네임 스페이스에 살고 이름 충돌을 피할 수있는 방법을 개발했다는 ​​것입니다. 내 생각 에이 관행은 비 전 처리기 상수 ( enums, const변수) 에도 적용되도록 오해되고 개자식이 있다고 생각 …

3
랩퍼가 동일한 오브젝트를 랩핑 할 때 == 연산자를 사용하여 동일하게 비교해야합니까?
개발자가 XML의 특성을 쉽게 구문 분석 할 수있는 XML 요소에 대한 래퍼를 작성하고 있습니다. 랩퍼는 랩핑되는 오브젝트 이외의 상태가 없습니다. ==연산자에 대한 과부하를 포함하는 다음 구현 (이 예제에서는 단순화 됨)을 고려하고 있습니다. class XmlWrapper { protected readonly XElement _element; public XmlWrapper(XElement element) { _element = element; } public string NameAttribute …
19 c#  .net  operators 

6
함수의 Big O 실행 시간을 변경할 때 무엇이라고 부릅니까?
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 작년에 문을 닫았 습니다 . 데이터베이스를 제 O(n^2)시간에 정렬하는 기능이 있다고 가정 해 봅시다 . 리팩토링 O(n log(n))을 수행하여 시간 내에 실행되도록하고 …
19 complexity  big-o 

5
정적 메소드 만 포함하는 *** Helper 또는 *** Util 클래스를 사용합니까?
나는 종종 Java 또는 모든 종류의 언어에서 도우미 또는 유틸리티 클래스에 직면합니다. 그래서 나는 이것이 일종의 안티 패턴인지 여부를 묻고 있었고 이러한 종류의 클래스의 존재는 소프트웨어의 디자인과 아키텍처에서 누락이 부족한 것입니다. 이러한 클래스는 종종 정적 메소드를 사용하여 제한되며 많은 기능을 수행합니다. 그러나 대부분 상황에 따라 다르며 상태가 가득합니다. 내 질문은, …

4
왜 코 루틴이 돌아 왔나요? [닫은]
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 코 루틴에 대한 기초는 대부분 60 년대 / 70 년대에 일어 났으며 대안 (예 : 실)을 위해 …

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

4
어떤 UML 다이어그램이 여전히 널리 사용되고 있습니까? [닫은]
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 학부 수준에서 소프트웨어 엔지니어링을 가르치고 UML 전문가에게 질문이 있습니다. 대부분의 소프트웨어 엔지니어링 교과서는 UML 다이어그램을 다루는 데 …

1
Java 8 코드에 대한 조건부 적용 범위를 측정하는 것이 이치에 맞습니까?
Java 8이 등장한 이후 현재 Java 도구로 조건부 코드 적용 범위를 측정하는 것이 더 이상 사용되지 않는지 궁금합니다. 자바 8의로 Optional하고 Stream우리는 종종 쉽게 가능한 모든 실행 경로를 테스트하지 않고 매우 높은 조건 적용을받을 수 있습니다 코드 지점 / 루프를 방지 할 수 있습니다. 오래된 Java 코드와 Java 8 코드를 …

4
파이썬 블록의 콜론은 기술적으로 필요합니까?
이것은 실제로 더 많은 것을 알고 싶어하는 파이썬 초보자의 이론적 인 질문입니다. 파이썬에서 블록 초기 문장 다음에 콜론을 잊어 버렸습니다. 이것이 내가 의미하는 바입니다. for <variable> in <sequence>: if <blah blah>: 내 생각은 내가 잊어 버린 한 가지 이유는 그것들이 사실상 암시 적이라는 것입니다. 즉 콜론인지 아닌지에 대한 진술은 그 …
19 python  syntax  theory 

8
필드의 접두사를 사용하지 않는 이유는 무엇입니까?
옛날에는 헝가리 표기법을 사용했습니다. 이제는 passé로 간주 되며 대부분 더 이상 사용하지 않지만 여전히 m_멤버 필드를 나타내는 접두사를 사용 합니다. 나를 위해 다른 사람의 코드를 읽고 있다면 이것을 볼 수 있습니다. count = 3; 나는 그것이 count그 함수에 대한 지역 변수 라고 가정 하고 함수의 다른 곳에서 사용될 무언가를하고 있습니다. …

10
개발 초기 또는 종료시 성능을 향상시키기 위해 소프트웨어를 최적화하는 것이 언제 더 좋습니까?
저는 주니어 소프트웨어 개발자이며 더 나은 성능 (속도)을 위해 소프트웨어를 최적화하기 가장 좋은시기가 언제인지 궁금했습니다. 소프트웨어가 관리하기에 극히 크거나 복잡하지 않다고 가정 할 때, 최적화를 시작하는 데 더 많은 시간을 소비하는 것이 더 좋습니까? 아니면 모든 기능을 올바르게 실행하는 소프트웨어를 개발 한 다음 더 나은 성능을 위해 소프트웨어를 계속 진행해야합니까?

7
특정 값을 문자열로 저장하는 것은 나쁜 습관입니까?
매우 모호한 제목이지만 더 나은 표현 방법을 생각할 수 없었습니다. 그러나 예를 들어 게임의 캐릭터가 움직이는 방향에 대해 생각하십시오. 문자열을 사용하고 다음과 같은 일을하는 것은 잘못된 느낌 if(character.direction == "left")입니다. 실수로 사용하는 바보 같은 오류에 대해 너무 많은 공간, 단풍 나에게 보인다 Left거나 l또는 무엇이든 대신을 left. 내 의심이 맞습니까? …

8
가지가 쌓이지 않도록 유지
기능이 테스트 준비를 위해 점점 더 커질수록 문제가 발생하기 시작하지만, 모든 것이 테스트되고 승인 된 새로운 기능이 테스트 준비에 들어갑니다. 이는 테스트 된 기능과 테스트되지 않은 기능이 결합되어 있기 때문에 프로덕션 환경에 거의 도달 할 수없는 환경을 만들고 있습니다. 나는 이것이 일반적인 문제라고 확신하지만 아직 우리에게 좋은 자원을 찾지 못했습니다. …

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