소프트웨어 공학

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

4
데이터 지향 디자인-1-2 개 이상의 구조 "멤버"에 비현실적입니까?
데이터 지향 디자인의 일반적인 예는 Ball 구조입니다. struct Ball { float Radius; float XYZ[3]; }; 그런 다음 std::vector<Ball>벡터 를 반복하는 알고리즘을 만듭니다 . 그런 다음 동일한 내용을 제공하지만 데이터 지향 디자인으로 구현됩니다. struct Balls { std::vector<float> Radiuses; std::vector<XYZ[3]> XYZs; }; 모든 반지름을 먼저 반복 한 다음 모든 위치 등을 반복하면 …

6
Android에서 데이터 동기화를위한 디자인
대부분의 앱에서 서버와 클라이언트 간의 데이터 동기화를위한 두 가지 구현이있었습니다. 이것은 GCM이 설정되어 있지 않다고 가정합니다. 네트워크에서 데이터를 다운로드하여 데이터베이스에 저장하는 인 텐트 서비스를 주기적으로 실행합니다. 주기적으로 실행되는 동기화 어댑터 구현 위 중 어느 것이 앱에 권장되며 왜 그럴까요?

8
동일한 값을 두 번 반환하지 않는 기능 [닫힘]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 이것은 면접에서 요청한 질문이며, 그들이 찾고있는 답을 알 수 없으므로 여기 누군가가 아이디어를 가질 수 있기를 바랍니다. 동일한 …

2
MPL 2.0 (Mozilla Public License) 및 LGPL 3.0 (Low GNU General Public License)
웹 기반 소스 코드 호스팅 서비스 에서 클래스 기반 객체 지향 프로그래밍 언어 (Java) 로 작성된 소프트웨어 라이브러리를 릴리스하고 싶습니다.이 라이브러리 를 사용하면 프로젝트 포크를 메인 프로젝트 (GitHub를 통해 풀을 통해 병합 할 수 있음) 요청). 웹에서 조사한 결과 소프트웨어 라이센스 방법에 대해 많은 생각을했습니다. ( IANAL 관점에서) 다음 가정에서 …

4
JSON이있을 때 Odata의 필요성은 무엇입니까?
Odata의 요점과 이해해야 할 시점을 이해하려고합니다. 현재 작업 방식은 ASP.NET 및 MVC / WebApi 컨트롤러를 사용하여 객체를 JSON으로 직렬화 / 직렬화 해제하고 자바 스크립트로 무언가를 수행하는 것입니다. 내가 OData의 이점을 알 수있는 것은 URL에서 직접 쿼리 할 수 ​​있다는 것입니다 ...하지만 클라이언트 및 서버 코드를 작성하기 때문에 그럴 필요가 없습니다. …
23 javascript  rest  json 

4
문자열을 함께 연결하고 한 번 호출하는 것보다 println ()을 호출하는 것이 얼마나 나쁜가요?
이 질문은 Software Engineering Stack Exchange에서 답변을 얻을 수 있기 때문에 Code Review Stack Exchange에서 마이그레이션 되었습니다. 5 년 전에 마이그레이션 되었습니다 . 콘솔 출력은 비용이 많이 드는 작업이라는 것을 알고 있습니다. 코드 가독성을 위해 긴 텍스트 문자열을 인수로 사용하지 않고 텍스트를 두 번 출력하는 함수를 호출하는 것이 좋습니다. 예를 …
23 java  c++  performance  c  io 

4
문서보다 예제를 선호하십시오. 행동상의 문제입니까?
새로운 API 나 프로그래밍 언어, 심지어 간단한 리눅스 매뉴얼 페이지를 접할 때마다 나는 항상 (기억 한 이후) 그것들을 피하고 대신 새로운 개념에 대한 이해를 얻기 위해 예제에 게으르게 의존했다. 무의식적으로, 나는 간단하지 않거나 비밀스럽지 않거나 평범한 지루하지 않을 때마다 문서 / API를 피합니다. 프로그래밍을 시작한 지 몇 년이 지났지 만 …

2
SQL IN () 대 OR
나는 오늘 내가 쓴 쿼리로 작업 중이었고 WHERE대신 IN (목록) 필터를 사용 하도록 절 에서 코드를 변경해야했습니다. item_desc = 'item 1' OR item_desc = 'item 2' OR item_desc = 'item 3' OR item_desc = 'item 4' 위의 내용은 15 분 동안 실행되었지만 아무것도 반환하지 않았지만 다음 결과는 1.5 분 안에 …
23 sql  speed 

4
많은 설계가 RDBMS에서 정규화를 무시하는 이유는 무엇입니까?
이 게시물을 개선하고 싶습니까? 인용과 답변이 올바른 이유에 대한 설명을 포함하여이 질문에 대한 자세한 답변을 제공하십시오. 세부 사항이없는 답변은 편집하거나 삭제할 수 있습니다. 의사 결정 단계에서 표준화가 첫 번째 고려 사항이 아닌 많은 디자인을 보았습니다. 대부분의 경우 이러한 설계에는 30 개가 넘는 열이 포함되었으며 주요 접근 방식은 "모든 것을 같은 …

2
RESTful API의 사용자 권한 레벨
인터넷에서 가장 귀여운 고양이 순위를 매기는 회사가 있다고 가정 해 봅시다. 나는/cats/ 최신 귀여운 귀여운 고양이를 사용자 에게 제공하는 리소스 를 제공합니다. 사용자가 전혀 지불하지 않거나 등록하지 않은 경우 상위 3 마리의 고양이 만받을 수 있습니다. 337 달러를 지불하고 로그인 한 경우 상위 10 마리의 고양이, 1337 달러를 지불하고 로그인 …
23 rest  http  url  http-response 

5
종단 간 테스트 대 단위 테스트는 테스트를 분리해야합니까?
회사에서는 일반적으로 웹 사이트 / 웹 앱에 대한 엔드 투 엔드 테스트를 작성해야합니다. 즉, URL에 액세스하고 양식을 작성하고 다른 URL에 양식을 제출하고 페이지 결과를 확인해야합니다. 양식 유효성 검사를 테스트하고 HTML 템플릿에 올바른 컨텍스트 변수가 있는지 테스트합니다. 또한 기본 논리를 간접적으로 테스트하는 데 사용합니다. 동료에게 이것이 엔드-투-엔드 테스트를 통과하는 한 언제든지 …

4
Python 라이브러리 모듈에서 데이터베이스 연결을 처리하는 방법
데이터베이스에 액세스하기위한 함수가 포함 된 Python으로 라이브러리를 만들었습니다. 타사 응용 프로그램이 적절한 API를 제공하지 않기 때문에 작성된 타사 응용 프로그램 데이터베이스 주위의 래퍼 라이브러리입니다. 이제 프로그램 논리가 특정 함수를 몇 천 번 호출 할 함수에 대한 중첩 호출을 사용할 때까지 원래는 함수 호출 기간 동안 각 함수가 데이터베이스 연결을 열도록했습니다. …
23 python 

7
프로덕션 데이터베이스 데이터를 안전하게 고정
버그가 발생하고 때로는 데이터를 프로덕션에서 수정해야합니다. 대기업 입장에서이 문제를 해결하는 가장 안전한 방법은 무엇입니까? 도움이되는 도구가 있습니까? 이 요구 사항을 추진하는 몇 가지 고려 사항은 다음과 같습니다. 쿼리를 실행 한 사람과 실행 한 내용을 기록해야합니다. 이상적으로는 해당 테이블에 대해 짧은 시간 동안 만 쿼리를 실행할 수있는 권한을 사용자에게 제공해야합니다. 쿼리를 …
23 database  risk 

6
중첩 된 주석 문제를 해결하는 방법
주석을 중첩 할 수없는 언어는 한 언어로만 나타나지 않습니다. 이 문제에 대한 좋은 해결책이 있습니까? C / C ++ 및 Java의 한 가지 해결 방법은 한 줄 주석 만 사용하는 것이지만 더 큰 블록을 주석 처리하는 것은 불가능합니다. 나는 이런 식으로 직면하고있다 : </li><!-- <li><!-- Save --> 따라서 수동으로 주석을 …
23 java  c++  python  c  comments 

6
함수형 프로그래밍에서 부작용이없는 지역 가변 변수가 여전히 "나쁜 습관"으로 간주됩니까?
내부에서만 사용되는 함수에 가변 로컬 변수가 있습니까 (예 : 함수에 의도적으로 부작용이 없음) 여전히 "비 기능"으로 간주됩니까? 예를 들어 "스칼라 기능 프로그래밍"코스 스타일 검사에서 var사용이 잘못된 것으로 간주합니다 함수에 부작용이없는 경우 제 질문은 명령형 스타일 코드 작성이 여전히 권장되지 않습니까? 예를 들어 누산기 패턴에 꼬리 재귀를 사용하는 대신 입력을 변경하지 …

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