SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
체계적인 정리법이 필요하다.
charsyam@naver.com
지저분한 코드
지저분한 코드
새로운 요구사항
지저분한 코드
새로운 요구사항
적용이 어려움
지저분한 코드
새로운 요구사항
적용이 어려움
급조한 코드
지저분한 코드
새로운 요구사항
적용이 어려움
급조한 코드
지저분한 코드의 악순환
무엇이
지저분한 코드 일까?
나쁜 냄새
http://blog.naver.com/aie76?Redirect=Log&logNo=40041302913
중복된 코드
긴 메서드
거대한 클래스
긴 파라매터 리스트
확산적 변경
산탄총 수술
기능에 대한 욕심
데이터 덩어리
기본 타입에 대한
강박관념
Switch 문
평행 상속 구조
게으른 클래스
추측성 일반화
Over Engineering
Temporary Field
Message Chains
Middle Man
부적젃한 친밀
다른 인터페이스를
가진 대체 클래스
불완젂한 라이브러리
클래스
데이터 클래스
거부된 유산
Comments
지저분한 코드를 만드는 케이스
지저분한 코드를 만드는 케이스
Case By Case 코드
지저분한 코드를 만드는 케이스
Case By Case 코드
커뮤니케이션의 부족
지저분한 코드를 만드는 케이스
Case By Case 코드
소스의 이해부족
-> 잘못된 수정
커뮤니케이션의 부족
지저분한 코드를 만드는 케이스
Case By Case 코드
소스의 이해부족
-> 잘못된 수정
높은 결합도로
인한 부작용
커뮤니케이션의 부족
지저분한 코드를 만드는 케이스
Case By Case 코드
소스의 이해부족
-> 잘못된 수정
높은 결합도로
인한 부작용
‘역사적인 이유로~’
라면 시작되는 변명
커뮤니케이션의 부족
지저분한 코드를 만드는 케이스
Case By Case 코드
소스의 이해부족
-> 잘못된 수정
높은 결합도로
인한 부작용
문서(주석)와 다른 소스
‘역사적인 이유로~’
라면 시작되는 변명
커뮤니케이션의 부족
지저분한 코드를 만드는 케이스
무책임한 개발자
Case By Case 코드
소스의 이해부족
-> 잘못된 수정
높은 결합도로
인한 부작용
문서(주석)와 다른 소스
‘역사적인 이유로~’
라면 시작되는 변명
커뮤니케이션의 부족
소스는 만드는 것보다
관리하는 것이 중요하다.
깨끗한 코드
깨끗한 코드
새로운 요구사항
깨끗한 코드
새로운 요구사항
적용이 쉬움
깨끗한 코드
새로운 요구사항
적용이 쉬움
동일성 있는 코드
깨끗한 코드
새로운 요구사항
적용이 쉬움
동일성 있는 코드
깨끗한 코드의 선순환
깨끗한 코드를 만드는 원칙
깨끗한 코드를 만드는 원칙
1. Easy Code
깨끗한 코드를 만드는 원칙
1. Easy Code
2. 통일성 있는 코드
깨끗한 코드를 만드는 원칙
1. Easy Code
2. 통일성 있는 코드
3. 리팩토링
TIP
자신이 생각한 시갂의
3배를 잡아라.
TIP
자신이 생각한 시갂의
3배를 잡아라.
스펙 작성
TIP
자신이 생각한 시갂의
3배를 잡아라.
스펙 작성
테스트
TIP
자신이 생각한 시갂의
3배를 잡아라.
스펙 작성
테스트정리 문서
작업 완료의 의미는 다르다.
코딩을 막 끝내고, 몇 번 동작해보니 돌아갑니다.
코드 작성 + 신뢰성 있는 테스트 + 코드 정리(리뷰)+문서 작성
THANK YOU!

Más contenido relacionado

Más de DaeMyung Kang

How to use redis well
How to use redis wellHow to use redis well
How to use redis wellDaeMyung Kang
 
The easiest consistent hashing
The easiest consistent hashingThe easiest consistent hashing
The easiest consistent hashingDaeMyung Kang
 
How to name a cache key
How to name a cache keyHow to name a cache key
How to name a cache keyDaeMyung Kang
 
Integration between Filebeat and logstash
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash DaeMyung Kang
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advanceDaeMyung Kang
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101DaeMyung Kang
 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better EngineerDaeMyung Kang
 
Kafka timestamp offset_final
Kafka timestamp offset_finalKafka timestamp offset_final
Kafka timestamp offset_finalDaeMyung Kang
 
Kafka timestamp offset
Kafka timestamp offsetKafka timestamp offset
Kafka timestamp offsetDaeMyung Kang
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lakeDaeMyung Kang
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbieDaeMyung Kang
 

Más de DaeMyung Kang (20)

Count min sketch
Count min sketchCount min sketch
Count min sketch
 
Redis
RedisRedis
Redis
 
Ansible
AnsibleAnsible
Ansible
 
Why GUID is needed
Why GUID is neededWhy GUID is needed
Why GUID is needed
 
How to use redis well
How to use redis wellHow to use redis well
How to use redis well
 
The easiest consistent hashing
The easiest consistent hashingThe easiest consistent hashing
The easiest consistent hashing
 
How to name a cache key
How to name a cache keyHow to name a cache key
How to name a cache key
 
Integration between Filebeat and logstash
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better Engineer
 
Kafka timestamp offset_final
Kafka timestamp offset_finalKafka timestamp offset_final
Kafka timestamp offset_final
 
Kafka timestamp offset
Kafka timestamp offsetKafka timestamp offset
Kafka timestamp offset
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lake
 
Redis acl
Redis aclRedis acl
Redis acl
 
Coffee store
Coffee storeCoffee store
Coffee store
 
Scalable webservice
Scalable webserviceScalable webservice
Scalable webservice
 
Number system
Number systemNumber system
Number system
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbie
 

Clean code pm