소프트웨어 공학

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

9
'for'루프에서 조건으로 '<'대 '! ='?
다음과 같은 for루프 가 있다고 가정하십시오 . for (int i = 0; i &lt; 10; ++i) { // ... } 일반적으로 다음과 같이 쓸 수 있습니다. for (int i = 0; i != 10; ++i) { // ... } 최종 결과는 동일하므로 다른 것을 사용하는 것에 대한 실제 주장이 있습니까? …
31 syntax 

4
언제 커밋에 버전 태그를 지정해서는 안됩니까?
컨텍스트 : 최근에 Semantic Versioning 에 대해 알게되었고 실제로 내 프로젝트에 가장 효과적으로 사용하는 방법을 결정하려고합니다. semver가 버전 변경을 위해 주요 변경, 사소한 변경 및 패치를 고려할 때, 커밋에 업데이트 된 버전으로 태그를 지정해서는 안되는 시점은 언제입니까? 모든 변경 사항이 이러한 범주 중 하나에 맞을 것이므로 모든 변경 사항을 버전 …

6
종속성은 언제 업데이트해야합니까?
우리는 두 개의 다른 코드 기반 (Android 및 Node.js 웹앱)으로 두 가지 주요 종속성 관련 위기를 겪었습니다. Android 저장소는 Flurry에서 Firebase로 마이그레이션해야했으며 Google Play 서비스 라이브러리를 4 가지 주요 버전으로 업데이트해야했습니다 . 프로덕션 스택 (시더)이 더 이상 사용되지 않고 시더 -14로 업그레이드해야하는 Heroku 호스팅 노드 앱에서도 비슷한 일이 발생했습니다. PostgreSQL …


5
차별적 노동 조합이 기능적 프로그래밍과 관련되는 이유는 무엇입니까?
OO 프로그래밍의 오랜 세월 동안 나는 차별적 노동 조합이 무엇인지 이해했지만, 결코 그들을 그리워하지 않았습니다. 최근에 C #에서 일부 기능 프로그래밍을 수행해 왔으며 이제는 계속 사용하기를 바랍니다. 차별적 노조의 개념이 기능적 / OO 이분법과는 상당히 독립적 인 것처럼 보이기 때문에 이것은 당황 스럽다. 차별화 된 노동 조합이 OO보다 유용하게 사용할 …

7
나중에 사용하기 위해 루프에 플래그를 설정하는 것이 코드 냄새입니까?
특정 조건이 true가 될 때까지 맵을 반복 한 다음 나중에 해당 조건을 사용하여 더 많은 작업을 수행하는 코드가 있습니다. 예: Map&lt;BigInteger, List&lt;String&gt;&gt; map = handler.getMap(); if(map != null &amp;&amp; !map.isEmpty()) { for (Map.Entry&lt;BigInteger, List&lt;String&gt;&gt; entry : map.entrySet()) { fillUpList(); if(list.size() &gt; limit) { limitFlag = true; break; } } } …

9
개별 속성이 아닌 전체 클래스를 매개 변수로 사용하도록 클래스 디자인
예를 들어, 광범위하게 공유되는 클래스가있는 응용 프로그램이 있다고 가정 해 보겠습니다 User. 이 클래스는 사용자, ID, 이름, 각 모듈에 대한 액세스 수준, 시간대 등에 대한 모든 정보를 제공합니다. 사용자 데이터는 분명히 시스템 전체에서 광범위하게 참조되지만, 어떤 이유로 든이 사용자 개체를이 클래스에 의존하는 클래스로 전달하는 대신 개별 속성 만 전달하도록 시스템이 …
30 java  c#  design  solid 

2
C 프리 프로세서의 기원은 무엇입니까?
C 전처리 기는 C에 연결되어 있지만 주요 언어와는 완전히 다른 구문을 사용합니다. 구문 상으로 중요한 공백 (행 끝이 명령문을 종료하고 매크로가 대체 목록의 시작을 판별 한 후 간격) 키워드 기반 대신 보강 블록의 블록 elif대신else if 선언-반사-사용 대신 키워드 중심 정의, =값 정의 없음 대체 문자열 구문의 힌트 ( #include …
30 c  history  macros 


8
테스트 주도 개발 (및 애자일)의 이러한 제한이 실질적으로 관련이 있습니까?
TDD (Test Driven Development)에서는 차선책으로 시작한 다음 테스트 사례를 추가하고 리팩토링하여 더 나은 솔루션을 반복적으로 생성합니다. 단계는 작아야하는데, 이는 각각의 새로운 솔루션이 어떻게 든 이전 솔루션 근처에 있다는 것을 의미합니다. 이는 그라데이션 하강 또는 로컬 검색과 같은 수학적 로컬 최적화 방법과 유사합니다. 이러한 방법의 잘 알려진 한계는 그것이 글로벌 최적 …

5
제품 설계 결정의 근거를 효과적으로 기록하는 방법은 무엇입니까?
우리 회사에서는 제품 디자인 문서를 사용하지 않습니다. 총 3 명의 직원이 있으므로 모든 제품 디자인 토론은 직접 또는 슬랙에서 이루어집니다. 또한 최신 메시지 만 볼 수있는 기본 Slack 패키지도 있습니다. 우리 제품은 아직 초기 단계에 있으며 종종 몇 달 전에 결정된 디자인 요소를 다시 방문합니다. 고민하면서 빈번하게 직면하는 문제는 제품 …

6
수천 개의 오류!
최근에 새 프로젝트에 배정되었습니다. 사실 오래된 프로젝트는 고전적인 ASP로 작성되었습니다. 이제 최신 버전의 응용 프로그램이 최신 ASP.NET으로 작성되고 있지만 잠시 동안 RTM이 될 것으로 예상되지는 않지만 (예상 출시 날짜는 2017 년 1 월) 이전 응용 프로그램을 유지 관리해야 할 때까지 버렸다. 또한 모든 고객이 새로운 프로그램으로 즉시 전환하지는 않을 것이라는 …

6
명확한 의미를 가진 두 가지 방법을 사용하거나 이중 사용 방법을 하나만 사용하는 것이 더 낫습니까?
인터페이스를 단순화하려면 getBalance()메소드 가없는 것이 더 낫 습니까? 전달 0받는 것은 charge(float c);같은 결과를 줄 것이다 : public class Client { private float bal; float getBalance() { return bal; } float charge(float c) { bal -= c; return bal; } } 어쩌면에 메모를 할 수 javadoc있습니까? 아니면 균형을 얻는 방법을 …
30 interfaces  cqrs 


9
파이썬과 같이 동적으로 유형이 지정된 언어에서만 가능한 디자인 패턴이 있습니까?
관련 질문을 읽었습니다. Python과 같은 동적 언어에서 불필요한 디자인 패턴이 있습니까? Wikiquote.org 에서이 인용구 를 기억했습니다 동적 타이핑의 멋진 점은 계산 가능한 모든 것을 표현할 수 있다는 것입니다. 유형 시스템은 그렇지 않습니다. 유형 시스템은 일반적으로 결정 가능하며 하위 집합으로 제한합니다. 정적 유형 시스템을 선호하는 사람들은“괜찮습니다. 충분합니다. 여러분이 작성하고 싶은 흥미로운 …

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