소프트웨어 공학

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

3
.NET의 로깅 및 추적 모범 사례
추적 및 로깅에 대해 많이 읽었으며 문제의 모범 사례에 대한 황금률을 찾으려고 노력했지만 아무것도 없습니다. 사람들은 좋은 프로그래머가 좋은 추적을한다고하지만, 그렇게하면 경험에서 비롯되어야합니다. 나는 또한 여기와 인터넷을 통해 비슷한 질문을 읽었으며 그것들은 실제로 내가 요구하는 것과 똑같은 것이 아니며 아마도 대답이 만족스럽지 않을 수도 있습니다. 따라서 사람들은 디버거를 연결할 수없는 …
53 .net  logging 

11
무한 목록에서 100 개의 가장 높은 숫자 얻기
내 친구 중 한 명이이 인터뷰 질문을 받았습니다. "무한한 숫자 목록에서 나오는 숫자의 흐름이 일정하다. 그 중 어느 시점에서든 최고 100 개의 최고 숫자를 반환하기 위해 데이터 구조를 유지해야한다. 모든 숫자는 정수일 뿐이다." 이것은 간단합니다. 정렬 된 목록을 내림차순으로 유지하고 해당 목록에서 가장 낮은 번호의 트랙을 유지해야합니다. 얻은 새 숫자가 …
53 numbers  big-o  puzzles 


10
테스트를 테스트하는 방법?
우리는 코드가 더 정확하도록 (실제로 부정확하지 않도록) 테스트합니다 . 그러나 테스트는 코드이기도하며 오류가 포함될 수도 있습니다. 그리고 테스트가 버그가 있다면 코드를 개선하기가 어렵습니다. 테스트에서 세 가지 가능한 유형의 오류를 생각할 수 있습니다. 프로그래머가 당면한 과제를 잘못 이해했을 때의 논리적 오류와 테스트는 그가해야 할 것으로 생각하는 것을 수행합니다. 기본 테스트 프레임 …

14
TDD는 복잡한 프로젝트에서 실제로 작동합니까?
TDD 프로젝트에서 경험 한 문제에 대해이 질문을하고 있습니다. 단위 테스트를 만들 때 다음과 같은 문제를 발견했습니다. 모의 데이터 생성 및 유지 대규모 모의 데이터를 유지 관리하는 것은 어렵고 비현실적입니다. 데이터베이스 구조가 변경 될 때 더욱 어려워집니다. GUI 테스트 MVVM과 GUI 테스트 기능이 있더라도 GUI 시나리오를 재현하려면 많은 코드가 필요합니다. 사업 …
53 tdd 

27
당신이 본 가장 심각한 돈 낭비는 무엇이며, 당신은 그것에 대해 무엇을 했습니까? [닫은]
프로그래머로서 우리는 종종 대규모 조직이 문제에 대한 부풀고 비효율적 인 솔루션에 막대한 돈을 낭비하는 것을 본다. 조직이 최상의 유형의 솔루션을 활용하기를 좋아하기 때문에 이것은 매우 고통 스럽습니다. 그러나 주요 의사 결정자에게 영향을 줄 때 프로그래머로서의 능력은 제한적이며 종종 문제에 대한 나의 시각은 내 작은 기술 세계에 국한됩니다. 제 질문은 이것입니다. …

4
개발에 병합 된 기능이 경영진에 의해 연기되면 어떻게됩니까?
우리는 최근에 웹앱 (자동 가입) 기능이 시작에 너무 차가워 졌다고 생각했기 때문에 경영진에 의해 연기되는 문제가 있었지만, 우리가 작업했던 다른 모든 기능을 적용하기를 원했습니다. 문제는이 기능이 다음 릴리스에서 라이브로 푸시 할 것으로 예상되는 다른 모든 기능과 함께 개발에 병합되어 일반적으로하는 것처럼 dev-> test-> master를 병합 할 수 없다는 것입니다. 이 …

1
스위프트 프로토콜 명명 규칙
주로 C # 배경에서 비롯된 동작을 정의하는 구현이없는 개체를 설명하기 위해 "인터페이스"라는 용어를 사용했습니다. c #에서 규칙은 IEnumerable등에서 처럼 인터페이스 이름 앞에 "I"를 붙여야합니다 . 물론이 개념은 언어마다 이름이 다릅니다. Swift에서는 동일한 개념을 "프로토콜"이라고합니다. 프로토콜을 개발할 때 프로토콜 이름과 프로토콜을 구현하는 클래스의 이름이 매우 비슷합니다. 지금까지 저는 C #에서 "I"를 …

5
파일 이름을 열어서 열거 나 파일을 열어야합니까?
텍스트 파일로 작업을 수행하는 함수가 있다고 가정합니다. 예를 들어 텍스트 파일을 읽고 'a'라는 단어를 제거합니다. 파일 이름을 전달하고 함수에서 열기 / 닫기를 처리하거나 열린 파일을 전달하여 파일을 호출 한 사람이 파일을 닫을 것으로 예상 할 수 있습니다. 첫 번째 방법은 파일이 열려 있지 않은 것을 보장하는 더 좋은 방법처럼 보이지만 …

6
Java 모범 사례에서 가능할 때마다 Lambda 표현식을 사용하고 있습니까?
최근에 Java 8에 도입 된 Lambda 표현식을 마스터했습니다. 기능적 인터페이스를 사용할 때마다 항상 기능적 인터페이스를 구현하는 클래스를 작성하는 대신 Lambda 표현식을 사용하는 경향이 있습니다. 이것이 좋은 습관으로 간주됩니까? 또는 기능 인터페이스에 Lambda를 사용하는 것이 적절하지 않은 상황입니까?
52 java  lambda 

9
Java에 왜 'void'메소드가 있습니까?
Java에 void메소드 가 필요한 이유는 무엇입니까? 참고 : void로 선언 된 메서드는 값을 반환하지 않습니다. 내가 생각할 수 void있는 한, 상태 플래그, 호출되는 객체 또는를 반환하면 모든 사용 이 더 잘 제공됩니다 null. 이것은 모든 호출을 지정 가능한 명령문으로 만들고 빌더 패턴과 메소드 체인을 용이하게합니다. 효과에 대해서만 호출되는 메소드는 일반적으로 …

4
유닉스 파이프의 정확한 독창성은 무엇입니까
Douglas Mcllroy가 어떻게 그 개념을 생각 해냈고 Ken Thompson이 어떻게 하룻밤에 그것을 구현했는지에 대한 이야기를 들었습니다. 내가 이해하는 한 파이프는 하나의 프로세스가 쓰고 다른 프로세스가 읽는 두 프로세스간에 메모리를 공유하는 시스템 호출입니다. OS 내부 또는 개념에 익숙하지 않은 사람으로서 이야기에서 "천재"가 정확히 무엇인지 궁금했습니다. 메모리를 공유하는 두 프로세스의 아이디어입니까? 아니면 …

8
C ++에서 쓰레기는 어떻게됩니까?
Java에는 자동 중지 기능이있어 가끔 세상을 멈추지 만 힙의 가비지를 처리합니다. 이제 C / C ++ 애플리케이션에는 이러한 STW 동결이 없으며 메모리 사용량도 무한대로 증가하지 않습니다. 이 동작은 어떻게 이루어 집니까? 죽은 물체는 어떻게 관리됩니까?

9
예외를 던지거나 코드 실패
이 스타일에 반대되는 장단점이 있는지 궁금합니다. private void LoadMaterial(string name) { if (_Materials.ContainsKey(name)) { throw new ArgumentException("The material named " + name + " has already been loaded."); } _Materials.Add( name, Resources.Load(string.Format("Materials/{0}", name)) as Material ); } 이 방법은 각각에 대해 name한 번만 실행 해야합니다 . _Materials.Add()같은 시간에 여러 번 …
52 exceptions 

2
“기능 부러움”코드 란 무엇이며 왜 코드 냄새로 간주됩니까?
SO 에 대한 이 질문 에서는 OP가 생각하는 기능 부러움 코드를 수정하는 방법에 대해 설명합니다 . 이 멋진 문구가 인용 된 또 다른 예는 최근 프로그래머가 여기 에 주어진 대답에 있습니다 . 나는 그 대답에 대한 정보를 묻는 의견 을 들었지만 Q & A를 따르는 프로그래머가 feature-envy 라는 용어의 의미를 …

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