소프트웨어 공학

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

29
코드에서 빈 줄을 어떻게 사용합니까?
중괄호 배치에 대해 이미 논의한 공백에 대해서는 몇 가지 언급이있었습니다. 나는 "논리적"그룹으로 함께 모아지는 것들을 분리하기 위해 빈 줄로 내 코드를 뿌리는 경향이 있으며 다음 사람이 방금 생성 한 코드를 더 쉽게 읽을 수 있기를 바랍니다. 실제로, 나는 내가 작성한 것처럼 코드를 구성한다고 말할 것입니다. 단락을 몇 줄 (10 줄보다 …

13
가장 어려운 버그 찾기는 무엇이며 어떻게 찾아서 죽였습니까?
이것은 "지식 공유"질문입니다. 나는 당신의 성공 및 / 또는 실패로부터 배우고 싶습니다. 도움이 될만한 정보 ... 배경: 상황 : 언어, 응용 프로그램, 환경 등 버그는 어떻게 식별 되었습니까? 누가 또는 무엇이 버그를 식별 했습니까? 버그를 얼마나 복잡하게 재현 했습니까? 사냥. 당신의 계획은 무엇입니까? 어떤 어려움을 겪었습니까? 문제의 코드는 어떻게 마침내 …
31 experience  bug 

5
속성 중 하나가 필요하지 않은 경우 인터페이스 구현
꽤 직설적 인. 인터페이스를 구현하고 있지만이 클래스에 필요하지 않은 속성 중 하나는 실제로 사용해서는 안됩니다. 내 초기 아이디어는 다음과 같은 것을하는 것이 었습니다. int IFoo.Bar { get { raise new NotImplementedException(); } } 나는 이것 자체에 아무런 문제가 없다고 생각하지만, "옳다"고 느끼지 않습니다. 다른 사람이 전에 비슷한 상황을 경험 한 …

10
일반적으로 객체 또는 해당 멤버 변수를 함수로 보냅니 까?
이 두 경우 사이에 일반적으로 허용되는 방법은 다음과 같습니다. function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } 또는 function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } 다시 말해서 일반적으로 전체 객체를 전달하거나 필요한 필드 만 전달하는 것이 더 낫습니까?

10
Math.Sqrt ()가 정적 함수 인 이유는 무엇입니까?
정적 및 인스턴스 메소드에 대한 토론에서 항상 Sqrt()정적 메소드 대신 숫자 유형의 인스턴스 메소드 여야 한다고 생각 합니다. 왜 그런가요? 그것은 분명히 가치에 작용합니다. // looks wrong to me var y = Math.Sqrt(x); // looks better to me var y = x.Sqrt(); 많은 언어에서와 같이 값 유형에는 인스턴스 메소드가있을 수 …

5
동일한 파일에 여러 클래스를 정의하는 것이 Pythonic으로 간주됩니까?
파이썬으로 처음 작업 할 때, 같은 파일에 여러 클래스를 작성하게되는데, 이는 클래스 당 하나의 파일을 사용하는 Java와 같은 다른 언어와는 반대입니다. 일반적으로 이러한 클래스는 1 개의 추상 기본 클래스로 구성되며, 사용하는 1-2 개의 구체적인 구현은 약간 다릅니다. 아래에 그러한 파일을 게시했습니다. class Logger(object): def __init__(self, path, fileName): self.logFile = open(path …

1
PHP 프레임 워크에서 왜 "경로"개념이 사용됩니까?
내가 묻는 이유는 PHP 스크립트가 경로가 아니기 때문입니까? 예를 들어, article.php가있는 경우 경로는 단순히 http://mysite.com/article.php 입니다. 라우트가 이미 간단한 파일로 존재할 때 라우트 개념을 더 추상화해야하는 이유는 무엇입니까?

12
직장에서 생성 한 코드를 가져 와서 개인 프로젝트에 재사용하는 것은 잘못입니까?
나는 다양한 작업장에서 항상 "다른 상황에서는 이것이 유용 할 것"이라고 생각하게하는 코드를 작성했습니다. 실제로, 나는 더 긴 시간이 걸리더라도 의도적으로 코드를 작성하는데, 이는 나중에 나에게 도움이 될 것이라는 것을 알고있다 (예를 들어, 사용자 정의 SubString()함수). 이 스 니펫의 좋은 후보는 다양한 '도움말'클래스입니다. 이 스 니펫은 아마도 온라인 어디에서나 찾을 수 …

4
웹 개발 프로젝트에서 백엔드와 프론트 엔드를 두 위치로 분리하는 것이 일반적입니까?
웹 스타트 업에서 엔지니어가 기능의 프론트 엔드 및 백엔드를 작업하게하는 것이 더 일반적입니까 (기본적으로 전체 기능을 담당)? 아니면 엔지니어가 백엔드와 프론트 엔드를 분리 했습니까? 어떤 것이 더 유익하고 어떤 상황에 유리합니까? 전체 기능을 담당하는 엔지니어 한 명과 관련하여 단점은 사람이 프론트 엔드 또는 백엔드 개발에서 특히 강할 수 있지만 둘다는 …


5
기능적 언어의 비동기 프로그래밍
저는 주로 C / C ++ 프로그래머입니다. 이는 대부분의 경험이 절차 및 객체 지향 패러다임에 관한 것임을 의미합니다. 그러나 많은 C ++ 프로그래머가 알고 있듯이 C ++은 수년에 걸쳐 기능적 스타일로 강조되어 마침내 C ++ 0x에서 람다와 클로저를 추가하는 중입니다. 그럼에도 불구하고 C ++을 사용하여 기능적 스타일로 코딩하는 데 상당한 …


5
파이썬에서 사전 대 튜플을 사용하는 경우
구체적인 예는 파일 이름과 크기 목록입니다. 목록의 각 항목이 형식이어야하는지 {"filename": "blabla", "size": 123}아니면 그냥 형식이어야하는지 결정할 수 없습니다 ("blabla", 123). 예를 들어 크기에 액세스하는 file["size"]것이 더 설명이 필요하기 때문에 사전이 나에게 더 논리적 인 것처럼 보이지만 file[1]실제로는 확실하지 않습니다. 생각?

5
구체적인 방법을 재정의하는 것이 코드 냄새입니까?
구체적인 방법을 재정의하는 것이 코드 냄새라는 것이 사실입니까? 구체적인 방법을 재정의해야한다고 생각하기 때문에 : public class A{ public void a(){ } } public class B extends A{ @Override public void a(){ } } 그것은 다음과 같이 다시 쓸 수 있습니다 public interface A{ public void a(); } public class ConcreteA …

4
매직 문자열 / 숫자 사용법 [닫힘]
이것은 다소 논란의 여지가있는 주제이며 프로그래머가있는만큼 많은 의견이 있다고 생각합니다. 그러나 그것을 위해, 나는 사업 (또는 직장)에서 일반적인 관행이 무엇인지 알고 싶습니다. 우리 직장에는 엄격한 코딩 지침이 있습니다. 그 중 한 섹션은 마법의 문자열 / 숫자 전용입니다. (C #의 경우) 기호 상수를 정의하기 위해 코드에 리터럴 값 (숫자 또는 문자열)을 …

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