소프트웨어 공학

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

5
RESTful API는 사물의 부재를 나타냅니다.
사람이 자신의 정신 동물을 선택했는지 식별하는 API를 상상해보십시오. 그들은 영의 동물을 하나만 가질 수 있습니다. 현재 : /person/{id}/selectedSpiritAnimal 그들이 동물을 선택하면 http 200을 반환하고 {selectedAnimal:mole} 그러나 선택이 없으면 http 404를 반환합니다. 이것은 우리가 유효한 도메인 관심사 (아직 정령 동물을 선택하지 않은)를 HTTP 오류로 나타내면서 나의 정령 동물을 불행하게 만듭니다. 또한 …
18 rest 

4
프로그래머에게 참조 투명성의 이점은 무엇입니까?
프로그래밍에서 참조 투명성 의 이점은 무엇 입니까? RT는 기능적 패러다임과 명령형 패러다임의 주요 차이점 중 하나를 만들고, 기능적 패러다임을지지하는 사람들이 종종 명령형 패러다임에 대한 명확한 이점으로 사용합니다. 그러나 그들의 모든 노력에서,이 옹호자들은 왜 그것이 프로그래머로서 나에게 이익이되는지 설명하지 않습니다 . 물론, "순수"와 "우아함"에 대한 학문적 인 설명이 있지만 덜 "순수한"코드보다 …

5
왼쪽 가입보다 오른쪽 가입을 선호하는 이유
내가 올바르게 이해하면 모든 RIGHT JOIN: SELECT Persons.*, Orders.* FROM Orders RIGHT JOIN Persons ON Orders.PersonID = Persons.ID 로 표현 될 수있다 LEFT JOIN: SELECT Persons.*, Orders.* FROM Persons LEFT JOIN Orders ON Persons.ID = Orders.PersonID 내 개인적인 의견은 진술의 의도입니다. 먼저 Persons 그런 다음 Persons필요에 따라 확장 / 반복 …

3
계산을 행렬 곱셈으로 표현하는 것이 더 빠른 이유는 무엇입니까?
TensorFlow를 사용하는 Google MNist 튜토리얼 에서 한 단계가 행렬에 벡터를 곱하는 것과 동등한 계산이 표시됩니다. Google은 먼저 계산을 수행하는 데 필요한 각 숫자 곱셈과 덧셈이 전체로 작성된 그림을 보여줍니다. 다음으로,이 버전의 계산이 더 빠르거나 적어도 더 빠를 수 있다고 주장하면서 행렬 곱셈으로 표현 된 그림을 보여줍니다. 그것을 방정식으로 쓰면 다음과 …

7
제어 흐름으로 인해 중복되는 상황에서 "else"를 사용해야합니까?
때로는 다음 예제와 유사한 코드를 우연히 발견했습니다 (이 함수의 기능은이 질문의 범위를 벗어납니다). function doSomething(value) { if (check1(value)) { return -1; } else if (check2(value)) { return value; } else { return false; } } 보다시피 if,, else if및 else명령문은 명령문과 함께 사용됩니다 return. 이것은 평범한 관찰자에게는 상당히 직관적 인 …

3
정적 분석 유형에 대한 대안이 있습니까?
프로그래밍 언어의 정적 타이핑은 컴파일 타임에 특정 보증을 시행하는 데 도움이 될 수 있지만 유형이이 작업을위한 유일한 도구입니까? 불변량을 지정하는 다른 방법이 있습니까? 예를 들어, 언어 또는 환경은 배열 길이 또는 입력과 함수 간의 관계에 대한 보증을 강화하는 데 도움이 될 수 있습니다. 나는 타입 시스템 외부에서 이와 같은 것을 …

1
ES6과 Javascript가 다릅니다. [닫기]
휴무 . 이 질문에는 세부 사항이나 명확성 이 필요 합니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 세부 사항을 추가하고 문제점을 명확하게하십시오 . 휴일 삼년 전에 . ES6 란 무엇입니까? 자바 스크립트입니까? 아니면 다국어 서포터? 나는 그것을 찾았지만 이해할 수 없다, 특히 Wikipedia의 페이지. …
18 javascript  es6 

7
DevOps는 이제 개발자가 인프라 및 릴리스에 대한 책임을진다는 것을 의미합니다. 그러나이 변경의 원인은 무엇입니까?
DevOps는 이제 개발자가 인프라 및 릴리스에 대한 책임을진다는 것을 의미합니다. 그러나이 변경의 원인은 무엇입니까? 나는 카드를 테이블 위에 놓을 것이다. 나는 개발자이고 "DevOps"와 비 문화에서 일했다. 인프라 및 릴리스, QA 및 관련 행사에 대해 걱정해야하는 것은 좋은 코드를 작성하는 데 큰 방해가됩니다. 그러나 업계는이 방향으로 나아가고 있는데, 그 이유는 무엇입니까? …
18 process  devops 

5
코드가 "나쁜"상태 일 때 검토 자로 무엇을해야합니까?
몇 달 전에 필수 코드 검토가 도입 된 잘못 설계되고 과도하게 엔지니어링 된 프로젝트에서 일하고 있습니다. 새로운 기능을 구현하는 실질적인 코드를 검토하라는 요청을 받았습니다. 다른 코드베이스와 같은 결함이 있습니다. 나는 그 결함이 예를 들어 새로운 코드에 들어간다는 것을 이해합니다. 호환성을 유지하면서 잘못 설계된 클래스에서 상속하거나 잘못 설계된 인터페이스를 구현해야하므로 코드베이스의 …

7
경험적 메트릭을 기반으로 소프트웨어가 좋은지 나쁜지를 어떻게 알 수 있습니까?
현재 5 개월 전에 핵심 개발이 완료되었지만 여전히 높은 수준의 결함이있는 프로젝트를 조사해야합니다. 약 10 개의 결함이 수정 될 때마다 발생하는 문제는 최소 4 개, 경우에 따라 8 개가 발생합니다. 벤더의 코딩 관행이 좋지 않다고 생각하며 이에 대한 일반적인 합의가 있습니다. 그러나 소프트웨어에 구조적 문제가 있는지 궁금합니다. 결함 밀도는 유용한 …

3
파이썬에서 같은 파일에 여러 클래스를 두는 것이 괜찮습니까?
나는 수년간의 Java와 PHP 후에 파이썬 세계에 새로 왔습니다. 언어 자체는 매우 간단하지만, 나는 머리를 감쌀 수없는 몇 가지 '사소한'문제로 어려움을 겪고 있습니다. . 숙련 된 Python 실무자에게는이 질문이 어리석은 것처럼 보일 수 있지만, 이에 대한 답변을 원하므로 언어를 더 발전시킬 수 있습니다. Java 및 PHP ( 엄격히 요구되지는 않지만 …

2
유효한 상태를 유지하기 위해, 즉 객체의 데이터 멤버를 업데이트하기 위해 클래스에 하나의 큰 개인 함수를 정의하는 것이 좋습니다.
아래 코드에서 전자 상거래 사이트의 간단한 단일 품목 구매가 사용되지만 일반적인 질문은 모든 데이터 멤버를 업데이트하여 객체의 데이터를 항상 유효한 상태로 유지하는 것입니다. https://ko.wikibooks.org/wiki/Object_Oriented_Programming#.22State.22_is_Evil.21 과 관련하여 "일관성"및 "상태는 악"이라는 문구가 있습니다. <?php class CartItem { private $price = 0; private $shipping = 5; // default private $tax = 0; private …

1
예외 메시지를 기록하고 다른 예외를 throw하면 여전히 반 패턴입니까?
Google 웹 애플리케이션에서 ExceptionMapper일부 예외를에 매핑 하기 위해를 사용하고 Response있습니다. 다음과 같이 새 예외를 발생시키기 전에 예외 메시지를 기록합니다. catch (SomeException ex) { LOG.error(ex.getMessage()); throw new MyException(ex.getMessage()); } 우리는 같은 예외를 다시 던지지 않기 때문에 이것이 Log and Throw 반 패턴 으로 간주되는지에 대한 질문입니다 . 따라서 비슷한 장소에서 로깅을 …

5
검증은 어느 계층에 위치해야합니까?
Spring Boot를 사용하여 Rest API를 만들고 있으며 요청 입력의 유효성을 검사하기 위해 최대 절전 모드를 사용하고 있습니다. 그러나 업데이트 데이터를 확인해야 할 때와 같은 다른 종류의 유효성 검사도 필요합니다. 회사 ID가 존재하지 않으면 사용자 지정 예외를 throw하려고합니다. 이 유효성 검사가 서비스 계층 또는 컨트롤러 계층에 있어야합니까? 서비스 계층 : public …

3
동일한 앱에서 Windows 10 UWP와 Windows Phone 8.1을 모두 대상으로 지정하려면 어떻게해야합니까?
배경 개발자의 관점에서 Windows 10의 주요 판매 지점은 새로운 UWP (Universal * Windows Platform) 입니다. * "유니버설"정말 "윈도우 10를 실행하는 모든 장치에 대한 보편적 인", 그리고 "또한뿐만 아니라 윈도우 10를 실행하는 장치에 보편적 있지만 Windows 8.1 및 의미 어디 아마도 윈도우 7". 따라서 UWP 앱을 작성하는 경우 실제로는 "Windows 10 …

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