소프트웨어 공학

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

4
멤버 함수와 수학 연산자의 비 멤버 함수
저는 행렬, 벡터 등이 포함 된 선형 대수 라이브러리 (긴 이야기로, 학교 과제입니다)를 작성하고 있습니다.이 라이브러리를 만드는 과정에서 객체에 대해 수학 연산을 수행하는 함수를 만들 것입니다. 예를 들어, 행렬 전치, 행렬 반전, 벡터 정규화 등 이런 종류의 함수에 대한 "모범 사례"가 무엇인지 궁금합니다. 즉, 함수를 멤버 함수 또는 비 멤버로 …
12 c++  libraries  methods 

5
코드 검토는 누가해야합니까?
우리 회사에서는 주로 건축가가 코드 검토를 수행합니다. 그는 경험이 풍부하고 똑똑한 소프트웨어 전문가이므로 매우 능숙합니다. 개발자가 코드 검토를 할 때는 절반도하지 않습니다. 개발자에게 더 많은 코드 검토를하려고했지만 코드 검토의 품질이 좋지 않았습니다. 우리는 개발 방법론으로 Scrum을 사용합니다. 그러나 현재 시스템에는 두 가지 문제가 있습니다. 건축가가 병목이 됨 개발자는 코드의 품질과 …

2
소스 코드에서 API 키를 숨기는 가장 좋은 방법
응용 프로그램, 특히 ac # .NET 응용 프로그램에서 개인 API 키를 보호하는 방법에 대한 아이디어가 필요합니다. 첫째, 소스 코드에 아무것도 숨기는 것이 이론적으로 불가능하다는 것을 이해하므로 다른 아이디어를 생각해 냈지만 그것이 얼마나 타당한 지 잘 모르겠습니다. 어쨌든 웹 서버와 통신하여 개인 키를 확인한 다음 응용 프로그램과 대화하여 합법적 인 핸드 …
12 c#  api  authentication 

1
동시성에 대해 추론하기 위해 어떤 중간 표현을 사용할 수 있습니까?
컴파일러가 프로그래머를 대신하여 동시성에 대해 지능적으로 선택하는 데 필요한 것이 무엇인지 더 잘 이해하려고합니다. 예를 들어이 문제의 많은 어려운 측면이 있음을 알고 있습니다. 경쟁 조건이 없는지 확인 코드가 동시에 실행될 때 코드의 의미 적 의미에 영향을 미치는 부작용이 없는지 확인 코드에서 사용 가능한 병렬 처리 수준을 고려할 때 스레드 회전으로 …

3
파이썬-assert vs if & return
텍스트 파일에 무언가를하는 스크립트를 작성하고 있습니다 (제 질문과 관련이 없음). 그래서 파일에 무언가를하기 전에 파일이 존재하는지 확인하고 싶습니다. 나는 이것을 아무 문제없이 할 수 있지만 문제는 미학의 문제입니다. 다음은 두 가지 다른 방식으로 동일한 것을 구현하는 코드입니다. def modify_file(filename): assert os.path.isfile(filename), 'file does NOT exist.' Traceback (most recent call last): …

4
일련의 'AssertEquals'보다 단위 테스트를 작성하는 더 좋은 방법이 있습니까?
qunit을 사용하여 단위 테스트에 필요한 기본 예는 다음과 같습니다. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> <link rel="stylesheet" href="qunit/qunit-1.13.0.css"> <script src = "qunit/qunit-1.13.0.js"></script> <script src = "../js/fuzzQuery.js"></script> <script> test("Fuzz Query Basics", function() { equal(fuzzQuery("name:(John Smith)"), "name:(John~ Smith~)"); equal(fuzzQuery("name:Jon~0.1"), "name:Jon~0.1"); equal(fuzzQuery("Jon"), …

3
C 및 C ++ 프로그램에서 유형을 어떻게 표시해야합니까?
에서 내이 대답 , 내가 사용하는 _t최상의 논란 종료 유형의 끝에서. 이것이 현재 프로젝트에서 사용하는 관행입니다. typedef struct { int x; int y; } point_t; 이것은 stddef.hlike size_t또는의 C 유형과 일치하도록 의도되었습니다 ptrdiff_t. 그러나 내 질문에 대한 특정 의견에 따르면 _tpostfix는 POSIX 용으로 예약 된 것으로 보입니다. 대신에 무엇을 사용해야 …
12 c++  c  naming 

1
RESTful API는 얼마나 이산 적이어야합니까?
나는 전에 RESTful API를 만든 적이 없으며 얼마나 불연속 적인지 궁금합니다. 예를 들어 이름, 주소, 전화 번호, 전자 메일 주소, 언어 등이있는 고객이 있다고 가정하겠습니다. 각 개별 필드 (업데이트 주소, 업데이트 이메일 주소 등)를 업데이트 할 수있는 방법이 있거나 전체 고객에 대해 단일 업데이트가 있어야하며 각 필드는 선택 사항이어야합니까?
12 api  rest 

3
프로덕션 시스템의 재사용 및 회귀 테스트 비용과 관련된 소프트웨어 엔지니어링 원칙이 있습니까?
저는 연금 및 투자를 돌보는 은행을 위해 대규모 금융 거래 시스템에서 일했습니다. 15 년간의 기능 변경 후 수동 회귀 테스트 비용은 릴리스 당 2 억 달러로 상승했습니다. (1 천만 LOC, 매일 천만 달러 거래). 이 시스템은 또한 회사 주변의 19 개 다른 시스템과 인터페이스하여 많은 양의 데이터를 이동시킵니다. 이 시스템은 …

1
OCP (Open Closed Principle) 및 DIP (Dependency Inversion Principle)
OCP ( Open Closed Principle )와 DIP ( Dependency Inversion Princible ) 의 차이점을 이해하려고했습니다 . 지금까지 인터넷에서 수행 한 연구를 바탕으로 'DIP는 OCP를 달성 할 수있는 하나의 옵션'이라는 결론에 도달했습니다. 나는 이것에 맞습니까? DIP를 따르지 않지만 OCP를 따르는 예를 들어 주시겠습니까?

2
누군가 Haskell의 메모에 대한 개념을 설명 할 수 있습니까?
(코딩 문제가 아닌 개념적 역학에 관한 것이기 때문에 여기서 질문하고 있습니다) 나는 작은 규모의 피보나치 수를 사용하는 작은 프로그램을 연구하고 있었지만 특정 수를 초과하면 고통스럽게 느려졌으며 약간의 인터넷 검색이 Haskell의 기술을 우연히 발견했습니다 Memoization. 그들은 다음과 같이 작동하는 코드를 보여주었습니다. -- Traditional implementation of fibonacci, hangs after about 30 slow_fib …

8
"자동화가 쉽다"는 생각은?
제목이 다 나와 있습니다. 회사의 일부 직원은 자동화 된 테스트가 "쉽고"COM 및 UI 테스트를 작성하는 데 "하루가 걸린다"고 생각합니다. 이에 대응하기 위해 무엇을 할 수 있습니까? 참고 : 자동화를 홍보하는 방법에 대해서는 묻지 않습니다. 그것은 문제가 아닙니다. 자동화 된 테스트 및 프로세스가 항상 홍보되고 요청되고 있습니다. 문제는 일부 개인이 자동화가 …

2
견고성과 내결함성의 차이점은 무엇입니까?
시스템 / 프로그램 / 분산 알고리즘 / ...은 종종 강력한 또는 내결함성 술어로 설명됩니다 . 차이점은 무엇입니까? 세부: Google에서 + 견고 + "내결함성"을 검색하면 도움이되지 않는 두 번의 조회 만받습니다. 용어에 대해 구글 검색을 할 때 제목에 두 용어가 모두 포함 된 논문이 많이 있습니다. 불행히도, 그들은 정확하게 용어를 정의하지 …

2
동일한 메소드를 여러 번 호출 할 때의 순환 복잡성
Code Review 에 대한 질문 덕분에 아래 코드의 Cyclomatic Complexity가 무엇인지에 대해 약간의 의견 차이가 생겼습니다. public static void main(String[] args) { try { thro(); thro(); thro(); thro(); thro(); thro(); thro(); } catch (NullPointerException e) { } } private static Random random = new Random(); public static void thro() throws …

8
신속한 프로토 타이핑은 민첩한 방법론에 어떻게 적합합니까?
민첩한 프로세스의 사용을 지시하는 대기업에서 일합니다. 예를 들어, 프로젝트에는 민첩한 개발 관리를 목표로하는 클라우드 기반 서비스를 사용합니다. 내가 일하는 특정 엔지니어링 그룹은 전통적으로 소프트웨어를 개발하지 않았으며 (대신 훨씬 더 조망적인 관점에서 프로젝트를 추진하는 데 도움이 됨) 변화하고 있습니다. 데이터 중심의 다가오는 예정 / 예정 소프트웨어 프로젝트가 다양합니다. 예를 들어, 데이터 …

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