소프트웨어 공학

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

9
버전 제어 후크에서 단위 테스트를 실행하는 것이 좋습니까?
기술적 인 관점에서 특정 커밋을 원격 기본 브랜치에 병합하기 전에 단위 테스트를 실행하는 사전 / 사후 푸시 후크를 추가 할 수 있습니다. 내 질문은-빌드 파이프 라인에서 단위 테스트를 유지하는 것이 더 좋습니까 (따라서 깨진 커밋을 리포지토리에 도입) 또는 "나쁜"커밋이 발생하지 않도록하는 것이 좋습니다. 나는이 두 가지 옵션으로 제한되지 않는다는 것을 …

7
불변성과 객체 지향 프로그래밍
대부분의 OOP 언어에서 객체는 일반적으로 제한된 예외 세트 (예 : 파이썬의 튜플 및 문자열)로 변경 가능합니다. 대부분의 기능적 언어에서 데이터는 변경할 수 없습니다. 변경 가능한 객체와 변경 불가능한 객체는 모두 장점과 단점의 전체 목록을 제공합니다. 예를 들어 변경 가능하고 변경 불가능한 데이터가있는 (명시 적으로 선언 된) 스칼라와 같은 두 개념을 …

3
부울 메서드 이름 지정 확인 대 부정
부울 메소드는 항상 부정적인 형태로만 사용될 때에도 항상 긍정적 인 형태를 취해야합니까? 엔티티를 작성하기 전에 엔티티가 존재하는지 확인하고 싶다고 가정하십시오. 내 주장은 메소드가 긍정적 인 형식으로 사용되는지 여부에 관계없이 아래의 첫 번째 양식이 두 번째 양식보다 낫다는 것입니다. 요약하면, if(!affirmative)보다 읽기 쉽습니다 if(negative). 의견에 동의하지 않는 동료가 있습니까? 첫 번째 …
43 naming  functions 

4
git-flow 및 github를 사용한 코드 검토
정기적 인 git 및 github을 사용하면 마스터 브랜치로 작업중 인 기능 브랜치의 풀 요청을 간단히 작성하여 코드 검토를 수행 할 수 있습니다. git-flow로 코드 리뷰를 어떻게 수행합니까? "git flow feature finish"와 같은 워크 플로를 통해 코드 검토가 실제로 발생하는 위치와 git-flow 또는 git이 해당 검토를 용이하게하는 방법에 대해 혼란스러워합니다.

3
SOLID 원리 프로그래밍
시간이 지남에 따라 SOLID의 두 부분 인 “S”와“O”를 이해할 수있었습니다 . “O”– 상속 및 전략 패턴을 통해 공개 폐쇄 원칙을 배웠습니다. “S”– ORM을 배우면서 단일 책임 원칙을 배웠습니다 (지속성 논리는 도메인 개체에서 제외됨). 비슷한 방식으로 SOLID의 다른 부분 ( "L", "I"및 "D")을 배우는 가장 좋은 영역 / 작업은 무엇입니까? 참고 …

16
소프트웨어 버전 번호 날짜
소프트웨어 개발자는 일반적으로 날짜를 버전 번호로 사용하지 않지만 YYYYMMDD 형식 (또는 그 차이)은 사용할 정도로 견고합니다. 그 계획에 문제가 있습니까? 아니면 제한된 '유형'소프트웨어 (사내 제작과 같은)에만 적용됩니까?
43 versioning 

11
서명되지 않은 정수에 관한 모범 사례는 무엇입니까?
나는 사방에 부호없는 정수를 사용하며, 내가 해야하는지 확실하지 않습니다. 이것은 데이터베이스 기본 키 ID 열에서 카운터 등이 될 수 있습니다. 숫자가 음수가 아니어야 할 경우 항상 부호없는 int를 사용합니다. 그러나 다른 사람의 코드에서 아무도이 작업을 수행하지 않는 것으로 나타났습니다. 내가 간과해야 할 중요한 것이 있습니까? 편집 :이 질문 이후 C에서도 …

6
조건이 긴 경우 가장 잘 읽을 수있는 방법은 무엇입니까? [닫은]
가능하면 긴 와인딩 if조건을 피해야하지만 때때로 우리는 글씨를 쓰게됩니다. 매우 간단한 조건이라 할지라도 관련된 진술은 때로는 매우 말이 많기 때문에 전체 조건이 매우 길어집니다. 그것들을 포맷하는 가장 읽기 쉬운 방법은 무엇입니까? if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) { thud(); } 또는 if ( FoobarBaz::quxQuux(corge, grault) || !garply(waldo) …



3
서비스 대신 컨트롤러 호출 저장소를 사용하는 것은 나쁜 습관입니까?
서비스 대신 컨트롤러 호출 저장소를 사용하는 것은 나쁜 습관입니까? 더 설명하기 위해 : 좋은 디자인 컨트롤러에서는 서비스 및 서비스 사용 저장소를 호출한다는 것을 알았습니다. 그러나 때로는 컨트롤러에서 논리가 필요하지 않고 db에서 가져 와서보기 위해 전달해야합니다. 그리고 서비스를 호출 할 필요없이 저장소를 호출하면됩니다. 나쁜 습관입니까?


7
각 스프린트마다 여러 지점 / 개발자의 통합 코드를 어떻게 처리합니까?
개발자들이 각 스프린트의 마스터 브랜치에 자신의 이야기를 통합하는 것에 대해 우려를 표명 한 레트로 콜을 받았습니다. 개발자는 모두 자신의 지사 내에서 그리고 스프린트 끝까지 모든 코드를 하나의 마스터 지사로 병합합니다. 그런 다음 한 개발자 (일반적으로 동일한 개발자)는 모든 것이 다른 개발자의 코드와 잘 통합되도록하는 임무를 맡게됩니다 (대부분의 변경 사항은 같은 …

1
MIT 라이센스에서 저자 이름 변경 [닫기]
몇 년 전에 저는 MIT 라이센스에 따라 일부 소프트웨어를 작성하고 릴리스했습니다. 최근에 포크 중 하나 (또는 ​​일부)가 라이센스 맨 위에있는 주요 저작권 표시를 변경 한 것으로 나타났습니다. Copyright (c) 2014 <my name> MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software... …

9
“요요 문제를 피하십시오”가“원시 강박 관념”을 허용하는 타당한 이유입니까?
에 따르면 때 원시 집착하지 않는 코드 냄새입니까? String 객체 대신 우편 번호를 나타내는 ZipCode 객체를 만들어야합니다. 그러나 내 경험상, 나는보고 싶어한다 public class Address{ public String zipCode; } 대신에 public class Address{ public ZipCode zipCode; } 후자는 프로그램을 이해하기 위해 ZipCode 클래스로 이동해야한다고 생각하기 때문입니다. 그리고 모든 기본 데이터 …

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