소프트웨어 공학

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


2
C ++ 11에서 auto_ptr 지원 중단에 대한 디자인 변경을 처리하는 방법은 무엇입니까?
C ++ 11 (즉, -std=c++11) 에서 라이브러리를 테스트하고 있습니다 . 라이브러리는 auto_ptr다음 패턴을 사용합니다 . Foo* GetFoo() { autoptr<Foo> ptr(new Foo); // Initialize Foo ptr->Initialize(...); // Now configure remaining attributes ptr->SomeSetting(...); return ptr.release(); } C ++ 11은 더 이상 사용되지 않으므로 auto_ptr멀리 이동하고 싶습니다. 그러나 코드는 C ++ 03 및 …
12 design  c++  c++11 

3
"방법은 값을 반환하거나 부작용을 가져야하지만 둘다는 안된다"
나는 메소드가 반환 값을 가져야하고 (참조 적으로 투명해야 함) 부작용을 가져야하지만 둘다는 안된다는 것을 한 번 읽었습니다. 이 규칙에 대한 언급은 찾을 수 없지만 더 자세히 알고 싶습니다. 이 조언의 기원은 무엇입니까? 어떤 사람이나 공동체에서 발생 했습니까? 추가 크레딧 :이 조언을 따르면 어떤 이점이 있습니까?

3
인터페이스가 다른 인터페이스에서 상속 된 경우 '비어있는'것으로 간주됩니까?
빈 인터페이스는 일반적으로 내가 알 수있는 한, 특히 언어와 같은 속성이 지원되는 곳에서는 나쁜 습관으로 간주됩니다. 그러나 다른 인터페이스에서 상속 된 인터페이스는 '비어있는'것으로 간주됩니까? interface I1 { ... } interface I2 { ... } //unrelated to I1 interface I3 : I1, I2 { // empty body } 구현이 것을 아무것도 …

2
Java 컬렉션 프레임 워크 인터페이스에서 UnsupportedOperationException
Java Collections Framework를 살펴보면 인터페이스 중 일부에 주석이 있음을 알았습니다 (optional operation). 이러한 메소드를 사용 UnsupportedOperationException하면 해당 메소드를 구현하지 않으려 는 경우 클래스를 통해 구현할 수 있습니다. 이에 대한 예는의 addAll방법입니다 Set Interface. 이제이 일련의 질문에서 언급했듯이 인터페이스는 용도에 대한 정의 계약입니다. 인터페이스는 클래스의 기능과 클래스의 기능을 분리하기 때문에 중요합니다. …

1
여러 프로젝트를 포함하는 CMake (C ++) 저장소의 디렉토리 구성
단일 (git) 저장소에 저장된 관련이 있지만 독립적 인 C ++ 프로젝트 세트에 대한 조언을 원합니다. 프로젝트는 CMake를 사용합니다. 간단한 예를 들어 B에 따라 2 개의 프로젝트 A와 B, A가 있다고 가정합니다. A를 개발하는 대부분의 사람들은 패키징 시스템을 통해 B를 얻게됩니다. 따라서 A 만 컴파일합니다. 그러나 개발자가 A와 B를 모두 컴파일 …

3
이진 트리는 계층 적 데이터를 저장하는 데 특정 목적을 제공합니까? 그들의 정식 사용은 무엇입니까?
나는 이진 트리의 구조와 그것을 횡단하는 방법을 이해합니다. 그러나 프로그램과 프로그래밍에서 실제 용도, 목적을 실현하기 위해 고심하고 있습니다. 계층 적 데이터의 '실제'예에 대해 생각할 때 거의 2 명 이상의 자녀가 있습니다. 예를 들어 가계도에서 어머니는 종종 두 명 이상의 자녀를 가질 수 있습니다. '이진 트리'는 배열 및 목록보다 처리 시간이 …


3
단위 테스트 경쟁
고용주는 월 단위 테스트 날 경쟁을합니다. 하루 종일 단위 테스트를 작성하는 데 전념합니다. 분명히 한 달 내내 더 많은 테스트를 수행하지만 이것은 하루 종일입니다. 경쟁의 "우승자"에게는 상이 수여됩니다. 그러나 우리는 승자가 누구인지 판단하기가 어렵다는 것을 알게되었습니다. 각 테스트 사례에 대해 포인트를 할당했습니다. 따라서 이와 같은 단위 테스트를 작성하면 ... for …

3
빌드 자동화 vs 배포 자동화 vs 지속적인 통합
보다 효율적으로 운영하고 싶습니다. 운영 도구를 효율적으로 사용하고 싶습니다. 이를 염두에두고 지속적인 통합에 대해 더 많이 배우고 싶었지만 여기에는 여러 가지가있는 것 같습니다. 나는 실제로 내 작업 (IntelliJ, WebStorm ...)에서 Jetbrains 슈트와 함께 일하고 있으므로 계속 사용하고 싶었고 TeamCity를 사용하여 지속적인 통합을위한 많은 플러그인이있는 훌륭한 도구가되었습니다. 내 문제는 차이점이 무엇인지 …

2
ETL 및보고 프로젝트에 대해 어떻게 단위 테스트를 사용하여 TDD 방법을 사용합니까?
ETL 프로젝트는 SSIS, PowerCenter 등과 같은 ETL (추출-변환-로드) 도구를 사용하여 작성된 프로젝트입니다. 일반적으로 외부 소스에서 데이터를 읽고 스테이징 데이터베이스로로드하고 특정 변환을 수행하여 최종 데이터베이스로로드합니다. 간단한 예는 SSIS를 사용하여 SSIS를 사용하여 학교 교사가 제공 한 Excel 파일을 읽고 데이터베이스에로드하는 것입니다. 그런 다음 저장 프로 시저 또는 더 많은 SSIS 패키지를 작성하여 …
12 unit-testing  sql  tdd 

1
Grails 애플리케이션을 Scala Play / Spray로 마이그레이션
HTML을 제공하는 PostgreSQL 및 GSP를 통해 GORM / Hibernate를 사용하는 중간 규모의 Grails 웹 애플리케이션과 몇 가지 REST API가 있습니다. 우리는 Scala를 표준화하고 있으며 Slick과 함께이 데이터베이스를 Play 또는 Spray로 마이그레이션하여 기존 데이터베이스에 액세스하려고합니다. Nimble 은 현재 인증 / 권한 부여 및 사용자 / 역할 등에 사용됩니다. 조치. 빅뱅 마이그레이션을 …

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

4
파일 이름 인코딩에 대한 요구 사항 표현
요구 사항 사양을 작성하는 중이며 요구 사항을 표현하는 데 딜레마가 있습니다. 시나리오 : 웹 사이트에서 파일을 다운로드하며 다운로드 한 파일은 CM 도구의 항목에 첨부해야합니다. 다운로드 한 파일에는 ASCII, ISO-8859-1, 일본어 등의 이름이 있습니다. 아래 문구에서 "비 ASCII"는 모든 상황에 적용됩니까? 다운로드 한 파일 이름에 ASCII가 아닌 문자가 포함되어있을 수 있으며이 …

2
'zip'이 컬렉션의 매달려있는 꼬리를 무시하는 이유는 무엇입니까?
C # , Scala, Haskell, Lisp 및 Python 의 zip동작 은 동일 합니다. 하나의 컬렉션이 더 길면 꼬리는 자동으로 무시됩니다. 예외도 발생할 수 있지만이 방법을 사용하는 언어에 대해서는 들어 보지 못했습니다. 이것은 나를 퍼즐. 왜 그렇게 zip설계된 이유를 아는 사람이 있습니까? 나는 다른 언어가 이런 식으로하기 때문에 새로운 언어를 생각합니다. …

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