58
CODE REVIEW

플리토 코드리뷰 - Code Review in Flitto

  • Upload
    -

  • View
    1.058

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 플리토 코드리뷰 - Code Review in Flitto

CODE REVIEW

Page 2: 플리토 코드리뷰 - Code Review in Flitto

눈치�보는�나,�오해하는�당신

Page 3: 플리토 코드리뷰 - Code Review in Flitto

Yongjun�Kim

TeamA(pp)

[email protected]

Page 4: 플리토 코드리뷰 - Code Review in Flitto

켄트백�구현패턴�中

Page 5: 플리토 코드리뷰 - Code Review in Flitto

HOW

Page 6: 플리토 코드리뷰 - Code Review in Flitto

+

Page 7: 플리토 코드리뷰 - Code Review in Flitto

feature/<new_feature_name>

bugfix/<new_issue_name> bugfix/<JIRA issue number>

Page 8: 플리토 코드리뷰 - Code Review in Flitto

masterdevelopbugfix branchesfeature branches

tag/v2.4.1

tag/v2.4.0

tag/v2.5.0

Page 9: 플리토 코드리뷰 - Code Review in Flitto

작업�마무리�되면�<develop>�으로�Pull�Request

Page 10: 플리토 코드리뷰 - Code Review in Flitto

Who is Reviewer?

Page 11: 플리토 코드리뷰 - Code Review in Flitto

Android Developer 도 iOS 리뷰하자 iOS Developer 도 Android 리뷰하자

Page 12: 플리토 코드리뷰 - Code Review in Flitto

작업�로그를�잘�남겨두자단,�

Dev.Log

Page 13: 플리토 코드리뷰 - Code Review in Flitto

Code conventionCommit Msg formatDev.Log

Not Only for Code Review, just for Team

Page 14: 플리토 코드리뷰 - Code Review in Flitto

한번씩은�해보자.�

주별로�Review Master

Page 15: 플리토 코드리뷰 - Code Review in Flitto

라인�단위�@리뷰

Page 16: 플리토 코드리뷰 - Code Review in Flitto

만약�리뷰(댓글)가�있을�경우,��리뷰에�대한�피드백을�한다

Page 17: 플리토 코드리뷰 - Code Review in Flitto

리뷰가�끝나면��최종�확인�메시지를�남긴다

Page 18: 플리토 코드리뷰 - Code Review in Flitto

はやく한�작업이�아니라면�

리뷰요청 진행작업

Page 19: 플리토 코드리뷰 - Code Review in Flitto

그�날�받은�PR은�그�날�리뷰하자

Do Not 귀찮아

Page 20: 플리토 코드리뷰 - Code Review in Flitto

Release

Pull RequestMerge

<master>

<develop>

TAG

QA

Page 21: 플리토 코드리뷰 - Code Review in Flitto
Page 22: 플리토 코드리뷰 - Code Review in Flitto

이�아닌….

Page 23: 플리토 코드리뷰 - Code Review in Flitto
Page 24: 플리토 코드리뷰 - Code Review in Flitto

오타�예외�처리�(exception,�null�point)��라이브러리�추천�코드�제안�(로직�제안)�Q&A

컨벤션�(네이밍,�괄호,�들여쓰기,�주석)

Page 25: 플리토 코드리뷰 - Code Review in Flitto

컨벤션�(네이밍,�괄호,�들여쓰기,�주석)

발생빈도는�초기에는�높으나

초기�한달�정도는�좋음.�PR�과정을�여러번�하다보면�저절로�없어짐,�컨벤션�확인을�자동화필요

컨벤션,�오타�찾기는�부가적

중요도는�낮아야�함

Page 26: 플리토 코드리뷰 - Code Review in Flitto

!앗

Page 27: 플리토 코드리뷰 - Code Review in Flitto

비난하기�위한�리뷰가�아닌��

코드�품질을�위한�리뷰를�하자

Page 28: 플리토 코드리뷰 - Code Review in Flitto

git stashgit stash listgit stash pop

작업중�발생한�다른�이슈는��

같은�브랜치에�포함하지�않음

Page 29: 플리토 코드리뷰 - Code Review in Flitto

conflict으로�인한 auto-merging이�되지�않는�경우

Page 30: 플리토 코드리뷰 - Code Review in Flitto

아직까지는�Push를�막지�않음

긴급�배포�git�blame(비난)�받지�않을만큼�테스트�후�바로�Push하거나�주위의�동료에게�코드리뷰를�요청�

Page 31: 플리토 코드리뷰 - Code Review in Flitto

만약�2명이상�작업을�하거나�작업이�큰�경우�

?

developfeature branches

feature/Afeature/A1feature/A2

PR

Page 32: 플리토 코드리뷰 - Code Review in Flitto

developfeature branches

feature/b2bfeature/b2b_dev

Pull

Pull Request

Yesterday

Page 33: 플리토 코드리뷰 - Code Review in Flitto

developfeature branches

feature/b2bfeature/b2b_dev

Pull Request

Pull

Yesterday

Page 34: 플리토 코드리뷰 - Code Review in Flitto

!아~

Page 35: 플리토 코드리뷰 - Code Review in Flitto

장점

Page 36: 플리토 코드리뷰 - Code Review in Flitto

코드를�읽게�되고�그를�통해�배움�로직,�예외�처리에�대한�리뷰와�논의로�프로젝트가�안정화�소수�인원의�온라인�리뷰로�인한�시간�절약�나보다�뛰어난�엔지니어의�리뷰로�인한�실력의�향상�코드리뷰를�통한�코드�품질�향상�변경이�용이한,�테스트�코드가�잘�동작하도록�미리�설계

Page 37: 플리토 코드리뷰 - Code Review in Flitto

단점

Page 38: 플리토 코드리뷰 - Code Review in Flitto

자주�하나의�PR에�많은�양의�코드�리뷰�가끔�iOS�로직을�모른다라는�핑계로�리뷰�집중력�저하�잦은�Pull�Request로�리뷰�시간이�많이�소모됨�온라인�리뷰의�한계를�지님�(가끔�오프라인�리뷰도�필요)�시니어는�배움에�대한�한계

Page 39: 플리토 코드리뷰 - Code Review in Flitto

어떤�자세가�필요한가?

Page 40: 플리토 코드리뷰 - Code Review in Flitto

Reviewee

commit�하기�전에�리팩토링이나�재확인�commit�단위를�잘�나누어�Pull�Request�리뷰가�필요한지�안한지�잘�판단하는�것이�중요�리뷰에�대한�본인의�의도를�리뷰어에게�잘�설명함

Page 41: 플리토 코드리뷰 - Code Review in Flitto

Reviewer

꼼꼼하게�되도록�라인단위의�리뷰�피드백이�마음에�들지�않는다면�추후에�직접�수정�서로간에�분쟁이�생길경우�리뷰이가�판단하도록�믿김�코드�품질보다�팀워크가�중요

Page 42: 플리토 코드리뷰 - Code Review in Flitto

Flittoolcon

Page 43: 플리토 코드리뷰 - Code Review in Flitto

commit�하기�전��

IDE로�리팩토링�쉽게하기

Page 44: 플리토 코드리뷰 - Code Review in Flitto

TDD AddTestCase

Test Fail

WriteCode

RunTest

Refactor

REPEAT

Page 45: 플리토 코드리뷰 - Code Review in Flitto

TDD

Pair Programming+

= Good

Page 46: 플리토 코드리뷰 - Code Review in Flitto
Page 47: 플리토 코드리뷰 - Code Review in Flitto

Intelligent�한�Tool을�쓰니까�Intelligent�를�느껴봐야죠

Page 48: 플리토 코드리뷰 - Code Review in Flitto

자주�쓰는�간단한�shortcuts

Page 49: 플리토 코드리뷰 - Code Review in Flitto

어르신에게�친절하게 greet()하지만�누군가는 move()

간단하게�믿고�따라하는�예제 hometown.js

Page 50: 플리토 코드리뷰 - Code Review in Flitto

Github Refactoring Sample

https://github.com/kimkevin/refactoring_sample

Page 51: 플리토 코드리뷰 - Code Review in Flitto

시연

Page 52: 플리토 코드리뷰 - Code Review in Flitto

Cmd + F6 : RenameCmd + Opt + N : InlineCmd + Opt + M : Extract MethodCmd + Opt + V : Extract Variable

[추가]

Page 53: 플리토 코드리뷰 - Code Review in Flitto

Cmd + F6 : Rename

[추가]

Page 54: 플리토 코드리뷰 - Code Review in Flitto

Cmd + Opt + N : Inline… (Function & Variable)

[추가]

Page 55: 플리토 코드리뷰 - Code Review in Flitto

Cmd + Opt + M : Extract Method

[추가]

Page 56: 플리토 코드리뷰 - Code Review in Flitto

Cmd + Opt + V : Extract Variable

[추가]

Page 57: 플리토 코드리뷰 - Code Review in Flitto

Q&A

Page 58: 플리토 코드리뷰 - Code Review in Flitto

감사합니다

Thank youありがとうございます

Se�lo�agradezco

Terima�kasih