소프트웨어 공학

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

1
REST API 응답에서 null 및 누락 된 키 [닫기]
내 응용 프로그램에서 일부 사용자는 우리에게 성을 알려주고 다른 사용자는 그렇지 않습니다. REST API 응답에서 선호되는 본문 : "널"값으로 : {"firstName": "Bob", "lastName": null} 또는 누락 된 키 : {"firstName": "Bob"}
40 rest  api-design  json 

6
SQL이 더 리팩터링되지 않는 이유는 무엇입니까? [닫은]
누구나 새로운 개발자가 긴 기능을 작성한다는 것을 알고 있습니다. 진행하면서 코드를 더 작은 조각으로 나누는 것이 더 좋아지고 경험에 따라 그렇게하는 것이 중요합니다. SQL을 입력하십시오. 예, 코드에 대한 SQL 사고 방식은 코드에 대한 절차 적 사고 방식과 다르지만이 원칙은 적용 가능한 것처럼 보입니다. 다음과 같은 형식의 쿼리가 있다고 가정 해 …

5
왜 클래스를 상속하고 속성을 추가하지 않습니까?
우리의 코드베이스에서 다음과 같은 상속 트리를 찾았습니다. public class NamedEntity { public int Id { get; set; } public string Name { get; set; } } public class OrderDateInfo : NamedEntity { } 내가 수집 할 수있는 것으로부터, 이것은 주로 프론트 엔드에 물건을 묶는 데 사용됩니다. 나에게 이것은 generic에 의존하는 …

8
값이 의미가 없을 때 새 부울 필드가 널 참조보다 낫습니까?
예를 들어 MemberlastChangePasswordTime 이있는 클래스가 있다고 가정합니다 . class Member{ . . . constructor(){ this.lastChangePasswordTime=null, } } 일부 멤버는 비밀번호를 변경하지 않을 수 있으므로 lastChangePasswordTime이없는 경우 의미가 없습니다. 그러나 null이 악의적 인 경우 값에 의미가 없을 때 사용해야하는 것은 무엇입니까? 및 https://softwareengineering.stackexchange.com/a/12836/248528 , 나는 의미없는 값을 나타내는 널 (null)을 사용하지 …
39 null  boolean 

11
REST API가 500 내부 서버 오류를 리턴하여 쿼리가 존재하지 않는 오브젝트를 참조 함을 표시해야합니까?
여러 IoT 장치의 데이터를 처리하는 서버에있는 REST API로 작업하고 있습니다. 내 임무는 API를 사용하여 서버를 쿼리하여 해당 장치에 대한 특정 성능 정보를 수집하는 것입니다. 어떤 경우에는 사용 가능한 장치 및 해당 식별자 목록을 얻은 다음 나중에 해당 식별자 (GUID)를 사용하여 자세한 내용을 서버에 쿼리합니다. 서버가 500 Internal Server Error해당 ID …

5
라이브러리 내에서 STDIN에서 읽는 반 패턴으로 간주됩니까?
직장에서 진행중인 대규모 프로젝트를위한 라이브러리를 작성하는 동안 전자 메일 주소로 토큰을 보낸 다음 코드로 다시 전달하여 나중에 사용할 수있는 문제가 발생했습니다. 내 동료는 STDIN (Python : 사용)에서 읽은 code = input("Enter code: ")다음 사용자에게 전달하도록 지시했지만 라이브러리는 서버의 백그라운드 작업에 사용될 수 있으므로 나쁜 습관처럼 보입니다. . 나는 이것이 반 …

6
전역 적으로 고유 한 메시지 ID를 사용하여 코드를 찾을 수 있도록 만들기
버그를 찾는 일반적인 패턴은 다음과 같습니다. 출력이 없거나 교수형 프로그램과 같은 이상한 점을 관찰하십시오. 로그 또는 프로그램 출력에서 ​​관련 메시지를 찾으십시오 (예 : "Foo를 찾을 수 없음"). (다음은 버그를 찾는 경로 인 경우에만 해당됩니다. 스택 추적 또는 기타 디버깅 정보를 쉽게 사용할 수있는 경우 이는 또 다른 이야기입니다.) 메시지가 인쇄되는 …

8
IF 문 반전
그래서 저는 몇 년 동안 프로그래밍을 해왔으며 최근에는 ReSharper를 더 많이 사용하기 시작했습니다. ReSharper가 항상 나에게 제안하는 한 가지는 "네 스팅을 줄이기 위해 'if'문을 뒤집는 것"입니다. 이 코드가 있다고 가정 해 봅시다. foreach (someObject in someObjectList) { if(someObject != null) { someOtherObject = someObject.SomeProperty; } } 그리고 ReSharper는 다음과 같이 …

3
for 루프 대신“기능적 작업”을 사용해야하는 이유는 무엇입니까?
for (Canvas canvas : list) { } NetBeans는 "기능적 조작"을 사용하도록 제안합니다. list.stream().forEach((canvas) -> { }); 그러나 이것이 왜 선호 됩니까? 무엇이든 읽고 이해하기가 더 어렵습니다. 을 호출 stream()한 다음 forEach()매개 변수와 함께 람다 식 을 사용합니다 canvas. for첫 번째 스 니펫 의 루프 보다 더 좋은 방법은 없습니다 . …

7
프로그래밍중인 언어로 외부 데이터 변환
다음으로 무엇을해야할지 모르겠습니다. 우리는 자체 도구 내에서 외부 도구에서 데이터를 가져옵니다. 이 데이터는 네덜란드어로 작성되었습니다. 우리는 Java 코드를 영어로 작성하고 있습니다. 이 네덜란드어를 영어로 번역해야합니까 아니면 네덜란드어로 유지해야합니까? 예를 들어, Bouw (영어로 제작)와 Onderhoud (영어로 유지)라는 2 개의 부서가 있습니다. 그런 다음 만드는 것이 논리적입니까? public enum Department { BOUW, …
39 naming  translate 

13
부울 매개 변수를 사용하여 값을 결정하는 것은 잘못입니까?
에 따르면 이 동작을 결정하는 부울 매개 변수를 사용하는 것이 잘못인가? 부울 매개 변수를 사용하여 동작을 결정하지 않는 것이 중요하다는 것을 알고 있습니다. 원본 버전 public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } 새로운 버전: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } …

6
절대 변경되지 않는 하드 코딩 문자열
그래서 프랑스어로 동사를 (공 법적으로, 데이터 세트를 통하지 않고) 켤 수있는 프로그램을 작성하려는 노력에서 약간의 문제가 발생했습니다. 동사를 켤 수있는 알고리즘은 실제로 17 개 또는 17 개의 동사에 대해 상당히 단순하며 각 경우에 특정 패턴으로 실행됩니다. 따라서이 17 개의 클래스에 대한 접합 접미사는 정적이며 조만간 변경되지 않을 것입니다. 예를 들면 …
39 design  strings 


12
대부분의 프로그래밍 언어에 함수 선언을위한 특수 키워드 또는 구문이있는 이유는 무엇입니까? [닫은]
대부분의 프로그래밍 언어 (동적 및 정적 유형의 언어 모두)에는 함수 선언을위한 변수 선언과 크게 다른 특수 키워드 및 / 또는 구문이 있습니다. 다른 명명 된 엔티티를 선언하는 것처럼 함수를 봅니다. 예를 들어 파이썬에서 : x = 2 y = addOne(x) def addOne(number): return number + 1 왜 안되 겠어요 : …

3
오늘날 (복잡한) 웹 환경을 위해 주니어 프로그래머를 훈련시키는 방법?
현재 우리 회사는 대부분 Ruby on Rails 웹 서버와 Java의 키오스크 시스템에서 C / C ++의 임베디드 디바이스 (표준 웹 브라우저 용 인터페이스 제외)까지 다양한 REST 클라이언트로 구성된 애플리케이션을 개발하고 있습니다. 우리는 팀을 확장해야하고, 선임 프로그래머를 찾는 데 실패한 후 회사와 함께 성장할 주니어 프로그래머를 훈련시키는 데 노력을 기울였습니다. 우리는 …

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