소프트웨어 공학

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

3
“상속성 구성”이“건조한 원칙”을 위반하고 있습니까?
예를 들어, 다른 클래스를 확장 할 클래스가 있다고 가정합니다. public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } 일부 서브 클래스 : public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } 사실, 서브 클래스에는 재정의 할 메소드가 없으며 …

5
메소드를 호출 할 수 있다는 것을 정의하는 것보다 메소드를 정의하는 것이 어떻게 강력한 약속보다 우선 할 수 있습니까?
보낸 사람 : http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma : 10 년이 지난 후에도 여전히 그렇습니다. 상속은 행동을 바꾸는 멋진 방법입니다. 그러나 우리는 서브 클래스가 그것을 재정의하는 메소드가 호출되는 컨텍스트에 대해 쉽게 가정 할 수 있기 때문에 취하기 쉽다는 것을 알고 있습니다. 플러그인하는 서브 클래스 코드가 호출되는 암시 적 컨텍스트로 인해 기본 클래스와 …


8
객체의 기능은 구현하는 인터페이스에 의해 독점적으로 식별되어야합니까?
C #의 is연산자와 Java의 instanceof연산자를 사용하면 개체 인스턴스가 구현 한 인터페이스 (또는 기본 클래스의 기본 클래스)를 분기 할 수 있습니다. 인터페이스가 제공하는 기능을 기반으로 고수준 분기에이 기능을 사용하는 것이 적절합니까? 아니면 기본 클래스가 객체가 가진 기능을 설명하기위한 인터페이스를 제공하기 위해 부울 변수를 제공해야합니까? 예: if (account is IResetsPassword) ((IResetsPassword)account).ResetPassword(); else …

2
무제한의 매개 변수를 사용하는 메소드가 종종 더 적은 매개 변수로 과부하를 정의하는 이유는 무엇입니까?
예를 들어 System.IO.Path.Combine.NET 의 메서드에는 다음과 같은 오버로드가 있습니다. Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) 마지막 세 가지의 요점은 무엇입니까? 첫 번째 params키워드 는 키워드를 사용하여 자세히 살펴 보는 것처럼 모든 것을 다룹니다 . 이전 버전과의 호환성에 대한 논쟁은 Combine(String, String)변형이 .NET 4까지의 유일한 버전 …

7
간단한 (자체 포함 된) 기능에 대한 테스트를 유지해야합니까?
이걸 고려하세요: public function polynominal($a, $b, $c, $d) { return $a * pow($x, 3) + $b * pow($x, 2) + $c * $x + $d; } 위 함수에 대한 다양한 테스트를 작성하고 자신과 다른 사람들에게 "작동"한다고 증명한다고 가정하십시오. 그렇다면 왜 그런 시험을 치르고 행복하게 살 수 있습니까? 내 요점은 일부 …

2
4 번째와 5 번째 프로그래밍 언어 세대 란 무엇입니까? 더 있나요? [닫은]
학교 / 대학 수준으로 분류되는 경우가 많기 때문에 널리 사용되는 프로그래밍 언어 (C #, Java, C ++)는 모두 3 세대 언어입니다 (기계의 물리적 부분에서 더 높은 추상화 수준으로). 또한 어셈블리 언어는 2 차 언어로, 기계 언어는 1 세대 언어로 분류됩니다. 처음에는 SQL이 4 세대 언어로 간주되어야한다고 생각했습니다. 더 추상적이고 반복적 …

9
학교는 왜 목록보다 배열을 가르치는가? [닫은]
학교에서 초기 프로그래밍 수업을위한 대부분의 과제는 배열을 사용해야했습니다. 나는 지금 풀 타임으로 일하고 있으며, 내가 작업 한 프로젝트에 배열을 사용하지 않았습니다. 기존 프로젝트에서도 배열을 사용하는 것을 보지 못했습니다. 제 생각에는 List 가 사용하기 쉽고 표준입니다. 교수는 왜 학생들에게 과제에 배열을 사용하도록 지시합니까? 학생들이 기본을 이해하도록하는 것입니까? 대부분의 대학에서 Java를 가르치므로이 …

7
아주 적은 시간에 중요한 기술적 결정을 내리는 방법
회사에서 WPF 응용 프로그램을 Linux / Android / iOS로 이식하기 위해 사용할 도구 및 플랫폼에 대해 매우 진지한 결정을 내리는 데 2 ​​일이 걸렸습니다. 분명히 나는 ​​2 일이면 모든 가능한 옵션과 시도, 프로토 타입 제작 등을 읽는 데 충분하지 않다고 말할 수 있습니다. 말할 수 있습니다. 약간 도움이되지 않습니다 .2 …


6
단위 테스트 및 데이터베이스 : 실제로 데이터베이스에 어느 시점에 연결합니까?
데이터베이스에 연결하는 테스트 클래스 (예 : "서비스 테스트 클래스 연결 ..." 및 "단위 테스트-데이터베이스 커플 링 앱") 에 대한 질문에 대한 답변이 있습니다 . 간단히 말해 데이터베이스에 연결해야하는 클래스 A가 있다고 가정합니다. A를 실제로 연결하는 대신 A에 연결하는 데 사용할 수있는 인터페이스를 A에 제공합니다. 테스트를 위해 연결하지 않고도 몇 가지 …

5
코드 검토에서 긍정적 인 의견을 제시하는 것이 적절합니까, 아니면 건설적인 비판에만 해당됩니까?
나는 최근에 많은 코드 검토를 해왔으며, 코드 검토에 긍정적이고 / 혹은 재미있는 주석을 넣는 긍정적이고 부정적인 영향과 전문성이 확실하지 않습니다. 우리 팀의 코드 검토 플랫폼으로 Github을 사용하므로 누구나 의견을 볼 수 있습니다. 나는 일반적으로이 플랫폼을 사용하여 시작부터 끝까지 전체 프로세스를 볼 수 있고 역사적입니다.

3
LESS에 비해 SASS의 장점이 있습니까? [닫은]
이 CSS 전처리기에 대해 연구하려고합니다. CSS 전 처리기보다 sass를 사용하는 것보다 이점이 있습니까? 내가 찾고있는 요소에는 커뮤니티 규모, 소프트웨어 프로젝트 성숙도 등이 있습니다. 나는 이것과 관련된 또 다른 질문 이 있다는 것을 알고 있지만 건설적으로 작성되고 종결되지 않았습니다. 최신 정보 과 같은 부트 스트랩 지금 말대꾸를 사용하는 동안 간
36 css  less 

6
Yahtzee 게임을 어떻게 TDD해야합니까?
Yahtzee 게임 TDD 스타일을 작성한다고 가정 해 봅시다. 5 개의 다이 롤 세트가 풀 하우스인지 여부를 판별하는 코드 부분을 테스트하려고합니다. 내가 아는 한, TDD를 수행 할 때 다음 원칙을 따르십시오. 먼저 테스트를 작성하십시오 가능한 가장 간단한 것을 작성하십시오 세분화 및 리팩터링 따라서 초기 테스트는 다음과 같습니다. public void Returns_true_when_roll_is_full_house() { …
36 unit-testing  tdd 

6
iOS에서 크고 서투른 UITableViewController를 피하는 방법은 무엇입니까?
iOS에서 MVC 패턴을 구현할 때 문제가 있습니다. 인터넷을 검색했지만이 문제에 대한 좋은 해결책을 찾지 못하는 것 같습니다. 많은 UITableViewController구현이 다소 큰 것 같습니다. 내가 본 대부분의 예제는 UITableViewController구현 <UITableViewDelegate>하고 <UITableViewDataSource>. 이러한 구현은 왜 커지는 큰 이유 UITableViewController입니다. 한 가지 해결책은 <UITableViewDelegate>및 을 구현하는 별도의 클래스를 만드는 것 <UITableViewDataSource>입니다. 물론 이러한 …

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