소프트웨어 공학

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


7
Theus of Shipus가 GPL에 적용됨-모든 파생 부품을 교체 할 경우 프로그램을 재 라이센스 할 수 있습니까?
나는 GPLv2 프로그램을로 번역 했지만, 설계대로 확장하고 그 상당 부분을 다시 쓰는 것이 어렵다는 것을 알았다. 이 프로그램은 이제 구조적으로 완전히 다르지만 사용되는 몇 가지 언어로 번역 된 기능이 있습니다.CPython 테세우스 역설의 선박 (위키 백과에서 언급 한 바와 같이) "모든 구성 요소를 교체했다 물체가 근본적으로 동일한 개체 남아 있는지의 문제를 …
99 licensing  gpl 

5
추상 클래스가 이미 있는데 왜 기본 및 정적 메소드가 Java 8의 인터페이스에 추가 되었습니까?
Java 8에서 인터페이스에는 구현 된 메소드, 정적 메소드 및 소위 "기본"메소드 (구현 클래스를 대체 할 필요가 없음)가 포함될 수 있습니다. 내 (아마도 순진한) 견해로는 이와 같은 인터페이스를 위반 할 필요가 없었습니다. 인터페이스는 항상 이행해야 할 계약이었으며 매우 단순하고 순수한 개념입니다. 이제 여러 가지가 혼합되어 있습니다. 내 의견으로는 : 정적 메소드는 …

14
컴파일러 최적화에 의존하는 코드를 작성하는 것은 나쁜 습관입니까?
나는 C ++을 배우고 있었고 종종 함수 내에서 생성 된 함수에서 큰 객체를 반환해야합니다. 참조로 전달하고 포인터를 반환하고 참조 유형 솔루션을 반환한다는 것을 알고 있지만 C ++ 컴파일러 (및 C ++ 표준)는 반환 값 최적화를 허용하여 메모리를 통해 이러한 큰 객체를 복사하지 않도록합니다. 모든 시간과 메모리를 절약 할 수 있습니다. …
99 c++  performance 

12
예외는 예외적 인 경우에만 사용해야한다고 들었습니다. 내 사례가 예외적인지 어떻게 알 수 있습니까?
필자의 구체적인 사례는 사용자가 응용 프로그램에 문자열을 전달하고 응용 프로그램이 구문 분석하여 구조화 된 객체에 할당한다는 것입니다. 때때로 사용자는 잘못된 것을 입력 할 수 있습니다. 예를 들어, 그들의 의견은 사람을 묘사 할 수 있지만 나이는 "사과"라고 말할 수 있습니다. 이 경우 올바른 동작은 트랜잭션을 롤백하고 사용자에게 오류가 발생했음을 알리는 것이므로 …

6
Java의 스택 및 힙 메모리
내가 이해하는 것처럼 Java에서 스택 메모리는 프리미티브 및 메소드 호출을 보유하고 힙 메모리는 객체를 저장하는 데 사용됩니다. 수업이 있다고 가정하자 class A { int a ; String b; //getters and setters } a클래스 의 프리미티브 는 어디에 A저장됩니까? 왜 힙 메모리가 존재합니까? 스택에 모든 것을 저장할 수없는 이유는 무엇입니까? 객체가 …

12
TDD를 수행 할 때 개인용 메소드를 피해야합니까?
지금 막 TDD를 배우고 있습니다. 개인 API는 테스트 할 수 없으며 공개 API가 객체의 무결성을 확인하기에 충분한 정보를 제공하기 때문에 걱정할 필요가 없다는 것을 이해합니다. 한동안 OOP를 이해했습니다. 개인 메소드가 객체를보다 캡슐화하여 변경 및 오류에 더 강하게 만든다는 것을 이해합니다. 따라서 기본적으로 사용되어야하며 클라이언트에게 중요한 방법 만 공개해야합니다. 글쎄, 개인 …

19
주니어 개발자를 멘토링하는 방법
이 제목은 약간 광범위하지만 질문을 제대로하기 전에 약간의 배경 지식을 제공해야 할 수도 있습니다. 나는 비슷한 문제가 된 것을 알고 물어 여기에 이미. 그러나 제 경우에는 누군가를 멘토링 해야하는지 또는 소프트웨어 개발자가되기에 적합한 지 묻지 않습니다 . 그것은 내가 판단 할 곳이 아니다. 나는 똑바로 묻지 않았지만 나 자신과 다른 …
99 culture  mentor 

8
'\ n'과 '\ r \ n'의 차이점
예, '\n'유닉스에서 개행 을 작성하는 반면 Windows의 경우 두 문자 시퀀스가 있음을 알고 '\r\n'있습니다. 이 모든 것이 이론 상으로는 매우 좋지만 내 질문은 왜 그런가 ? Windows에서 캐리지 리턴 문자가 추가 인 이유는 무엇입니까? 만약 유닉스가 그렇게 할 수 있다면 \n왜 Windows를 위해 두 문자가 필요합니까? 나는 David Beazley의 Python …


11
모의 객체를 사용할 때 단위 테스트와 관련된 종속성 문제를 어떻게 감지합니까?
클래스 X가 있고 동작 X1을 확인하는 몇 가지 단위 테스트를 작성합니다. X를 종속성으로 사용하는 클래스 A도 있습니다. A에 대한 단위 테스트를 작성할 때 X를 조롱합니다. 즉, 단위 테스트 A 동안 X의 모의 동작을 X1로 설정 (가정)합니다. 시간이 지남에 따라 사람들이 시스템을 사용하고 변화가 필요하며 X가 진화합니다. X를 수정하여 X2 동작을 …

9
CI 서버에서 단위 테스트를 실행하는 요점은 무엇입니까?
CI 서버에서 단위 테스트를 실행하는 이유는 무엇입니까? 확실히 무언가를 마스터하기 위해 개발자는 이미 모든 단위 테스트를 실행하고 새 코드로 발생했을 수있는 오류를 수정했습니다. 그것이 단위 테스트의 요점이 아닌가? 그렇지 않으면 그들은 깨진 코드를 커밋했습니다.


9
Java 프로그램을 '기본 모양'으로 만드는 것이 어려운 이유는 무엇입니까?
대부분의 Java 응용 프로그램은 C / C ++ 응용 프로그램과 동일하게 보이지 않습니다. Swing은 의도적으로 눈에 띄지 않게 디자인되었지만, 내가 읽은 내용을 기반으로 SWT는 예를 들어 '기본 모양'을 시도했지만 완전히 성공하지 못했습니다. 내 질문은 : Java 언어 개발자 가 기본 GUI의 모양을 정확하게 복사하는 GUI 시스템을 설계하기 어려운 이유는 무엇 …
98 java  gui 

7
제어 역전이 왜 그렇게 명명 되었습니까?
내가 본 정의에서 Inversion of Control을 정의하기 위해 단어 가 사용 invert되거나 control전혀 사용되지 않습니다. 정의 위키 백과 IoC (inversion of control)는 객체 지향 프로그래밍 측면에서 표현 된 프로그래밍 기법으로, 객체 결합은 런타임에 어셈블러 객체에 의해 바인딩되며 일반적으로 정적 분석을 사용하여 컴파일 타임에 알려지지 않습니다. ~ http://en.wikipedia.org/wiki/Inversion_of_control 마틴 파울러 Inversion …

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