1. 변경이 쉽다.
ㅡ 변경함에 있어서 해당요소의 경계가 명확하다.
ㅡ 변경함에 있어서 주변소스의 변경은 제로화한다.
2. 반복이 없다
ㅡ 반복되는 부분을 하나로 만든다.
3. 이름짓기를 잘한다.
ㅡ 추상층이 높아 질 수록 보편적으로 사용하는 키워드를 사용하며, 가급적 GoF패턴의 명칭들은 그 의도와 비슷한 경우에만 사용. (자바쪽에 특히 오용된것들이 많습니다 )
4. 해당언어의 이디엄과 추구하는 방향에 맞춰 코딩한다.
ㅡ 예를들어 자바 코드짜는데 C처럼 짜면안되겠죠. 마찬가지로 코틀린 코드 짜는데 자바처럼 짜면 후지다라는 느낌이 듭니다.
5. 팀이 정한 컨벤션에 일치한다.
ㅡ 예외처리(가까이서 처리? 멀리서 처리? 등)나 로깅의 경우 답이 없기 때문에 일치화가 중요
ㅡ 탭사용규정,줄바꿈규정 등등
6. 바퀴를 재발명하지 않는다.
ㅡ 이미 잘 짜여진 기술이 있고, 변경 필요가 없다면 있는것을 사용해서 의사소통 비용줄임. 예를 들어 JVM에서 프록시 패턴을 굳이 스스로 만들기 보단 다이나믹 프록시 사용. 스프링지원기술들 사용
물론 발명할 필요성은 추후에 검토 합니다. C++의 STL이나 자바의 컬렉션이나 보편적 성능일뿐이지 특정상황에선 엄청느리니까요
7. 후임자가 큰 실수 할 여지를 줄인다
ㅡ 제약 상황을 많이 만들어 넣어서 후임자가 잘못하면 가급적 컴파일 타이밍에 에러를 내게 합니다.
8.추상화가 잘 된 코드 (오버엔지니어링 이슈가 있음)
9.잘 알려진 패턴이 잘 적용된 코드
10. 시대흐름에 맞는 코드
ㅡ 모던C++, 모던자바
11.테스트 친화적 코드
이런것들이 잘 녹여진 코드를 보면 감동이 있죠.
'etc' 카테고리의 다른 글
[영상편집]프리미어 프로 - system compatibility report (0) | 2023.05.02 |
---|---|
자기소개 (2) | 2022.09.16 |
504 gateway time-out 에러 해결방법 (0) | 2022.09.08 |
proxy/reverse proxy, web server, load balancer 개념 (0) | 2022.09.08 |
character encoding (0) | 2022.07.11 |