소프트웨어 공학

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

5
“구성에 대한 컨벤션”이 기본 프로그래밍 원칙을 위반하지 않습니까?
WPF MVVM 프레임 워크 Caliburn.Micro 를보고 많은 표준 항목이 명명 규칙을 기반으로한다는 것을 읽었습니다 . 예를 들어, View의 속성을 ViewModel의 속성에 자동 바인딩합니다. 이것이 편리한 것처럼 보이지만 (일부 보일러 플레이트 코드를 제거함) 첫 번째 본능적 인 반응은이 코드를 읽는 새로운 프로그래머에게는 완전히 분명하지 않다는 것입니다. 다시 말해서, 응용 프로그램의 기능은 …

5
파이썬은 왜 멀티 라인 람다를 허용하지 않습니까?
누군가 BDFL이 파이썬 람다를 한 줄로 선택하는 구체적인 이유를 설명 할 수 있습니까? 이것은 좋다 : lambda x: x**x 이로 인해 오류가 발생합니다. lambda x: x**x 람다를 여러 줄로 만들면 일반적인 들여 쓰기 규칙을 어떻게 "방해"하고 더 많은 예외를 추가해야하지만 이점은 가치가 없다는 것을 이해합니다. 예를 들어 JavaScript를보십시오. 익명의 기능없이 …
50 lambda  python 


7
SOLID로 전환 한 후 엄청나게 증가한 클래스 수 관리 및 구성?
지난 몇 년 동안, 우리는 한 번에 몇 단계 씩 단계적으로 개선 된 코드로 점진적으로 전환 해 왔습니다. 우리는 마침내 적어도 SOLID와 비슷한 것으로 전환하기 시작했지만 아직 멀지 않았습니다. 전환 이후 개발자의 가장 큰 불만 중 하나는 이전에 모든 작업에서 5-10 개의 파일을 다루는 개발자 만 필요했던 수십 및 수십 …

4
리플렉션을 사용하여 일반 세터와 게터를 만드는 것이 좋지 않은 이유는 무엇입니까?
얼마 전 나는 모든 가변 변수에 대해 getter와 setter를 피하는 방법에 대한 질문 에이 답변 을 썼습니다 . 당시 나는 이것이 나쁜 생각이라고 말로 표현하기 어려웠지만 OP는 그것을 어떻게 해야하는지 명시 적으로 요구했다. 나는 이것이 왜 문제가 될 수 있는지에 대해 여기에서 검색했고, 이 질문을 찾았습니다. 이 질문 은 절대적으로 …
49 java  reflection 

6
C로 구조체를 반환하는 많은 함수가 실제로 구조체에 대한 포인터를 반환하는 이유는 무엇입니까?
return함수 설명 에서 전체 구조를 반환하는 대신 구조체에 대한 포인터를 반환하면 어떤 이점이 있습니까? 나는 같은 fopen저수준 함수와 같은 함수에 대해 이야기하고 있지만 아마도 구조에 대한 포인터를 반환하는 더 높은 수준의 함수가있을 것입니다. 나는 이것이 프로그래밍 문제가 아니라 디자인 선택에 더 가깝다고 믿으며 두 방법의 장단점에 대해 더 알고 싶습니다. …

2
MVC에 비해 MVP의 개선점은 무엇입니까?
3 일 동안 MVC (Model-View-Controller) 및 MVP (Model-View-Presenter) 패턴에 대해 읽었습니다 . 그리고 나를 매우 귀찮게하는 한 가지 질문이 있습니다. MVC가 이미있을 때 소프트웨어 설계자가 MVP를 발명 한 이유는 무엇입니까? MVC가 해결하지 못했거나 심하게 해결되지 않았지만 MVP가 해결할 수있는 문제는 무엇입니까? MVP는 어떤 문제를 해결하려고합니까? MVP의 역사와 설명 또는 MVC와 …

11
"추론하기 쉬운"-그게 무슨 뜻입니까? [닫은]
다른 개발자가이 문구를 사용하여 일부 패턴을 "광고"하거나 모범 사례를 개발하는 경우가 많이 들었습니다. 이 문구는 대부분 함수형 프로그래밍의 이점에 대해 이야기 할 때 사용됩니다. "추론하기 쉬운"이라는 문구는 설명이나 코드 샘플없이 그대로 사용되었습니다. 그래서 그것은 다음 "버즈 (buzz)"단어와 같이되고, 더 "경험있는"개발자들이 대화에 사용합니다. 질문 : "추론하기 쉽지 않음"의 몇 가지 예를 …

7
같은 멤버이지만 이름이 다른 두 개의 구조체는 좋은 생각입니까?
극좌표와 데카르트 좌표로 작업하는 프로그램을 작성 중입니다. 그것은 감각 점, 하나의 각 종류의 두 개의 서로 다른 구조체를 만들 수 있습니까 X및 Y회원들과 하나가 함께 R하고 Theta회원. 또는 너무 많이이며 함께 한 구조체를하는 것이 좋습니다 first및 second회원으로. 내가 쓰고있는 것은 간단하며 크게 바뀌지 않습니다. 그러나 디자인 관점에서 더 나은 점이 …
49 design 

10
사용자 정의 객체를 매개 변수로 사용하지 않아야합니까?
사용자 정의 객체 Student 가 있다고 가정합니다 . public class Student{ public int _id; public String name; public int age; public float score; } 그리고 학생의 정보를 표시하는 데 사용되는 Window 클래스 는 다음과 같습니다. public class Window{ public void showInfo(Student student); } 그것은 정상적인 것처럼 보이지만 Window 는 함수를 …

6
많은 작은 요청과 소수의 큰 요청 (API 디자인)
현재 다음과 같이 조직과 프로젝트를 진행하고 있습니다. 클라이언트 -REST API를 통해 기본 서버에서 데이터를 가져옵니다. 서버 -타사 API를 통해 다른 여러 서버에서 데이터를 요청합니다. 타사 API-서버에 데이터를 제공하는 통제 할 수없는 서비스 (Reddit, Hackernews, Quora 등) 주장을 위해 클라이언트가 먼저 각 타사 API의 항목 목록이 필요하다고 가정 해 봅시다. 이 …

3
C ++ 강력 형식 typedef
컴파일 단계에서 특정 유형의 버그를 잡기 위해 강력하게 유형이 지정된 typedef를 선언하는 방법을 생각했습니다. 종종 여러 유형의 ID로 int를 typedef하거나 위치 또는 속도에 대한 벡터를 typedef하는 경우가 종종 있습니다. typedef int EntityID; typedef int ModelID; typedef Vector3 Position; typedef Vector3 Velocity; 이것은 코드의 의도를 더 명확하게 만들 수 있지만, 코딩의 …
49 c++  c++11  type-safety 

8
프로그래밍 언어에서 바텀 타입을 사용해야하는 이유가 있습니까?
하단 유형은 주로 수학 유형 이론에 나타나는 구성입니다. 빈 유형이라고도합니다. 값이없는 유형이지만 모든 유형의 하위 유형입니다. 함수의 반환 유형이 맨 아래 유형이면 반환되지 않습니다. 기간. 영원히 반복되거나 예외가 발생할 수 있습니다. 프로그래밍 언어에서이 이상한 유형을 갖는 점은 무엇입니까? 흔하지는 않지만 Scala 및 Lisp와 같은 일부에는 존재합니다.

5
모든 <algorithm> 함수가 컨테이너가 아닌 범위 만 사용하는 이유는 무엇입니까?
에 유용한 함수가 많이 &lt;algorithm&gt;있지만, 모두 "시퀀스"-반복자 쌍에서 작동합니다. 예를 들어 컨테이너가 있고 컨테이너를 실행하고 싶다면 다음과 같이 std::accumulate작성해야합니다. std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); 내가 할 모든 것은 : int sum = std::accumulate(myContainer, 0); 내 눈에는 좀 더 읽기 쉽고 명확합니다. 이제 컨테이너의 일부에서만 작업하려는 …

6
Java 점검 예외에 대한 임시 해결책
람다 및 기본 메소드 인터페이스에 대한 새로운 Java 8 기능이 많이 있습니다. 그러나 여전히 확인 된 예외로 지루합니다. 예를 들어 객체의 보이는 필드를 모두 나열하려면 간단히 다음과 같이 작성하고 싶습니다. Arrays.asList(p.getClass().getFields()).forEach( f -&gt; System.out.println(f.get(p)) ); 그러나 get메소드가 Consumer인터페이스 계약에 동의하지 않는 확인 된 예외를 throw 할 수 있으므로 해당 예외를 …

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