소프트웨어 공학

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

4
GitHub 흐름에서, 기능 지점을 다른 기능 지점에 기반을 두는 것이 괜찮습니까?
우리는 프로젝트에서 GitHub Flow 를 사용 하며 대부분 마스터에서 새 기능 분기 를 열고 거기서 작업을하고 PR을 열고 코드를 검토 한 후 다시 마스터로 병합 합니다. 그러나 현재 진행중인 작업은에서 진행중인 다른 문제에 따라 다릅니다 feature-branch-A. 다른 지점에서 내 지점 을 만드는 것이 정숙 합니까, 아니면 GitHub Flow의 정신에 반하는 …
22 git  github  gitflow 

3
코드 배후의 목적이인지 오버 헤드를 줄이기 위해 '아이디 오마 틱'인가?
코드를 작성하는 방식을 이해하기 어렵게 만드는 사람에게 설명하려고 노력 중이며 리 팩터하면 쉽게 읽을 수 있습니다. 내가 운전하고있는이 스타일의 코드를 일반적으로 '아이디 오 매틱'코드라고합니다. 그러나 관용구 라는 문구 는 도덕적 정확성의 짐을 가져옵니다 . 이는 사람들이 코딩 스타일을 바꾸도록 유도하는 큰 동기가 아닙니다. 이 말을하는 더 긍정적 인 방법은 일반적인 …
22 idioms 

2
VCS에 소프트웨어 버전 번호를 저장하는 것이 좋습니다?
와 같은 제품 버전 v1.0.0.100은 소프트웨어의 고유 한 프로덕션 릴리스를 나타낼뿐만 아니라 해당 제품의 기능 세트와 핫픽스 단계를 식별하는 데 도움이됩니다. 현재 제품의 최종 패키지 / 빌드 / 이진 버전을 유지 관리하는 두 가지 방법이 있습니다. 버전 관리. 파일은 어딘가에 버전 번호를 저장합니다. CI (Continuous Integration) 빌드 서버에는이 체크인 버전 …

4
매개 변수화되지 않은 쿼리가 오류를 반환하도록 만드는 이유는 무엇입니까?
SQL 인젝션은 매우 심각한 보안 문제입니다. 잘못 입력하기가 너무 쉽기 때문입니다. 사용자 입력을 통합하여 쿼리를 작성하는 명확하고 직관적 인 방법은 사용자를 취약하게 만들고,이를 완화하는 올바른 방법은 매개 변수화에 대해 알아야합니다. 쿼리 및 SQL 주입을 먼저 수행하십시오. 이 문제를 해결하는 명백한 방법은 명백한 (그러나 잘못된) 옵션을 종료하는 것입니다. 데이터베이스 엔진을 수정하여 …
22 security  sql  rdbms 


8
팀에서 빌더 패턴 사용을 어떻게 홍보 할 수 있습니까?
우리의 코드베이스는 나 자신과 마찬가지로 오래되고 새로운 프로그래머 이며 균일 성을 위해 수행 된 방식으로 신속하게 학습합니다 . 우리는 어딘가에서 시작해야한다고 생각하면서 다음과 같이 데이터 홀더 클래스를 리팩터링했습니다. 세터 메소드를 제거하고 모든 필드를 작성했습니다 final( final공식적으로 "양호합니다"). 세터는 생성자에서만 사용되었으므로 부작용이 없었습니다. 빌더 클래스 소개 생성자 (처음에 리팩토링을 촉구 한 …

3
생성하는 동안 변경 가능하지만 나중에 변경할 수없는 멤버가있는 클래스
객체 컬렉션을 만드는 알고리즘이 있습니다. 이 객체는 생성 과정에서 거의 시작되지 않기 때문에 변경이 가능하지만 알고리즘 내의 다른 위치에 데이터가 채워집니다. 알고리즘이 완료된 후에는 객체를 변경해서는 안되지만 소프트웨어의 다른 부분에서 사용됩니다. 이러한 시나리오에서 아래에 설명 된대로 두 가지 버전의 클래스를 갖는 것이 좋은 방법으로 간주됩니까? 변경 가능한 것은 알고리즘에 의해 …
22 c# 

2
기능 소유권이 좋은 습관입니까?
최근 우리 회사에서는 한 명의 개발자가 한 기능에 집중해야한다고 제안했습니다. 이는 개발자를 일반적인 팀 루틴에서 제외하고 다른 책임 (회의 등)을 해제하는 것과 같은 의미이며,이 사람은 기술적 인 측면에서 기능에 대한 "유일한"책임자가 될 것입니다. 기록을 위해 SAFe 내에서 SCRUM을 사용하며 팀당 정규 개발자를 위해 두 팀 (Android 및 iOS)간에 QA 및 …

5
휴지통 사용자를 어떻게 관리 할 수 ​​있습니까?
나는 많은 사용자를 가질 수있는 시스템을 만들었습니다. 데이터베이스에서 수요가 많은 사용자 이름을 사용하거나 등록 만하고 다시는 돌아 오지 않는 휴지통 사용자가 데이터베이스에 가득 차게 될 것 같습니다. 3 개의 Google 계정이 있기 때문에 이것이 일반적이라는 것을 알고 있습니다. 그러나 1 만 사용합니다.

8
수많은 실패한 테스트를 처리하는 방법은 무엇입니까? [닫은]
휴무 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . Java로 작성된 오래된 프로젝트를 개발 중입니다. LOC는 천만 개가 넘고 4000 개가 넘는 기능 테스트가 있습니다. Hudson에 …

4
git“Rebasing의 황금률”이 꼭 필요한가?
나는 최근 GIT의 기능 브랜치 리베이스 전략에 반대하는 사람들과 토론을했습니다. 로컬, 개인 브랜치에 대해서만 리베이스를 사용하는 것이 허용되는 패턴 인 것 같지만,이 "소위 골든 리베 이싱 규칙"에 따라 동일한 기능 및 브랜치에서 작업하는 여러 사람이있을 때는 사용하지 않는 것이 좋습니다 (예 : https : : //www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview ) 이것에 대한 합의가 …
22 git 

4
MVC가 "문제의 분리"인 경우 왜 면도기 구문이 도입 되었습니까?
내 질문은 MVC 디자인 패턴 및 Microsoft가 도입 한 면도기 구문과 관련이 있습니다. MVC 디자인 패턴을 배우는 동안 아이디어가 분리의 우려 라는 원칙에 기반을 둔다는 말을 들었습니다 . 그러나 Razor Syntax를 사용하면 뷰 에서 C #을 직접 사용할 수 있습니다. 우려의 교차점이 아닌가?

2
스칼라는 왜 돌아 왔지만 깨지 않고 계속하지 않는가?
스칼라는 없습니다 break또는 continue일부 루프 동작은 좀 더 생각한다, 그래서. 루프를 일찍 끝내려면 꼬리 재귀, 예외 또는 scala.util.control.Breaks(예외를 사용하는)이 필요합니다. 이것에 대한 이론적 근거는 마치 goto흐름을 흐릿하게하는 흐름 구조이며, 더 훌륭하고 덜 놀라운 방법으로 달성 될 수 있다는 것입니다. 그러나 같은 주장이 사용될 수있을 것 같습니다 return. 스칼라는 왜 고의적으로 …


3
상속이없는 OO 언어가 있습니까?
오늘 코드 검토 중에 내 동료가 흥미로운 것을 말했습니다. prototype상속이 필요할 때만 유용합니다. 상속이 언제 좋은 아이디어 입니까? 나는 이것에 대해 생각했고 처음에는 잘못 설계 된 코드를 피하기 위해 상속을 사용한다는 것을 깨달았습니다. 현대의 OO 스타일은 상속보다 구성을 선호하지만, 이것을 마음에 새기고 실제로 시행 하는 언어는 모릅니다 . 클래스 기반 …

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