소프트웨어 공학

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

4
Guid.NewGuid ()가 Guid.Empty인지 확인하는 것이 가치가 있습니까?
다음 패턴으로 작업하는 프로젝트 중 하나에서 상당히 정기적으로 볼 수 있습니다. var guid = Guid.NewGuid().ToString(); while (guid == Guid.Empty.ToString()) { guid = Guid.NewGuid().ToString(); } GUID가 독창적이라고 보장 되지는 않지만 MSDN 설명서에 따라 생성 된 GUID가 0 일 수 있다는 것을 이해하지만 실제로 계산상의 의미와 개발자의 생각에 대한 사이클 테스트를 보낼 …
28 .net  security 

2
printf 계열 함수의 형식 지정자로 퍼센트 부호 (%)가 선택된 이유는 무엇입니까?
적어도 C에서는 printf함수 계열 을 사용하여 서식이 지정된 문자열을 인쇄 한다는 것을 누구나 알고 있습니다. 이러한 함수는 퍼센트 부호 ( %)를 사용 하여 형식 지정자의 시작을 나타냅니다. 예를 들어, %d를 인쇄하는 수단 int, 및 %u의미를 인쇄 unsigned int. printf함수 및 형식 자리 표시자가 작동 하는 방식에 익숙하지 않거나 단순히 새로 …
27 c  history 

2
비즈니스 로직이 변경 될 때 단위 테스트가 실패하면 부서지기 쉬운 것으로 간주됩니까?
아래 코드를 참조하십시오; 그것은 여성의 성별을 가진 사람이 제안을받을 수 있는지 여부를 테스트합니다 1 : [Fact] public void ReturnsFalseWhenGivenAPersonWithAGenderOfFemale() { var personId = Guid.NewGuid(); var gender = "F"; var person = new Person(personId, gender); var id = Guid.NewGuid(); var offer1 = new Offer1(id,"Offer1"); Assert.False(offer1.IsEligible(person)); } 이 단위 테스트가 성공합니다. 그러나 …

5
정수에서 단일로 변환하면 정밀도가 떨어질 수 있습니다
나는 읽고 있었다 엄격한 전환 및 옵션을 넓히는에 대한 Microsoft의 기사 나는 부분에 도착했을 때를 다음 변환은 정밀도를 잃을 수 있습니다. 정수에서 단일 롱 투 싱글 또는 더블 10 진수를 단일 또는 이중으로 그러나 이러한 변환은 정보 나 규모를 잃지 않습니다. .. 이에 따라 데이터 유형과 관련된 다른 문서 , …

4
남녀 이외의 성별 모델에 대한 산업 표준이 있습니까?
개인, 사용자, 서비스 및 쿠폰, 서명 패키지 등과 같은 상용 데이터와 같은 스타트 업 회사의 모든 서비스에 대해 일반적인 비 기능적 필수 조건으로 사용해야하는 데이터베이스를 모델링하고 있습니다. 성별 모델 에 대해 생각하고 있습니다. 현대와 주체적 정체성에 관한 국가마다 다른 법률을 적용 할 때, 남성 과 여성의 선택 이상으로 내 개인을 …

2
순수한 추상 클래스 및 인터페이스 구현
비록 이것이 C ++ 표준에서는 필수는 아니지만, 예를 들어 GCC가 순수한 추상 클래스를 포함하여 부모 클래스를 구현하는 방식은 해당 클래스의 모든 인스턴스화에 해당 추상 클래스의 v 테이블에 대한 포인터를 포함시키는 것입니다. . 당연히 이것은이 클래스의 모든 인스턴스 크기를 가지고있는 모든 상위 클래스에 대한 포인터로 팽창합니다. 그러나 많은 C # 클래스와 …

3
엘리베이터가 여행 플로어 주문의 최단 경로를 찾기 위해 어떤 알고리즘을 사용합니까?
엘리베이터를 시뮬레이션하려고합니다. 항상 한 번에 한 번만 주문하여 매우 간단하게 시작한 다음 대기열 형식으로 엘리베이터에 메모리를 추가하여 바닥이 눌린 순서대로 바닥을 이동하도록합니다. 분명히 최선의 방법은 아닙니다. 그래서 현재 저는 매우 간단하고 "짧은 시야"논리를 사용하고 있습니다. 즉, 현재 층에서 가장 가까운 층을 찾아서 다음 목적지로 설정하고 더 이상 층이 목록에 없을 …

6
버그 수정에 약간의 이점이 있습니까?
이전 동료로부터 버그의 우선 순위 목록을 내려 가면 버그가 더 모호해 지거나 고객 만족도가 낮아지는 유스 케이스 때문에 모든 버그를 수정해야하는 것은 아니라고 들었습니다. 그러나 여전히 그 버그를 고치는 데 상당한 시간을 소비해야합니다. 이 개념에 대해 제품 소유자를 설득하기 위해 좋은 리소스를 찾을 수 없었습니다. 소프트웨어 개발에 한계 비용이 있는지 …

8
소스 코드에서만 메모리 할당 해제 시점을 정적으로 예측할 수 있습니까?
메모리 (및 리소스 잠금)는 프로그램 실행 중 결정적인 지점에서 OS로 반환됩니다. 프로그램 자체의 제어 흐름은 주어진 리소스를 할당 해제 할 수있는 위치를 알기에 충분합니다. 인간 프로그래머가 fclose(file)프로그램을 수행 할 때 작성 위치를 알고있는 것처럼. GC는 제어 흐름이 실행될 때 런타임 중에 직접 파악하여이 문제를 해결합니다. 그러나 제어 흐름에 대한 진실의 …
27 parsing  memory 

7
동료 / 코드 검토 좌절
나는 나 자신을 슈퍼 스타 개발자라고 부르지는 않지만 상대적으로 숙련 된 전문가라고 부를 것이다. 코드 품질을 높은 수준으로 유지하려고 노력하고 항상 코딩 스타일을 개선하고, 코드를 효율적이고 읽기 쉽고 일관성있게 유지하면서 팀이 패턴 및 방법론을 따라 일관성을 유지하도록 장려합니다. 또한 품질과 속도의 균형이 필요하다는 것도 알고 있습니다. 이를 달성하기 위해 동료 …

6
단위 테스트없이 민첩
작업중인 코드베이스에 0 % 단위 테스트 적용 범위가있는 경우 "민첩한 개발"에 대해 이야기하거나 "민첩한 방법론"을 적용한다고 주장하는 것이 합리적입니까? (그리고 팀으로서 당신은 그것에 대해 아무것도하지 않습니다). 분명히하기 위해, 나에게는 이해가되지 않습니다. 개인적 경험에 따르면 단위 테스트는 실제로 "민첩"할 수있는 유일한 도구 (예 : 변경에 응답하고 설계를 개선하며 지식을 공유하는 등)이며 …

5
예외를 catch / throw하면 순수한 방법이 불완전합니까?
다음 코드 예제는 내 질문에 대한 컨텍스트를 제공합니다. Room 클래스는 대리자로 초기화됩니다. Room 클래스의 첫 번째 구현에서는 예외를 발생시키는 델리게이트에 대한 가드가 없습니다. 이러한 예외는 대리자가 평가되는 North 속성으로 버블 링됩니다 (주 : Main () 메서드는 클라이언트 코드에서 Room 인스턴스가 사용되는 방법을 보여줍니다). public sealed class Room { private readonly …

3
크로스 플랫폼 애플리케이션에“지방 바이너리”가 더 널리 사용되지 않는 이유는 무엇입니까?
내가 아는 한, 소위 "지방 이진"(여러 시스템의 기계어 코드를 포함하는 실행 파일)은 Apple PC에서만 실제로 사용되며 심지어는 전환이 필요했기 때문에 사용 된 것처럼 보입니다. x86의 PowerPC 요즘 많은 소프트웨어가 크로스 플랫폼이며, 단일 지방 바이너리를 만드는 것은 여러 가지 방법으로 운영 체제와 아키텍처의 각 조합에 대해 수십 가지 또는 다른 다운로드를 …

2
누가 Exception.Message를 읽어야합니까?
예외를 설계 할 때 사용자 나 개발자가 이해해야하는 메시지를 작성해야합니까? 실제로 예외 메시지를 읽는 사람은 누구입니까? 예외 메시지가 전혀 유용하지 않다는 것을 알고 항상 작성하는 데 어려움을 겪고 있습니다. 일반적으로 예외 유형에 따라 작동하지 않는 이유와 사용자 정의 특성이 파일 이름, 색인, 키 등과 같은 정보를 추가 할 수 있습니다. …


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