Upgrade to Pro — share decks privately, control downloads, hide ads and more …

200107 SSAFY

하조은
January 07, 2020

200107 SSAFY

협업을 위한 클린코드

하조은

January 07, 2020
Tweet

More Decks by 하조은

Other Decks in Technology

Transcript

  1. 협업을 위한 클린코드
    Samsung Software Academy For Youth
    하조은

    View full-size slide

  2. Overview
    경험 공유
    01
    담대한 협업과 클린코드
    라이브 코딩1
    02
    나쁜 코드를 깨끗하게
    라이브 코딩2
    03
    함수형 프로그래밍
    라이브 코딩3
    04
    테스트와 스타일 가이드

    View full-size slide

  3. 경험 공유
    "담대한 협업과 클린코드"

    View full-size slide

  4. Index
    야생 개발자
    01
    담대한 협업
    02
    클린코드
    03
    뱅샐 개발자
    04

    View full-size slide

  5. 야생 개발자
    01

    View full-size slide

  6. Wild [waɪld]

    animals or plants live or grow
    in natural surroundings and are
    not looked after by people.

    View full-size slide

  7. 야생 개발자?

    View full-size slide

  8. 협업 경험이 적은 개발자

    View full-size slide

  9. 문과 출신 개발자

    View full-size slide

  10. 나름대로 문학소년

    View full-size slide

  11. 프로그래밍을
    처음 배우며 했던 생각

    View full-size slide

  12. "프로그래밍,
    이거 제법 문과스러운데?"

    View full-size slide

  13. 시(詩) 쓰듯 프로그래밍

    View full-size slide

  14. 멋진 코드는
    함축적인 코드

    View full-size slide

  15. 대출 상품 페이지.html

    View full-size slide

  16. 우아한 코드는
    적당히 어려운 코드

    View full-size slide

  17. 깨끗한 코드는
    짧고 예쁜 모양의 코드

    View full-size slide

  18. 조금 어려워도 옆사람만
    이해하면 된거 아니야?

    View full-size slide

  19. 응, 아니야

    View full-size slide

  20. 협업을 위한
    코드가 아니니까

    View full-size slide

  21. 협업을 위한 코드?

    View full-size slide

  22. 담대한 협업
    02

    View full-size slide

  23. 담대한 협업?

    View full-size slide

  24. 공유와 피드백

    View full-size slide

  25. 냄맡빠공

    View full-size slide

  26. 냄새를
    맡으면
    빠르게
    공유

    View full-size slide

  27. 개발자의 공유와 피드백

    View full-size slide

  28. 코드 리뷰

    View full-size slide

  29. 개발자의 담대한 협업
    코드 리뷰를 잘하는 것

    View full-size slide

  30. 협업하기 좋은 코드
    리뷰하기 좋은 코드

    View full-size slide

  31. 클린코드
    03

    View full-size slide

  32. Subject
    깨끗한 코드
    01
    의미있는 이름
    02
    함수와 주석
    03
    오류 처리
    04

    View full-size slide

  33. Subject
    깨끗한 코드
    01
    의미있는 이름
    02
    함수와 주석
    03
    오류 처리
    04

    3장과 4장의 내용

    7장의 내용

    View full-size slide

  34. 코드의 품질을 측정하는 척도

    분당 "이건 뭐지?"를 외치는 정도

    View full-size slide








  35. WTF?
    WTF?
    WTF?
    WTF?
    WTF?
    WTF?
    WTF?

    View full-size slide




  36. WTF?!!?@
    WTF?!!@!?@!!

    View full-size slide

  37. 깨끗한 코드
    "깨끗한 코드는 잘 쓴 문장처럼 읽힌다"
    by. Grady Booch (p.10)

    View full-size slide

  38. 간결하지만
    잘 읽히진 않는다

    View full-size slide

  39. 문장으로 읽힌다

    View full-size slide

  40. 의미 있는 이름
    "의도를 분명하게 밝혀라"
    by. Uncle Bob (p.23)

    View full-size slide

  41. 의미 있는 이름은
    의도를 분명히 드러낸다

    View full-size slide

  42. 의미 있는 이름은
    팀을 소통하게 만든다

    View full-size slide

  43. 함수
    "프로그래밍은 여느 글짓기와 비슷하다"
    by. Uncle Bob (p.61)

    View full-size slide



  44. 서술적으로
    표현하기

    View full-size slide

  45. 코드 자체가 글인데
    주석은 왜 써야해?
    by. Uncle Bob (઱ࢳী ؀ೠ Ѽ೧)

    View full-size slide

  46. 주석을 쓰기 시작하면
    코드의 가독성이 떨어진다

    View full-size slide

  47. 주석 대신 코드로
    이야기하자

    View full-size slide

  48. 서술적인
    이름을 짓자

    View full-size slide

  49. 오류 처리
    "논리와 오류 코드를 뒤섞지 마라"
    by. Uncle Bob (p.142)

    View full-size slide

  50. 논리와 오류 코드를
    뒤섞지 마라

    View full-size slide

  51. 비즈니스 로직에
    집중할 수 있게 해라

    View full-size slide

  52. 논리와 로깅 코드를
    뒤섞지 마라

    View full-size slide

  53. "필터가 변경될 때마다
    이벤트 로그를 남겨주세요!"

    View full-size slide

  54. 로깅 코드가 숨어들어
    논리에 집중하기 어려움

    View full-size slide

  55. 논리와 로깅 코드를
    뒤섞지 말자

    View full-size slide

  56. 로깅 코드가 분리되어
    논리에 집중된다

    View full-size slide

  57. Summary
    깨끗한 코드
    01
    문장처럼 읽힌다
    의미있는 이름
    02
    의도를 드러내라
    함수와 주석
    03
    프로그래밍은 글짓기
    오류 처리
    04
    논리에 집중해라

    View full-size slide

  58. 뱅샐 개발자
    04

    View full-size slide

  59. 멋진 코드는
    함축적인 코드?

    View full-size slide

  60. 멋진 코드는
    설명이 필요 없는 코드!

    View full-size slide

  61. 우아한 코드는
    적당히 어려운 코드?

    View full-size slide

  62. 우아한 코드는
    예상 가능한 코드!

    View full-size slide

  63. 깨끗한 코드는
    짧고 예쁜 모양의 코드?

    View full-size slide

  64. 깨끗한 코드는
    수정이 용이한 코드!

    View full-size slide

  65. 휴가 떠나서
    불안해 하지 말자

    View full-size slide

  66. 클린코드는
    협업을 위한 코드다

    View full-size slide

  67. 라이브 코딩1
    "나쁜 코드를 깨끗하게"

    View full-size slide

  68. 나쁜 코드를 깨끗하게
    리팩토링 해보자

    View full-size slide

  69. https://github.com/joeunha/clean-code-ssafy
    Source Code

    View full-size slide

  70. Remind
    깨끗한 코드
    01
    문장처럼 읽힌다
    의미있는 이름
    02
    의도를 드러내라
    함수와 주석
    03
    프로그래밍은 글짓기
    오류 처리
    04
    논리에 집중해라

    View full-size slide

  71. Live Coding ▶

    View full-size slide

  72. 라이브 코딩2
    "든든한 우리형, 함수형"

    View full-size slide

  73. "깨끗한 코드는
    한 가지를 제대로 한다"
    by. Bjarne Stroustrup

    View full-size slide

  74. 클린코드를 위한
    함수형 프로그래밍

    View full-size slide

  75. 한 가지를 제대로 하는 방법

    View full-size slide

  76. 논리를 꼬집어라

    View full-size slide

  77. 결괏값으로 소통하라

    View full-size slide

  78. 함수를 합성하라

    View full-size slide

  79. Live Coding ▶

    View full-size slide

  80. 라이브 코딩3
    "테스트와 스타일 가이드"

    View full-size slide

  81. 믿을 수 없는 코드

    View full-size slide

  82. 믿을 수 있는 조건을
    검증하는 방법 ✅

    View full-size slide

  83. Live Coding ▶

    View full-size slide

  84. 서로 다른 코드 스타일

    View full-size slide

  85. 일관된 코드 스타일을
    적용하기 위한 도구

    View full-size slide

  86. Live Coding ▶

    View full-size slide