소프트웨어 공학

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

2
스칼라의 특성은 어떻게“다이아몬드 오류”를 피합니까?
(참고 : 명백한 이유로 제목에서 '문제'대신 '오류'를 사용했습니다 ..;)). Scala의 Traits에 대한 기본적인 내용을 읽었습니다. Java 또는 C #의 인터페이스와 유사하지만 메소드의 기본 구현을 허용합니다. 궁금한 점이 있는데, 이것이 "다이아몬드 문제"의 원인이 될 수없는 이유입니다. 이것이 많은 언어가 다중 상속을 먼저 ​​피하는 이유입니다. 그렇다면 스칼라는 이것을 어떻게 처리합니까?

2
순수한 미학적 이유로 중첩 함수를 작성 하시겠습니까?
나는 항상 다른 프로그래머들이 순수한 미적 기능을 만드는 아이디어에 대해 어떻게 생각하는지 궁금했습니다. 데이터 덩어리를 처리하는 함수가 있다고 가정 해보십시오 Function ProcessBigData. 내가 그 데이터에 대해서만 유효, 여러 공정 단계를 필요 말 : Step1, Step2, Step3. 소스 코드에서 가장 많이 보는 일반적인 접근 방식은 다음과 같이 주석을 작성하는 것입니다. Function …

5
과도한 메소드 과부하를 피하는 방법은 무엇입니까?
우리는 응용 프로그램의 소스 코드에 꽤 많은 장소가 있습니다. 한 클래스에는 동일한 이름과 다른 매개 변수를 가진 많은 메소드가 있습니다. 이러한 메소드에는 항상 '이전'메소드의 모든 매개 변수와 하나 이상의 매개 변수가 있습니다. 그것은 긴 진화 (레거시 코드)와 이러한 생각 (믿습니다)의 결과입니다. " A를 수행하는 메소드 M이 있습니다. A + B를 …

6
TDD 관점에서 볼 때 모의 대신 라이브 엔드 포인트를 테스트하면 나쁜 사람입니까?
나는 종교적으로 TDD를 따릅니다. 내 프로젝트는 일반적으로 의미있는 테스트 사례와 함께 85 % 이상의 테스트 범위를 갖습니다. 저는 HBase 와 많은 작업을 수행 하고 있으며 주요 클라이언트 인터페이스 인 HTable은 조롱하기가 매우 어렵습니다. 라이브 엔드 포인트를 사용하는 테스트를 작성하는 것보다 단위 테스트를 작성하는 데 3-4 배 더 걸립니다. 철학적으로 모의를 …

3
OOP에서 '추상'의 정의에 대해 혼란
OOP에서 '추상화'의 정의를 이해하려고합니다. 나는 몇 가지 주요 정의를 보았습니다. 모두 유효합니까? 그들 중 하나가 잘못 되었습니까? 혼란 스러워요. (나는 내 ​​자신의 말로 정의를 다시 썼다). 정의 1 : 추상화는 실제 세계에서 일부 객체를 가져 와서 프로그래밍 용어로 변환하는 개념입니다. 이러한 생성과 같은 Human클래스를 제공하고 int health, int age, String …

4
네이티브 머신 코드를 쉽게 디 컴파일 할 수없는 이유는 무엇입니까?
Java, VB.NET, C #, ActionScript 3.0 등과 같은 바이트 코드 기반 가상 머신 언어를 사용하면 인터넷에서 디 컴파일러를 다운로드하고 바이트 코드를 한 번에 실행하는 것이 얼마나 쉬운 지에 대해 종종 듣습니다. 종종 몇 초 만에 원본 소스 코드와 너무 멀지 않은 것을 생각해냅니다. 아마도 이런 종류의 언어는 특히 그것에 취약합니다. …

4
개발자가 제품 소유자에게 기능 아이디어를 제안하는 것이 정상입니까? [닫은]
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 나는 최근에 시스템 관리자로 일한 경험이있는 개발자로 일하기 시작했습니다. Agile 기능을 사용하는 소프트웨어 개발 팀이 어떻게 "우리가 구현해야하는"커뮤니케이션은 …

4
어셈블리에서 머신 코드로 이동하는 방법 (코드 생성)
코드를 기계 코드로 조립하는 단계를 시각화하는 쉬운 방법이 있습니까? 예를 들어 메모장에서 이진 파일을 열면 텍스트 형식의 기계 코드 표현이 나타납니다. 나는 당신이 보는 각 바이트 (기호)가 이진 값에 해당하는 ASCII 문자라고 가정합니까? 그러나 어셈블리에서 바이너리로 어떻게 이동합니까?

8
일반적인 코드 검토 프로세스 란 무엇이고 나쁜 것으로 간주되는 것은 무엇입니까?
우리 회사는 최근 공식적인 코드 검토를 시작했습니다. 프로세스는 다음과 같습니다. github에 제출하고, 풀 요청을 요청하고, 약 세 사람이 코드를 검토 한 다음, 모두 통과하면 코드가 입력됩니다. 프로세스는 공정한 것처럼 보이지만 코드 검토를 수행하는 세 사람은 공정하지 않은 것 같습니다. 검토를 위해 코드를 넣을 때 100-200 개의 댓글 사이에 도착합니다. 나를 …

4
컴파일러 관련 직업을 채용하기가 왜 그렇게 어려운가? [닫은]
휴무 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . 지난 주에 몇몇 단체와 저는 3 개의 주요 대학 (미국 2 곳, 영국 1 곳)에서 커리어 페어에 참가했습니다. …

4
iterable과 enumerable 사이에 차이가 있습니까?
많은 언어에는 반복 가능 또는 열거 가능이라는 매우 유사한 구조가있는 것 같습니다. 이것들은 반복되거나 열거 될 수있는 구조입니다. 이 단어들이 동의어입니까, 반복 가능한 용어와 열거 가능한 용어 사이에 미묘한 의미 차이가있어 용어의 선택을 정당화합니까?

2
상태 저장 라이브러리 위에 부작용이없는 인터페이스
에서 존 휴즈와의 인터뷰 그가 얼랑 및 하스켈에 대해 이야기 그는 얼랑의 상태 라이브러리를 사용하는 방법에 대해 말할 다음이있다 : 상태 저장 라이브러리를 사용하려면 일반적으로 부작용이없는 인터페이스를 빌드하여 나머지 코드에서 안전하게 사용할 수 있습니다. 그는 이것이 무엇을 의미합니까? 나는 이것이 어떻게 보일지에 대한 예를 생각하려고 노력하고 있지만 나의 상상력과 지식이 …

3
제네릭은 어떻게 구현됩니까?
이것은 컴파일러 내부 관점에서 질문입니다. 템플릿 (C ++)이 아닌 제네릭에 관심이 있으므로 C #으로 질문에 표시했습니다. AFAIK는 두 언어의 제네릭이 구현 방식이 다르기 때문에 Java가 아닙니다. 제네릭이없는 언어를 볼 때 매우 간단합니다. 클래스 정의의 유효성을 검사하고 계층 구조에 추가하면됩니다. 그러나 제네릭 클래스로 무엇을해야합니까? 더 중요한 것은 참조를 처리하는 방법입니다. 정적 …
16 c#  generics 

5
“팀 전체”C ++ 기능?
C ++에서 예외와 같은 기능은 전체 프로그램에 영향을 미칩니다. 전체 프로그램 에서이를 비활성화 하거나 코드 전체에서 처리해야합니다. C ++ Report 의 유명한 기사는 다음과 같습니다. 직관적으로 코딩 예외의 어려운 부분은 명시적인 던지기와 잡기가 아닙니다. 예외를 사용하는 것의 가장 어려운 부분은 임의의 예외가 발생 지점에서 처리기로 전파되어 안전하게 도착하고 프로그램의 다른 …

1
방문자 패턴 이해
GUI 컨트롤을 나타내는 클래스 계층이 있습니다. 이 같은: Control->ContainerControl->Form 다양한 작업을 수행하는 객체에서 작동하는 일련의 알고리즘을 구현해야하며 방문자 패턴이 가장 깨끗한 솔루션이라고 생각합니다. 객체 계층의 Xml 표현을 만드는 알고리즘을 예로 들어 보겠습니다. '클래식'접근법을 사용하면 다음과 같이 할 수 있습니다. public abstract class Control { public virtual XmlElement ToXML(XmlDocument document) { …

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