소프트웨어 공학

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

3
구현이 보류 중이지만 추상적이지는 않은 메소드에 대해 NotImplementedError를 발생시키는 것이 일반적입니까?
NotImplementedError구현하려는 메소드에 대해 를 높이고 싶지만 아직 수행하지 않은 곳에서. 이미 부분적으로 구현했을 수도 있지만 raise NotImplementedError()아직 마음에 들지 않기 때문에 앞에 추가하십시오 . 다른 한편으로, 나는 또한 다른 사람들이 내 코드를 유지하는 것을 더 쉽게 할 수 있고 좋은 이유 때문에 규칙이 존재할 수 있기 때문에 규칙을 고수하고 싶습니다. …

1
관련이 없지만 거의 동일한 코드를 건조
거의 동일한 코드가 있지만 주 변수에서 상속되지 않고 완전히 다른 유형을 사용합니다. 특히 Roslyn에서 C # 및 VB.NET으로 분석기를 작성 중이며 다음과 같은 유형이 있습니다. Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax 코드가 똑같은 일을하고 있기 때문에 가능한 한 DRY를 유지하고 가능한 한 적은 별도의 (그러나 유형과는 다른) 방법으로 나누거나 두 방법이 있기 때문에 완전히 …
33 c#  design  dry 

12
회사에서 불법 복제 된 소프트웨어의 사용
몇 달 전에 회사에서 엔지니어로 일하기 시작했습니다. 소규모 회사이며 기본적으로 전화로 서비스에 응답합니다. 이제 일반 전화에서 IP 전화로 전환하여 컴퓨터가 업무에서 더 중요한 자리를 차지하게되었습니다. 그러나 작업자가 사용하는 모든 컴퓨터에는 운영 체제를 포함하여 불법 복제 소프트웨어가 장착되어 있습니다. 게다가 그들은 다른 컴퓨터를 위해 사본을 만들기 위해 하나의 라이센스를 구매하지도 않았습니다. …
33 ethics 

7
라이브러리없이 작업을 수행 할 수있을 때 라이브러리를 사용해야합니까? [닫은]
오픈 소스 JavaScript 플러그인을 사용하여 작업을 수행 할 수있는 상황에 처해 있습니다. 그러나 그것을 사용하려고 할 때, 나는 이미 내가 한 일을 많이 재 설계해야한다는 것을 알았습니다. 그리고 그것은 겸손한 견해로 프로젝트에 특정 복잡성을 추가합니다. 깨끗한 코드로 동일한 작업을 수행 할 수있는 반면, 지금까지 수행 한 작업을 변경할 필요없이 직접 …

6
Clean Code의 블록과 추가 매개 변수에 추가 라인
문맥 에서 클린 코드 , 35 페이지, 그것은 말한다 이는 if 문, else 문, while 문 등의 블록은 한 줄 길이 여야 함을 의미합니다. 아마도 그 라인은 함수 호출이어야합니다. 이렇게하면 둘러싼 함수가 작게 유지 될뿐만 아니라 블록 내에서 호출 된 함수의 이름이 잘 설명 될 수 있으므로 다큐멘터리 값도 추가됩니다. …
33 clean-code  solid 

9
고가의 프로그래머를 어떻게 대해야합니까?
우리 회사에서는 모바일 UI 개발과 같이 복잡하지 않은 많은 일을해야합니다. 숙련 된 프로그래머가 초보자보다 4 배나 많은 비용이 든다고합시다. 둘 다 기본적으로 같은 시간에 겉보기에 간단한 것들을 완성 할 수 있습니다. 차이점은 숙련 된 프로그래머가 버그를 줄이고 코드가 더 안정적이라는 것입니다. 초보자 프로그래머는 다른 모든 사람 (PM, 클라이언트 등)의 많은 …

6
개발자의 랩톱에 중요한 데이터베이스를 저장하기위한 좋은 보안 방법은 무엇입니까?
우리는 몇 가지 주어진 것들이 있습니다 : 개발자는 머신에 프로덕션 데이터베이스의 복제본이 필요합니다. 개발자는 App.config 파일에서 해당 데이터베이스의 비밀번호를 갖습니다. 우리는 상기 데이터베이스의 데이터가 손상되는 것을 원하지 않습니다. 몇 가지 제안 된 솔루션 및 단점 : 전체 디스크 암호화. 이것은 모든 문제를 해결하지만 랩탑의 성능을 저하 시키며 우리는 신생 기업이므로 …

4
스크럼-스프린트 중에 팀원들이 바쁘다
따라서 스크럼 스프린트는 특정 기능 세트를 구현해야하는 고정 된 시간입니다. 그리고 스크럼 팀은 이러한 기능을 제공하기 위해 최선을 다하는 모든 사람들로 구성되며, 대부분은 일반적으로 개발자와 테스터입니다. 이러한 규칙을 설정하면 전체 스프린트 동안 이러한 모든 사람들을 바쁘게 유지하는 방법이 궁금 할 것입니다. 스프린트의 시작 부분에는 아직 테스트 할 것이 없으며 스프린트의 …
33 agile  scrum  sprint 

5
예외 계약을 작성하고 시행하려면 어떻게해야합니까?
팀 isSuccessful에서 오류 코드와 함께 부울 이나 열거 형 을 반환하는 대신 C ++에서 예외를 사용할 수 있도록 설득하려고 합니다. 그러나 나는 그의 비판에 반대 할 수 없다. 이 라이브러리를 고려하십시오. class OpenFileException() : public std::runtime_error { } void B(); void C(); /** Does blah and blah. */ void B() …
33 c++  exceptions 

8
C가 그렇다면 Java가 정확히 if (5) {…}와 같은 숫자 조건을 허용하지 않는 이유는 무엇입니까?
이 두 가지 작은 프로그램이 있습니다. 기음 #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } 자바 class type_system { public static void main(String args[]) { if (5) { System.out.println("true"); } else { System.out.println("false"); } } } 오류 메시지를보고합니다. type_system.java:4: error: incompatible …
33 java  c  type-systems 

5
매개 변수 또는 반환 값으로 C 구조체를 초기화해야합니까? [닫은]
내가 일하는 회사는 다음과 같은 초기화 기능을 통해 모든 데이터 구조를 초기화하고 있습니다. //the structure typedef struct{ int a,b,c; } Foo; //the initialize function InitializeFoo(Foo* const foo){ foo->a = x; //derived here based on other data foo->b = y; //derived here based on other data foo->c = z; //derived here …

5
많은 데이터 구조에서 삽입보다 삭제가 구현하기가 더 어려운 이유는 무엇입니까?
많은 (대부분의) 데이터 구조에 대한 삽입보다 삭제가 구현하기가 훨씬 어려운 특정 이유를 생각할 수 있습니까? 빠른 예 : 링크 된 목록. 삽입은 사소한 것이지만 삭제에는 몇 가지 특별한 경우가있어 상당히 어려워집니다. AVL 및 Red-black과 같은 자체 균형 이진 검색 트리는 고통스러운 삭제 구현의 전형적인 예입니다. 나는 그것이 대부분의 사람들이 생각하는 …

1
raw, weak_ptr, unique_ptr, shared_ptr 등… 현명하게 선택하는 방법?
C ++에는 많은 포인터가 있지만 5 년 정도면 정직하게 C ++ 프로그래밍 (구체적으로 Qt 프레임 워크)에서는 오래된 원시 포인터 만 사용합니다. SomeKindOfObject *someKindOfObject = new SomeKindOfObject(); 다른 "스마트 한"포인터가 많이 있다는 것을 알고 있습니다. // shared pointer: shared_ptr<SomeKindofObject> Object; // unique pointer: unique_ptr<SomeKindofObject> Object; // weak pointer: weak_ptr<SomeKindofObject> Object; 그러나 …

6
이벤트 중심 아키텍처에서 초기 상태를 처리하는 방법은 무엇입니까?
에서 이벤트 구동 아키텍처 이벤트가 시스템을 통해 전송 될 때, 각 성분은 작용한다. 브레이크 페달과 브레이크 라이트가 장착 된 가상 자동차를 상상해보십시오. 광 회전 브레이크 에 그것이 받으면 brake_on의 이벤트 및 오프 그것이 받으면 brake_off의 이벤트. 브레이크 페달이 전송 brake_on의 버튼을 눌렀을 경우, 및 brake_off의 출시 이벤트. 브레이크 페달을 밟은 …

9
QA 직원이 볼 수없는 캐싱 로직을 어떻게 테스트 할 수 있습니까?
웹 애플리케이션에서 캐싱 레이어를 구현 한 후 캐싱이 사용자에게 투명하기 때문에 QA가 어떻게이를 테스트해야하는지 궁금합니다. 내가 가지고있는 한 가지 아이디어는 캐시를 채우는 코드를 호출하는 메소드에 로깅을 저장하고 캐시에서 객체를 가져올 때와 데이터베이스에서 재생산이 필요할 때를 기록한 다음 테스터가 로그를 볼 수 있는지 확인하는 것입니다. 예를 들어, 모든 페이지보기 대신 10 …
33 testing  caching 

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