소프트웨어 공학

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

6
클래스를 자체 목록의 하위 클래스로 정의하면 어떤 단점이 있습니까?
최근 프로젝트에서 다음 헤더를 사용하여 클래스를 정의했습니다. public class Node extends ArrayList<Node> { ... } 그러나 내 CS 교수와상의 한 후, 그는 수업이 "기억에 나쁘다"고 "나쁜 연습"이라고 말했다. 나는 첫 번째가 특히 사실이고 두 번째가 주관적인 것을 발견하지 못했습니다. 이 사용법에 대한 나의 추론은 임의의 깊이를 가질 수있는 것으로 정의 …

4
GitHub에서 버려진 문제로 무엇을해야합니까?
누군가 GitHub에서 문제를 열었지만 오류를 재현하기위한 추가 정보가 요청되고 제공되지 않으면 정상적인 절차는 무엇입니까? 예 . 여기서 저자는 "탐색이 끊어진다"고 말합니다. 나는 그것이 고정되어 있다고 생각하지만, 저자의 말이 우리가 똑같은 것에 대해 이야기하고 있는지 확인하고 싶습니다. 그러나 때로는 문제의 기자가 사라집니다. 포기한 문제에 대해 만료 날짜 를 설정 하는 것이 …

15
Clean Code : 매개 변수가 적은 함수 [닫기]
나는 Robert C. Martin 의 Clean Code 의 첫 번째 장을 읽었으며 그것이 꽤 좋은 것 같지만 의심의 여지가 있습니다. 가능한 한, 3 개 이상의 매개 변수가 함수 (너무 과장되고 이상적이라고 생각)에 비해 너무 많음을 제안하기 때문에 궁금해하기 시작했습니다 ... 전역 변수를 사용하고 함수에 많은 인수를 전달하는 방법은 프로그래밍 방식이 …

16
for 루프 내에서 가능한 경우 중단 조건을 조건 필드로 이동해야합니까? [닫은]
때로는 다음과 같은 휴식이 필요한 루프가 필요합니다. for(int i=0;i<array.length;i++){ //some other code if(condition){ break; } } 글쓰기가 불편하다 if(condition){ break; } 3 줄의 코드를 소비하기 때문입니다. 그리고 루프를 다음과 같이 다시 작성할 수 있다는 것을 알았습니다. ↓ for(int i=0;i<array.length && !condition;i++){ //some other code } 그래서 내 질문은 가능하면 조건을 …

8
가상 소멸자를 사용하지 않아야 할 때?
가상 소멸자에 대해 여러 번 검색했으며 가상 소멸자의 목적과 가상 소멸자가 필요한 이유를 언급했습니다. 또한 대부분의 경우 소멸자는 가상이어야합니다. 그렇다면 질문은 : 왜 C ++이 모든 소멸자를 기본적으로 가상으로 설정하지 않습니까? 또는 다른 질문에서 : 언제 가상 소멸자를 사용할 필요가 없습니까? 어떤 경우에 가상 소멸자를 사용해서는 안됩니까? 필요하지 않더라도 가상 …

1
MIT 라이센스 조건이 정확히 무엇을 의미합니까?
라이센스 자체를 인용하려면 : 저작권 (C) [연도] [저작권 보유자] 이 소프트웨어 및 관련 문서 파일 (이하 "소프트웨어")의 사본을 사용하는 사람에게는 사용, 복사, 수정, 병합 권한을 포함하여 제한없이 소프트웨어를 처리 할 수있는 권한이 무료로 부여됩니다. 다음 조건에 따라 소프트웨어 사본을 게시, 배포, 하위 사용권 허가 및 / 또는 판매하고 소프트웨어를 제공받은 …

6
숨겨진 AJAX는 가짜 성능을 요구하는 것이 얼마나 안전합니까?
숨겨진 AJAX 요청은 무엇입니까? 사용자의 작업이 즉시 발생하도록 설계된 숨겨진 AJAX 요청의 사용이 증가한 것으로 나타났습니다. 이 유형의 AJAX 요청을 비 블로킹이라고합니다. 사용자가 발생하고 있음을 인식하지 않고 AJAX 요청이며 백그라운드에서 수행되며 작업이 조용합니다 ( AJAX 호출이 성공적으로 완료되었음을 나타내는 자세한 내용은 없습니다 ). 목표는 작업이 실제로 완료되지 않았을 때 즉시 …

7
단어가 명사 및 동사 일 때 변수 이름을 지정하는 방법
다음과 같은 일반적인 지침으로 코너 케이스 문제가 발생했습니다. 변수의 명사 함수 동사 특히, 단어가 모호한 경우가 있습니다-동사 또는 명사 일 수 있습니다 . 그리고 어떤 경우에는 응용 프로그램을 논의 할 때 동일한 문장에서 두 가지 방식 으로 사용됩니다 . 나는 몇 달 후 코드 섹션으로 돌아갈 때 나 자신뿐만 아니라 …
48 naming  variables 

8
우리 팀이 소스 제어 시스템에 대한 기본 능력 이상의 것을 기대해야합니까?
우리 회사는 약 3 개월 전에 Subversion에서 Git으로 전환했습니다. 전환하기 전에 몇 주 전에 사전 통지를 받았습니다. 전에 Git을 사용하지 않았기 때문에 (또는 다른 DVCS) Pro Git을 읽고 약간의 시간을 내 자신의 리포지토리를 돌리고 놀아 보았으므로 전환했을 때 최소한의 고통으로 계속 일할 수있었습니다. 이제 저는 기본적으로 'Git guy'입니다. 몇 가지 …

3
So Unique About Node.js은 (는) 무엇 이죠? [닫은]
최근 Node.js에 대한 찬사가 많이있었습니다. 네트워크 응용 프로그램에 많이 노출 된 개발자는 아닙니다. Nodes.js에 대한 거의 모든 이해에서 그 강점은 다음과 같습니다. 이벤트 연결을 제공하는 여러 연결을 처리하는 스레드는 하나뿐입니다. 그러나 예를 들어 Java의 경우 NIO / AIO를 사용하여 하나의 스레드 만 만들 수 있습니다.이 스레드를 사용하여 여러 연결을 처리하고 …

14
코드 리뷰에서 긍정적 인 피드백은 얼마나 중요합니까?
코드 검토 중에 코드 의 좋은 부분과 그것이 좋은 이유 를 지적하는 것이 중요 합니까? 긍정적 인 피드백은 검토중인 개발자 및 검토에 참여하는 다른 사람들에게 유용 할 수 있습니다. 우리는 온라인 도구를 사용하여 검토를 수행하므로 개발자는 커밋 된 코드에 대한 리뷰를 열 수 있고 다른 사람들은 지정된 기간 (예 : …


9
단위 테스트 또는 테스트 중심 개발이 가치가 있습니까?
우리 팀은 Scrum으로 이사하고 있으며 다른 팀은 단위 테스트 및 사용자 승인 테스트를 사용하여 테스트 중심 개발을 시작하고 있습니다. UAT는 마음에 들지만 테스트 중심 개발 또는 테스트 중심 개발을위한 단위 테스트에서는 판매되지 않습니다. 테스트 작성은 추가 작업 인 것처럼 보이며 사람들이 실제 코드를 작성할 때 버팀목을 제공하며 종종 효과적이지 않을 …

8
LSP vs OCP / Liskov 교체 VS Open Close
나는 OOP의 SOLID 원칙을 이해하려고 노력하고 있으며 LSP와 OCP는 비슷한 점이 더 많다는 결론에 도달했습니다. 개방 / 폐쇄 원칙은 "소프트웨어 엔티티 (클래스, 모듈, 기능 등)는 확장을 위해 개방되어야하지만 수정을 위해 폐쇄되어야한다"고 명시하고 있습니다. 간단히 말해서 LSP는 Foo모든 인스턴스 Bar가 파생 된 인스턴스로 대체 될 수 있으며 Foo프로그램은 동일한 방식으로 작동 …

4
파이썬에서 반복자가 예외를 발생시키는 이유는 무엇입니까?
Java 반복자 구문은 다음과 같습니다 (C #에서 비슷한 구문). Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } 말이됩니다. 다음은 파이썬에서 동등한 구문입니다. it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) 예외는 예외적 인 상황에서만 사용해야한다고 생각했습니다. 파이썬이 예외를 사용하여 반복을 중지하는 이유는 무엇입니까?

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