소프트웨어 공학

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

3
인터페이스와 관련된 시뮬레이션에 대한 잘못된 OOP 설계입니까?
나는 뱀파이어, 늑대, 인간 및 트럭을 시뮬레이션하기 위해 내 자신의 작은 OOP 프로그램을 설계하고 있으며 인터페이스에 대한 내 자신의 제한된 이해를 구현하려고합니다. ( 여전히 추상화하고 있으며 아직 코드 구현이 없으므로 OOP 디자인의 문제입니다 ... 생각합니다!) 이 클래스들 사이 에서 '공통 행동' 을 찾고 인터페이스 로 구현하는 것이 맞 습니까? 예를 …

1
ASCII 테이블의 문장 부호 문자가 왜 사방에 있습니까?
에서 ASCII 테이블 , 문장 부호 문자는 비 인쇄 문자 사이의 숫자 (앞에 나타날 !"#$%&')*+,-./숫자와 대문자 (사이), :;<=>?@대문자 (사이) [\]^_`)와 소문자 편지, 소문자 문자 후 ( {|}~). 언뜻보기에 이들을 그룹화 할 것으로 기대합니다. 모든 영숫자 문자 앞이나 뒤에있을 수 있습니다. 그러나 이것은 사실이 아닙니다. 그들은 다른 그룹으로 퍼져 나갔다. 왜 …
13 strings  ascii 

4
함수 인수 수를 최소화하는 기술
Clean Code에서는 "함수에 대한 이상적인 인수 수가 0"이라고 쓰여 있습니다. 이유를 설명하고 이해하는 이유. 내가 따르는 것은이 문제를 해결하기 위해 4 개 이상의 인수로 메소드를 리팩터링하는 기술입니다. 한 가지 방법은 인수를 새 클래스로 추출하는 것이지만 클래스 급증으로 이어질까요? 그리고 이러한 클래스는 일부 명명 규칙 ( "데이터"또는 "정보"등으로 끝남)을 위반하는 이름으로 …

5
정적 메서드를 재정의 할 수없는 이유는 무엇입니까?
이 질문에 대한 답변 에서 일반적인 합의는 정적 메서드를 재정의해서는 안된다는 것입니다 (따라서 C #의 정적 함수는 가상 또는 추상적 일 수 없음). C #의 경우에만 해당되는 것은 아닙니다. Java도 이것을 금지하고 C ++도 좋아하지 않는 것 같습니다. 그러나 자식 클래스에서 재정의하려는 정적 함수 (예 : 팩토리 메서드)의 많은 예를 …

3
블로킹 스트림을 TCP 연결로 다중화하는 것이 좋은 생각입니까?
두 호스트 사이에 여러 개의 이중 채널이 필요합니다. 하나의 TCP 연결 만 설정하면 여러 가지 이점이 있습니다. 그러나 나는 다중화가 불가피한 문제를 일으킬 것이라고 의심한다. 성능이 저하되거나 지연 시간이 크게 증가합니까? 그리고 메모리 사용량과 CPU 사용량은 어떻습니까? 당신이주고 싶은 제안이나 경고가 있습니까?

5
플랫폼 간 호환성 (C ++)을 보장하는 기술은 무엇입니까?
(프레임 워크에 따라) 크로스 플랫폼이어야하는 가장 오래된 C ++ 프로젝트 중 하나를 마무리하고있었습니다. 라이브러리가 모두 크로스 플랫폼이기 때문에 OSX 빌드를 "나중에"수행하는 것이 쉽지 않을 것이라고 생각하면서 Windows와 Visual Studio에서 프로젝트를 완전히 개발했습니다. 이것은 사실이 아니라 "Windows 코드"가 제대로 실행되지 않아 컴파일 오류가 수정되었습니다. 코드가 모든 플랫폼과 호환되는지 확인하기 위해 어떤 …

4
C 구조체는 함수가있는 것처럼 동작 할 수 있습니까?
struct구조체 와 멤버는 가질 수 있지만 함수는 할 수없는 C와 s를 사용 합니다. 이름을 지정한 문자열에 대한 구조체를 만들고 싶습니다. 문자열 의 인덱스 str는 str.replace(int i, char c)어디에서 할 수 i있고 문자열 c위치를 바꾸는 문자 i입니다. 구조체가 함수를 가질 수 없거나 여전히 우리 가이 동작을 구현하고 구조체가 실제로는 새 구조체에 …

5
데 메터의 법에 따르면, 클래스는 멤버 중 하나를 반환 할 수 있습니까?
데메테르의 법칙에 관한 세 가지 질문이 있습니다. 팩토리 및 빌더 클래스와 같이 객체를 반환하도록 특별히 지정된 클래스 외에도 클래스의 속성 중 하나에 의해 유지되는 객체 또는 데 메타 법칙 을 위반하는 객체를 반환하는 방법은 괜찮습니다 (1) ? 그리고 그것이 데 미터 법칙을 위반한다면, 반환 된 객체가 데이터를 나타내는 불변의 객체인지 …

2
주사 불가능한 코드를 테스트하는 방법은 무엇입니까?
그래서 나는 시스템 전체에서 다음과 같은 코드를 사용하고 있습니다. 우리는 현재 단위 테스트를 소급하여 작성하고 있지만 (내 주장보다 결코 늦지 않았습니다), 이것이 어떻게 테스트 될 수 있는지 보지 못합니까? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter = new SearchEntityToQueryAdapter($queryBuilder, $searchEntity); $query = $adapter->setupBuilder()->build(); $totalCount …

5
정의 된 역할을 가진 팀에서 Scrum을 작동시키는 방법은 무엇입니까?
일부 배경 정보 사내 소프트웨어 개발 팀의 일원입니다. 그것은 구성 5 명의 개발자 (2 년에서 5 년 사이의 경험을 가진 저는 그 중 하나입니다) 구현 담당자 3 명 (소프트웨어 배포 및 교육 수행) 그리고 1 명의 프로젝트 관리자. 우리는 중소 규모의 프로젝트를 많이 개발하며, 그 일정은 보통 겹칩니다. 개발은 다음과 …

2
사용 / 가져 오기 문이 많으면 디자인 또는 코드 냄새가 나쁘다는 것을 나타 냅니까?
일반적으로 클래스 파일 맨 위에 몇 개의 using 문이 있습니다. 예: using System.Collections.Generic; using System.IO; using System.Xml.Linq; 그러나 내가 작업중 인 프로젝트에서 여러 경우에 하나의 클래스 파일에서 20 개 이상의 사용 / 가져 오기를 볼 수 있습니다. 이 나쁜 디자인입니까? 한 가지 작업을 수행하도록 설계된 클래스는 소수의 구성 요소에만 의존해야합니다.

3
CDN 대체를위한 로컬 JS 및 CSS 리소스 제공
을 고려하면 CDN은 클라이언트에 더 가까운 리소스를 제공 할 수 있고 클라이언트가 캐시 할 수 있으며 자체 서버의 부하를 줄일 수 있기 때문에 좋은 것 입니다. 최근 브라우저에서는 타사 서버에서 리소스를로드해도 SRI (Subresource Integrity) 덕분에 보안이 저하되지 않습니다 . 일부 국가에서는 CDN이 다운되거나 차단 될 수 있으며 오프라인으로 개발할 때는 …
13 javascript  css  cdn 

4
IDE가 너무 똑똑하다면 왜 "clone ()"을 캐스팅해야합니까?
코드를 입력하는 동안 IDE ( NetBeans ) 유형이 내 확인 Collections합니다. 그러나 왜 반환 된 객체를 캐스팅해야 Object.clone()합니까? 어느 것이 좋습니다. 파울이 없습니다. 그러나 여전히 이해가되지 않습니다. 유형 검사가 캐스팅없이 반환 된 객체를 Object.clone()불가능합니까? 제네릭 프레임 워크는 나를 IDE가 확인할 수 있습니다 생각하게 유형 은 "의 오른쪽에 객체 참조 = …

1
객체 수명 불변량 대 이동 의미론
C ++을 오래 ​​전에 배웠을 때, C ++의 요점 중 하나는 루프에 "루프 불변"이있는 것처럼 클래스에도 객체의 수명과 관련된 불변이 있다는 것입니다. 개체가 살아있는 동안 생성자에 의해 확립되고 메소드에 의해 보존되어야하는 것들. 인 캡슐 레이션 / 액세스 제어는 변하지 않는 것을 적용하는 데 도움이됩니다. RAII는이 아이디어로 할 수있는 일입니다. C …

3
GWT (Gifd When When)와 AAA (Arant Act Assert)의 차이점은 무엇입니까?
TDD에는 AAA (Arrange Act Assert) 구문이 있습니다. [Test] public void Test_ReturnItemForRefund_ReturnsStockOfBlackSweatersAsTwo_WhenOneInStockAndOneIsReturned() { //Arrange ShopStock shopStock = new ShopStock(); Item blackSweater = new Item("ID: 25"); shopStock.AddStock(blackSweater); int expectedResult = 2; Item blackSweaterToReturn = new Item("ID: 25"); //Act shopStock.ReturnItemForRefund(blackSweaterToReturn); int actualResult = shopStock.GetStock("ID: 25"); //Assert Assert.AreEqual(expectedResult, actualResult); } BDD 쓰기 테스트에서 유사한 …
13 c#  unit-testing  tdd  bdd 

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