BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

Bahmni 코딩 가이드라인

일반 코드 가이드라인

Java/Python 코드베이스

  1. 코딩 스타일은 중요하지만 과도하게 강요하지 않습니다.
  2. 코드는 깔끔하고 읽기 쉬워야 하며 SOLID 원칙을 따릅니다.
  3. DRY - 코드와 로직을 작고 재사용 가능한 단위로 나누고 재사용합니다. 코드는 적을수록 좋습니다.관련 문서: SOLID
  4. ROT 코드인가요? 이미 누군가 같은 문제를 해결했을 가능성이 큽니다. 기존에 연결된 구현을 찾지 못하면 알려진 라이브러리를 사용하십시오. 다만 비교적 단순한 단일 목적 때문에 라이브러리 의존성을 추가하지는 마십시오(예: 문자열이 null 또는 빈 값인지 확인하는 함수 하나를 위해 commons-lang 도입).관련 문서: DRY
  5. 사용하지 않는 코드 - 주석 처리된 코드를 포함한 죽은 코드를 유지하지 마십시오. 쓸모없는 짐이며 혼란을 일으킵니다. Git을 사용하고 모든 편집기에서 버전 간 차이를 잘 보여 줍니다.
  6. 기존 코드베이스에 중복 코드가 너무 많지만 직접 정리할 시간이 없다면 "TECH DEBT" 카드를 만드십시오.
  7. 반복문에는 명확한 길이와 올바른 종료 조건이 있어야 합니다.
  8. try-with-resources에서 Closeable 사용 같은 Java 관용구를 사용합니다.
  9. Stream을 사용합니다.
  10. "names.forEach" 같은 반복 방식을 사용합니다.
  11. 람다 표현식을 사용합니다.
  12. 업그레이드 시 코드가 기존 기능을 깨뜨려서는 안 됩니다.
  13. 필요한 데이터 마이그레이션은 기존 트랜잭션 데이터를 보존하고 계속 작동하도록 수행해야 합니다.
  14. 새 구성을 도입한다면 이전 동작을 기본값으로 유지하고 동작을 확장하거나 변경할 옵션을 제공해야 합니다. 즉, 기존 구성과 새 코드를 함께 사용할 때 구현 환경에서 업데이트할 필요가 없어야 합니다. 구성은 문서화하고 해당 릴리스 버전을 명시합니다.
  15. 기능은 가능한 한 이전처럼 동작하고 쉽게 익힐 수 있어야 하며, 가급적 최종 사용자 재교육이 필요하지 않아야 합니다.

OpenMRS용 Bahmni Java 라이브러리 및 모듈

단위/통합 테스트

각 테스트에서 비슷한 작업을 반복하지 마십시오. Before 어노테이션의 설정 메서드는 모든 테스트 전에 실행됩니다. 클래스 실행 전에 한 번만 실행해야 한다면 BeforeClass 어노테이션을 사용하십시오.

모든 데이터 설정 XML을 bahmni-test-commons로 옮기고 중복을 반드시 피하십시오. 다른 단위 테스트에도 관련될 수 있는 모든 Builder와 코드도 bahmni-test-commons 모듈로 옮기십시오.

Spring Context/Bean

Spring 연결에 주의하십시오. 컴포넌트가 없을 수도 있는 모든 패키지를 무분별하게 대규모로 스캔하면 애플리케이션 시작 시간이 늘어납니다.

Hibernate 매핑 파일을 중복하지 마십시오. Maven 모듈이 의존성이면 애플리케이션 Context XML도 상위 모듈에 포함되므로 매핑이 상속됩니다.

Bahmni UI 코딩 가이드라인

  • 모바일 브라우저(iPad 및 Android)는 ISO 날짜 파싱을 지원하지 않습니다. 날짜 파싱에 new Date(dateString)를 사용하지 말고 moment.js를 사용하는 DateUtil.parse()를 사용하십시오.
  • "Submit" 버튼을 비활성화할 때 검증 메서드의 통과 여부 대신 양식의 유효성을 확인하십시오. 검증 메서드가 입력 컨트롤을 invalid로 표시하게 하면 양식도 간접적으로 invalid가 됩니다. 그러면 양식의 모든 입력 컨트롤이 유효할 때만 Submit 버튼이 활성화되어 제출 메서드의 활성화/비활성화 로직이 단순해집니다.
  • span과 div에 자체 닫힘 HTML 태그를 사용하지 마십시오. <span/>은 Grunt HTML Validator와 Minifier에서 <span>으로 변환되어 "dist"가 예상대로 작동하지 않습니다. <span/> 대신 <span></span>을 사용하십시오. http://stackoverflow.com/questions/3558119/are-self-closing-tags-valid-in-html5 참고.
  • 성능 개선과 관련된 Angular 가이드라인은 관련 문서를 참고하십시오.관련 문서: AngularJS 개발 지침

참고 자료

인터넷에는 도움이 되는 가이드라인이 충분히 있습니다.

Java

  1. https://www.javacodegeeks.com/2015/06/java-programming-tips-best-practices-beginners.html
  2. https://medium.com/@rhamedy/a-short-summary-of-java-coding-best-practices-31283d0167d3
  3. Oracle Technet(현재 보관됨) - https://www.oracle.com/technetwork/java/javase/documentation/codeconventions-137265.html
  4. https://docs.oracle.com/cd/A97688_16/generic.903/bp/java.htm

React

  1. https://reactjs.org/docs/thinking-in-react.html

Angular

  1. 성능 관련 Angular 가이드라인관련 문서: AngularJS 개발 지침

Python

  1. https://airbrake.io/blog/python/python-best-practices
원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗