소프트웨어 공학

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

5
컴파일러의 출력이 객체 코드라고하는 이유는 무엇입니까?
Hackers & Painters에 발표 된 Paul Graham이 설명한 에세이 프로그래밍 언어 : 컴파일러에 공급하는 고급 언어를 소스 코드 라고하며 , 생성하는 기계 언어 변환을 객체 코드 라고 합니다 . 에서 오브젝트 코드에 Wikipedia 기사 : 객체 코드 또는 때로는 객체 모듈은 컴퓨터 컴파일러가 생성하는 것입니다. 에서 '컴파일러'의 정의 : 전통적으로 …

2
"실제 프로그래머는 어떤 언어로도 어셈블리 코드를 작성할 수 있습니다."는 것이 사실입니까?
실제 프로그래머는 모든 언어로 어셈블리 코드를 작성할 수 있습니다. (래리 벽). Larry Wall 씨는 제가 알 수있는 한 실제 프로그래머에게 모든 언어가 ASM과 동일한 기능을 가질 수 있다고 말하려고합니다. 그러나 나는 진지하게 이해하지 못한다. Perl, Python, Java 및 C #과 같은 고급 언어로 어셈블리 코드를 작성하는 방법은 무엇입니까? Perl 및 …

8
독학 / 경험이없는 프로그래머의 이력서는 어떻게 보입니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . 나는 일자리를 찾을 준비가되어 있고 긍정적 인 응답을 받았을 때를 아는 것에 대해 잠시 물었다. 지금 구직을 시작하기 …
13 resume 

3
조건부 컴파일의 바로 가기로 C / C ++ 매크로를 사용하는 것이 좋습니다?
내 코드에 여러 유형의 출력 메시지를 원한다고 가정 해 봅시다. 그중 하나는 DEBUG코드가 디버그 모드에서 컴파일 될 때만 인쇄됩니다. 보통은 다음과 같은 것을 작성해야합니다 #ifdef DEBUG std::cout << "Debug message" << std::endl; #endif 많은 장소에서 사용하기가 번거롭고 성가시다. 코드 스 니펫에 대한 매크로를 정의하는 것이 좋은 방법이므로이 방법으로 사용 하시겠습니까? …
13 c++  c  macros 

7
연결 제한 제약 된 데이터베이스에 고주파 이벤트 저장
서버에 들어오는 엄청난 양의 이벤트를 초당 약 1000 개의 이벤트로 평균 처리해야하는 상황이 있습니다 (피크는 ~ 2000 일 수 있음). 문제 우리의 시스템은 Heroku에서 호스팅되며 최대 500 개의 DB 연결을 허용하는 비교적 비싼 Heroku Postgres DB 를 사용합니다. 연결 풀링을 사용하여 서버에서 DB로 연결합니다. DB 연결 풀이 처리 할 수있는 …

5
모든 개발자가 코드 검토를 수행하도록하기
저는 7-8 개발자 팀의 소프트웨어 개발자입니다. 우리는 꽤 오랫동안 코드 검토를 해왔으며 시간이 지남에 따라 코드 품질이 향상되었습니다. 그러나 최근에 일부 개발자는 다른 개발자보다 더 많은 코드 검토를 요구하는 것으로 나타났습니다. 융통성있는 태도 때문인 것 같습니다. 제 생각에 이것은 코드 검토가 수행되는 방식이 아닙니다. 모든 팀이 이에 대해 책임을 져야하며 …

3
정적 오류 검사를 사용하여 비즈니스 오류 방지
나는 정적 유형 검사의 팬입니다. 다음과 같은 어리석은 실수를 저 지르지 않습니다. // java code Adult a = new Adult(); a.setAge("Roger"); //static type checker would complain a.setName(42); //and here too 그러나 다음과 같이 바보 같은 실수를 저지르는 것을 막지는 않습니다. Adult a = new Adult(); // obviously you've mixed up …

2
소프트웨어 라이센스를 리포지토리에 늦게 보낸 경우 이전의 모든 커밋이 라이센스에서 언 바운드됩니까?
커밋이 100 개인 프로젝트가 있다고 가정 해보십시오. 101 번째 커밋까지 소프트웨어 라이센스를 추가하지 않습니다. 프로젝트를 오픈 소스로 만들면 101 번째 커밋에서 소프트웨어 라이센스가 처음 100 개의 커밋을 모두 언 바운드한다는 의미입니까? 라이센스를 추가 할 때 프로젝트를 리베이스해야합니까?

4
수정 된 후에 만 ​​테스트 할 수있는 버그를 어떻게 TDD 할 수 있습니까?
예를 들면 다음과 같습니다. 웹 응용 프로그램에 드래그 가능한 요소가 있습니다. 요소를 드래그하면 브라우저가 "고스트 이미지"를 생성합니다. 드래그 할 때 "고스트 이미지"를 제거하고이 동작에 대한 테스트를 작성하려고합니다. 내 문제는 처음 에이 버그를 수정하는 방법을 모르고 테스트를 작성할 수있는 유일한 방법은 수정 한 것입니다. 와 같은 간단한 함수에서 코드를 작성하기 전에 …

2
LinkedList를 확장하는 스택. Liskov 대체 원칙 위반?
add_first (), add_last (), add_after (), remove_first (), remove_last () 및 remove ()와 같은 함수가있는 LinkedList 클래스가 있습니다. 이제 push (), pop (), peek () 또는 top ()과 같은 기능을 제공하는 클래스 스택이 있으며 이러한 메소드를 구현하기 위해 LinkedList 클래스 메소드를 확장합니다. 이것이 Liskov 대체 원칙을 위반합니까? 예를 들어, 링크 …

1
마이크로 서비스는 사용자 여야합니까?
우리는 마이크로 서비스 아키텍처에서 사용자에게 권한을 부여하는 가장 좋은 방법을 결정하려고 노력하고 있으며 마이크로 서비스는 제한된 권한을 갖습니다. 우리 아키텍처는 중앙 인증 서비스를 사용하여 JWT 토큰 발행을 처리합니다. 우리는 다음과 같은 요구 사항이 있습니다. 사용자는 특정 역할을 수행하도록 제한되어야합니다. 예를 들어, 사용자는 자신이 소유 한 컨텐츠 만 작성 / 수정 …

3
자동 테스트를 대중화하는 방법은 무엇입니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 우리의 코드 기반은 현재 20 년 동안 성장하고 있습니다. 우리는 약 10 개발자 + sqa와 500kloc을 사용하고 …

3
여러 언어에서 상수를 어떻게 관리해야합니까?
여러 언어로 기능적으로 동일한 라이브러리를 지원하는 상황이 있습니다. 이들 사이에 공유해야하는 상수가 종종 있습니다 (예 : json 필드 이름 키 또는 오류 코드). 현재이 작업을 수행하는 방법은 각 언어의 상수를 정의하는 코드를 작성하는 것입니다. 문제는 유지 보수에 있습니다. 새 오류 코드를 추가하면 모든 라이브러리에서 수동으로 업데이트해야합니다. 이것은 몇 가지로는 괜찮지 …
13 design  packages 

4
내 데이터베이스 날짜 데이터 유형 십자군 정보 : 유효합니까? 할 보람 있는? 다른 사람이 느끼나요?
나는 SO에 대한 SQL 질문에 대답하는 데 많은 시간을 소비합니다. 나는 종종이 ilk에 대한 쿼리를 보게된다. SELECT * FROM person WHERE birthdate BETWEEN '01/01/2017' AND '01/03/2017' SELECT * FROM person WHERE birthdate BETWEEN '2017-01-01' AND '2017-03-01' SELECT * FROM person WHERE birthdate BETWEEN 'some string' AND 'other string' 즉, 주어진 …

7
응용 프로그램의 일부를 다시 작성하지 않는 방법
회사의 영업 부서 프로젝트를 위해 일하고 있습니다. 그것은 첫 번째 전문 프로그래밍 직업이지만, 나 자신이 코딩하고 수년 동안 배우고 있습니다. 프로젝트의 일부는 일부 데이터를 가져 와서 입력과 결합하여 생성하고 그래프로 만드는 것입니다. 그런 다음 데이터 등을 저장하십시오. 그래서 나는 이것에 대한 코드를 하루 만에 작성했습니다. 그 다음날 나는 프로젝트 감독관에게 …

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