«defensive-programming» 태그된 질문

16
나중에 필요할 수 있으므로 지금 중복 코드를 추가해야합니까?
바르게 또는 잘못,이 중복 코드 / I 수표에 추가하는 것을 의미하는 경우에도, 현재 나는 항상 가능한 내 코드와 같은 강력한 만들려고한다 신념이야 알고 지금 어떤 소용이되지 않습니다,하지만 그들은 줄 아래로 x 년이 될 수 있습니다. 예를 들어, 현재이 코드 조각이있는 모바일 응용 프로그램을 만들고 있습니다. public static CalendarRow AssignAppointmentToRow(Appointment app, …

14
TDD는 방어 프로그래밍을 중복으로 만들나요?
오늘 저는 동료와 흥미로운 토론을했습니다. 나는 방어적인 프로그래머입니다. " 클래스는 클래스 외부에서 상호 작용할 때 클래스의 객체가 유효한 상태를 갖도록해야합니다 "규칙을 항상 준수해야한다고 생각합니다. 이 규칙의 이유는 클래스가 사용자가 누구인지 알지 못하고 불법적 인 방식으로 상호 작용할 때 예상치 못하게 실패하기 때문입니다. 제 생각에 그 규칙은 모든 수업에 적용됩니다. 오늘 …

4
if ( 'constant'== $ variable) 대 if ($ variable == 'constant')
최근에 PHP에서, 특히 WordPress 프레임 워크에서 많은 작업을 해왔습니다. 나는 다음과 같은 형태로 많은 코드를 주목하고 있습니다. if ( 1 == $options['postlink'] ) 내가 기대했던 곳 : if ( $options['postlink'] == 1 ) 이 규칙은 특정 언어 / 프레임 워크에서 찾을 수 있습니까? 전자의 접근 방식이 후자의 접근 방식보다 선호되는 …

10
강력한 코드는 무엇입니까?
교수님은 "강력한"코드를 말할 때이 Java 예제를 계속 언급하고 있습니다. if (var == true) { ... } else if (var == false) { ... } else { ... } 그는 "강력한 코드"는 프로그램이 모든 가능성을 고려하고 오류와 같은 것이 없다는 것을 의미한다고 주장합니다. 모든 상황은 코드에 의해 처리되어 유효한 상태가되므로 "else"가됩니다. …

7
메소드가 잘못된 입력을 리턴 할 수없는 경우에도 메소드 호출의 리턴 값을 검증해야합니까?
내가 호출하는 메소드가 그러한 기대를 충족시킬 것이라는 것을 알고 있더라도 메소드 호출의 리턴 값에 대해 방어해야하는지에 대해 궁금합니다. 주어진 User getUser(Int id) { User temp = new User(id); temp.setName("John"); return temp; } 해야 돼 void myMethod() { User user = getUser(1234); System.out.println(user.getName()); } 또는 void myMethod() { User user = …


3
개인 메소드가 리플렉션을 통해 호출되는 상황을 처리해야합니까?
라이브러리를 만들 때 같은 클래스의 다른 메서드가 아니라 리플렉션을 통해 다른 라이브러리 가 호출 할 때 개인 메서드가 예상대로 작동 해야하는지 확인해야 합니까? 예를 들어, 개인 메소드가 다음을 private DoSomething(int number)기대하는 경우 : number 0이 아닌 양의 정수이며, 개인 변수 string abc는 null이 아니며 빈 문자열이 아닙니다. 그리고 두 조건이 …

4
우리는 얼마나 방어 적이어야합니까?
우리는 몇 가지 코드를 통해 Pex 를 실행 해 왔으며 좋은 것들을 보여주었습니다. 그러나 Pex의 좋은 점 중 하나는 반드시 문제를 찾으려고 노력하는 것을 멈추지 않는다는 것입니다. 우리가 발견 한 영역은 문자열을 전달할 때 빈 문자열을 확인하지 않았다는 것입니다. 그래서 우리는 변경했습니다 : if (inputString == null) 에 if (string.IsNullOrEmpty(inputString)) …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.