본문 바로가기
728x90

더 좋은 코드를 위하여5

[CleanCode] 창발성 안녕하세요~ 씨위드입니다. 오늘은 깨끗한 코드를 작성하기 위하여 창발성이라는 개념을 가지고 돌아왔습니다. 창발성이란 무엇일까요? 저에게도 생소한 개념입니다. 검색을 통해 알아보니 아래와 같은 정의를 찾아볼 수 있었습니다. "창발은 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이다. 또한 불시에 솟아나는 특성을 창발성(emergent property) 또는 emergence라고도 부른다." 그럼 창발성을 이용한 클린 코드 작성법에 대하여 알아볼까요? 창발적 설계로 깔끔한 코드 구현 간단한 규칙 네 가지만 따른다면 우수한 설계가 나온다면? 해서 SRP(SingleResponsibility Principal) 혹은 DIP(Dependency Inve.. 2023. 1. 23.
[CleanCode] 시스템 안녕하세요. 오늘은 클린코드 시스템 편으로 돌아왔습니다. 깨끗한 시스템을 만들기 위한 방법에 대하여 정리해 보았는데요. 모쪼록 여러분께 도움이 되길 바랍니다~ 클린 시스템이란? 소프트웨어를 구성할 때 소프트웨어 팀도 도시처럼 구성한다. 도시는 혼자서 관리할 수 없다. 도시에는 교통관리팀, 치안관리팀, 건축물관리팀 등이 존재하는 것처럼 시스템도 적절한 추상화와 모듈화가 필요하다. 깨끗한 코드 구현시 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다. 시스템 항목에서는 높은 추상화 수준, 즉 시스템 수준에서도 깨끗함을 유지하는 방법을 살펴본다 시스템 제작과 시스템 사용 분리 제작(construction)은 사용 (use)와 아주 다르다는 것을 명심하자. 소프트웨어 시스템은 준비과정(애플리케이션 객체 제작 및 .. 2023. 1. 13.
[CleanCode] 오류처리와 단위테스트 이번 포스팅에서는 오류처리와 단위 테스트 작성법에 대해 알아보려고 합니다. 지난 포스팅을 못 보신 분들은 아래 링크를 참고해주세요. CleanCode 깨끗한 코드란? 클린 코드는 아래와 같은 특징을 가진다. 단순함 직접적 읽기 쉬움 고치기 쉬움 목적 달성의 방법은 오로지 하나 최소한의 의존성 테스트 케이스가 존재 주의 깊게 작성함 중복 seaweed-one.tistory.com CleanCode - 객체와 메서드 그리고 클래스 네이밍 의미 있는 이름 변수 및 메서드의 이름은 의미를 담아 짓는다. 무의미한 네이밍은 가독성을 떨어트린다. 접두어 사용 자제 아직까지 멤버 변수 앞에는 m을 붙이는 등 접두어를 사용하는 seaweed-one.tistory.com 그럼 본격적으로 클린코드를 위한 오류처리 방법과 테.. 2023. 1. 6.
[CleanCode] 객체와 메서드 그리고 클래스 안녕하세요~ 지난 포스팅에서는 클린코드의 개념에 대하여 알아보았죠? 이번 포스팅에서는 객체와 메서드 그리고 클래스를 생성할 때 주의할 점에 대하여 정리해보았습니다. 네이밍부터 클래스 생성 법칙까지 정리하였으니 도움이 되길 바랍니다! 네이밍 의미 있는 이름 변수 및 메서드의 이름은 의미를 담아 짓는다. 접두어 사용 자제 아직까지 멤버 변수 앞에는 m을 붙이는 등 접두어를 사용하는 경우가 종종 있다. 접두어 사용은 옛날 방식의 코딩! 클래스와 메서드 네이밍을 분리한다 클래스 이름은 명사로 , 메서드 이름은 동사로 명명한다. 메서드 작게 만들어라 Spark의 Source Code는 모든 함수가 2-3줄로 이루어져 있다 조건문 내부에 들어가는 함수는 되도록 한 줄로 만들어라 하나의 함수는 한 가지 기능만 한다 .. 2023. 1. 3.
728x90