Skip to content

2021 07 05 회의록

Jinhong edited this page Aug 16, 2021 · 3 revisions

1. 코드 컨벤션(Google)

  • Preferences - Editor - Code Style - Java - Google Style IDE

  • Google Java Style Guide를 검색, intellij-java-google-style.xml 다운 받아서 IntelliJ 상에서 Scheme Import

  • Tab and Indents에서 Indent와 Tab Size를 모두 4로 변경

  • 마지막 New Line 추가

    • Posix 표준
      파일의 끝에 newline이 포함되지 않았네요, newline을 추가해주세요.
      POSIX 표준에도 맞지 않고, 협업 시 이런 부분들이 맞춰지지 않으면 아무런 변경이 없는데도 File Change로 잡힐 수 있어요
      
      저 같은 경우 IntelliJ에서 newline을 자동으로 추가하는 설정을 사용하고 있습니다.
      https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline
      
  • 매개변수가 3개 이상이거나 메서드 명이 길어짐으로써 라인 브레이크를 해야할 때?

    • 아직 미정
  • 클래스 시작하고 한 줄 띈다.

  • 엔티티의 필드는 전부 한 줄씩 띄되, 일반 애너테이션없는 도메인의 경우 안 띈다.

  • 상수는 붙이고, 인스턴스 필드는 띈다

  • 애너테이션이 클래스의 필드에 하나라도 존재하면 다 띈다

  • 인터페이스도 최초 메서드 뛰고, 메서드 선언간도 다 띈다

2. 테스트 코드 컨벤션

  • 1번 규칙을 따릅니다.
    • https://hilucky.tistory.com/216

      1. MethodName_StateUnderTest_ExpectedBehavior

      예제:

      • isAdult_AgeLessThan18_False
      • withdrawMoney_InvalidAccount_ExceptionThrown
      • admitStudent_MissingMandatoryFields_FailToAdmit
    • 인수 테스트도 해당 조건을 따르려고 노력해보고, 어려운 점이 있다면 추후 논의해볼것.

  • Display Name
    • 단순 명사형으로 나열하지 않고, 동사형으로 작성한다.
    • 너무 길어지지 않도록 한다.

3. 웹 계층

  • jwt → 웹 계층에 속하지 않고 spring mvc, ioc(interceptor 등)에 속하기 때문에 별도의 common 패키지를 분리.
  • github api는 인터페이스로 도메인에 위치, 실제 구현체는 인프라 레벨에.
    • 의존 역전 원칙은 "고수준 모듈은 저수준 모듈의 구현에 의존해서는 안 된다. 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다.
  • 도메인 우선 패키지 구조로 가되, a 도메인 패키지에서 b 도메인 패키지를 의존하려고 할 때?
    • 인터페이스를 통해 프록시(어댑터) 패턴 적용!
    • 구체적인 네이밍은 실제 개발들어가서 참조 필요할때마다 그때 공유하면서 이야기!
  • 서비스와 서비스간의 상호 참조는 막자.
    • Repository 참조 생각!