-
Notifications
You must be signed in to change notification settings - Fork 18
PR 리뷰 컨닝페이퍼
박태영 edited this page Aug 24, 2024
·
4 revisions
- PR 브랜치 이름은
feature/이슈번호-이슈요약
형식을 따릅니다 - 아래 PR 샘플을 참고해주세요
- PR 제출 후 main 브랜치와 충돌이 발생한다면 rebase나 merge로 해결하면 됩니다
- 커밋이 많아져도 직접 squash할 필요는 없습니다
- 머지할 때 squash할 예정이므로 걱정하지 않아도 됩니다
-
#region ... #endregion
은 피하고 줄바꿈과//
주석으로 구조를 표현하세요.
- 복수형을 나타내기 위해 명확하게
Fixtures
,Tests
,LogProbs
와 같은 변수명을 사용하세요.
-
LogProb
처럼 record 명은 카멜케이스를 따릅니다.
- 클래스 정의시
///
각주로summary
등 각주를 달아주세요.
- 날짜+시간 데이터를 다룰 때는
DataTime
보다DateTimeOffset
을 사용하세요. - UTC Offset을 포함하므로, 서로 다른 시간대의 값을 비교할 때 유용합니다.
- 속성의 필수 여부를 명확히 하기 위해 데코레이터를 사용해주세요.
- 대신
required
제한자를 사용할 수 있는데 이 경우 컴파일러에서 생성자 초기화를 강제합니다.
// src/AzureOpenAIProxy.ApiApp/Models/AdminEventDetails.cs
/// <summary>
/// Gets or sets the event id.
/// </summary>
public required string? EventId { get; set; }
- 위와 같이
JsonProperty
데코레이터 사용할 때는 생성자 초기화를 강제하지 않습니다.
// src/AzureOpenAIProxy.ApiApp/Models/AdminEventDetails.cs
/// <summary>
/// Gets or sets the event id.
/// </summary>
[JsonRequired]
public string? EventId { get; set; }
- 객체 모든 속성에 nullable 타입을 적용하세요?
- 타입 뒤에
?
를 붙이면 됩니다?
-
foreach
루프 대신 개별 테스트로 값을 검증해주세요. - 각 값에 대해 명확하고 독립적인 테스트를 작성합니다.
- 다만 테스트할 때는 단위테스트 취지를 고려하여, 테스트 항목을 나누어 진행해봅니다.
- 이를테면 이렇게 테스트를 나누어 진행합니다.
-
AdminEventDetails
가 존재하면서 그게Object
인가 - 특정
propName
이 존재하면서 그게Object
인가 - 특정
propName
이required
인가 - 특정
propName
의 type이 무엇인가
-
- 패키지 버전은 메이저 버전만 명기하여 관리합니다.
- 요청받은 리소스가 아예 존재하지 않아 null exception이 발생하면 404
- 존재하는데 개수가 하나도 없는 빈 컬렉션은 200OK으로 반환