Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
200107 SSAFY
Search
하조은
January 07, 2020
Technology
0
750
200107 SSAFY
협업을 위한 클린코드
하조은
January 07, 2020
Tweet
Share
More Decks by 하조은
See All by 하조은
240802 INFCON
hajoeun
1
760
230909 NE(O)RDINARY DEMODAY
hajoeun
0
240
190727 Dream Design Concert
hajoeun
0
87
190706 GDG x For.D
hajoeun
3
500
190316 CON-SALAD
hajoeun
0
540
190216 GDG
hajoeun
0
570
181214 Rainist
hajoeun
0
400
Other Decks in Technology
See All in Technology
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
13
11k
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
230
.NET 10の概要
tomokusaba
0
110
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
1
850
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
750
5分で知るMicrosoft Ignite
taiponrock
PRO
0
390
因果AIへの招待
sshimizu2006
0
980
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
120
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
1
200
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
280
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Bash Introduction
62gerente
615
210k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The Invisible Side of Design
smashingmag
302
51k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Transcript
협업을 위한 클린코드 Samsung Software Academy For Youth 하조은
Overview 경험 공유 01 담대한 협업과 클린코드 라이브 코딩1 02
나쁜 코드를 깨끗하게 라이브 코딩2 03 함수형 프로그래밍 라이브 코딩3 04 테스트와 스타일 가이드
경험 공유 "담대한 협업과 클린코드"
Index 야생 개발자 01 담대한 협업 02 클린코드 03 뱅샐
개발자 04
야생 개발자 01
야생?
Wild [waɪld] animals or plants live or grow in natural
surroundings and are not looked after by people.
야생 개발자?
협업 경험이 적은 개발자
문과 출신 개발자
나름대로 문학소년
프로그래밍을 처음 배우며 했던 생각
"프로그래밍, 이거 제법 문과스러운데?"
시(詩) 쓰듯 프로그래밍
멋진 코드는 함축적인 코드
None
None
대출 상품 페이지.html
우아한 코드는 적당히 어려운 코드
None
깨끗한 코드는 짧고 예쁜 모양의 코드
None
None
조금 어려워도 옆사람만 이해하면 된거 아니야?
응, 아니야
협업을 위한 코드가 아니니까
협업을 위한 코드?
담대한 협업 02
None
담대한 협업?
공유와 피드백
냄맡빠공
냄새를 맡으면 빠르게 공유
개발자의 공유와 피드백
코드 리뷰
개발자의 담대한 협업 코드 리뷰를 잘하는 것
협업하기 좋은 코드 리뷰하기 좋은 코드
None
클린코드 03
Subject 깨끗한 코드 01 의미있는 이름 02 함수와 주석 03
오류 처리 04
Subject 깨끗한 코드 01 의미있는 이름 02 함수와 주석 03
오류 처리 04 3장과 4장의 내용 7장의 내용
코드의 품질을 측정하는 척도 분당 "이건 뭐지?"를 외치는 정도
None
WTF? WTF? WTF? WTF? WTF? WTF? WTF?
WTF?!!?@ WTF?!!@!?@!!
None
깨끗한 코드 "깨끗한 코드는 잘 쓴 문장처럼 읽힌다" by. Grady
Booch (p.10)
None
간결하지만 잘 읽히진 않는다
None
문장으로 읽힌다
None
의미 있는 이름 "의도를 분명하게 밝혀라" by. Uncle Bob (p.23)
None
None
None
None
None
None
None
의미 있는 이름은 의도를 분명히 드러낸다
의미 있는 이름은 팀을 소통하게 만든다
함수 "프로그래밍은 여느 글짓기와 비슷하다" by. Uncle Bob (p.61)
None
None
None
None
None
None
서술적으로 표현하기
주석
코드 자체가 글인데 주석은 왜 써야해? by. Uncle Bob (ࢳী
ೠ Ѽ೧)
주석을 쓰기 시작하면 코드의 가독성이 떨어진다
주석 대신 코드로 이야기하자
None
None
서술적인 이름을 짓자
None
None
오류 처리 "논리와 오류 코드를 뒤섞지 마라" by. Uncle Bob
(p.142)
논리와 오류 코드를 뒤섞지 마라
비즈니스 로직에 집중할 수 있게 해라
논리와 로깅 코드를 뒤섞지 마라
"필터가 변경될 때마다 이벤트 로그를 남겨주세요!"
None
None
None
로깅 코드가 숨어들어 논리에 집중하기 어려움
논리와 로깅 코드를 뒤섞지 말자
None
None
로깅 코드가 분리되어 논리에 집중된다
Summary 깨끗한 코드 01 문장처럼 읽힌다 의미있는 이름 02 의도를
드러내라 함수와 주석 03 프로그래밍은 글짓기 오류 처리 04 논리에 집중해라
뱅샐 개발자 04
None
멋진 코드는 함축적인 코드?
멋진 코드는 설명이 필요 없는 코드!
우아한 코드는 적당히 어려운 코드?
우아한 코드는 예상 가능한 코드!
깨끗한 코드는 짧고 예쁜 모양의 코드?
깨끗한 코드는 수정이 용이한 코드!
휴가 떠나서 불안해 하지 말자
클린코드는 협업을 위한 코드다
라이브 코딩1 "나쁜 코드를 깨끗하게"
나쁜 코드를 깨끗하게 리팩토링 해보자
https://github.com/joeunha/clean-code-ssafy Source Code
Remind 깨끗한 코드 01 문장처럼 읽힌다 의미있는 이름 02 의도를
드러내라 함수와 주석 03 프로그래밍은 글짓기 오류 처리 04 논리에 집중해라
Live Coding ▶
라이브 코딩2 "든든한 우리형, 함수형"
"깨끗한 코드는 한 가지를 제대로 한다" by. Bjarne Stroustrup
클린코드를 위한 함수형 프로그래밍
한 가지를 제대로 하는 방법
논리를 꼬집어라
결괏값으로 소통하라
함수를 합성하라
Live Coding ▶
라이브 코딩3 "테스트와 스타일 가이드"
믿을 수 없는 코드
믿을 수 있는 조건을 검증하는 방법 ✅
Unit Test
JEST
Live Coding ▶
서로 다른 코드 스타일
일관된 코드 스타일을 적용하기 위한 도구
LINT
ESLint
Live Coding ▶
Thank You