반응형

클린코드 8

[파이썬 클린코드] 3장 (좋은 코드의 일반적 특징) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 3장 중 핵심 내용만을 정리한 것입니다. 1. 계약에 의한 디자인 컴포넌트는 기능을 숨겨 캡슐화 하고 함수를 사용할 고객에게는 애플리케이션 프로그래밍 인터페이스(API)를 노출해야 한다. 코드가 정상적으로 동작하기 위해 기대하는 것과, 호출자가 반환 받기를 기대하는 것은 디자인의 하나가 되어야 한다. 사전조건 = 코드가 실행되기 전에 체크해야 하는 것들 사후조건 = 함수 반환값의 유효성 검사가 수행 불변식 = 함수가 실행되는 동안 일정하게 유지되는 것 사전조건 검증에 실패하면 클라이언트의 결함으로인한 것이다 사후조건 검증에 실패하면 특정 모듈이나 제공 클래스 자체의 문제로 인한 것이다 중복제거원칙 = 사전조건 검증을 양쪽(클라이언트, 서버)에..

[파이썬 클린코드] 2장 (파이써닉 코드) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 2장 중 핵심 내용만을 정리한 것입니다. 디자인 패턴은 언어와 무관한 고차원 개념으로, 코드로 즉시 변환되지 않는다. 그러나 관용구는 실제 코딩으로 변환된다. 관용구를 따르는 코드를 파이썬에서 '파이써닉'하다고 한다. 1. 리스트에서 특정 요소를 가져올 때, for문으로 찾지 말고 슬라이싱을 하자. 둘 다 같이 2로 나눴을 때 나머지가 1 나오는 값만 담는 것인데, slice를 사용해서 해당 위치의 값만 곧바로 담을 수 있다. 2. 파일을 열고 닫는 등의 작업이 필요한 경우 '컨텍스트 관리자'를 사용하자. 위 코드는 finally를 이용해서 정상종료 혹은 비정상종료에도 파일을 닫는 코드가 들어있다. with를 사용한 컨텍스트 관리자는 내부에서..

[파이썬 클린코드] 1장 (코드 포매팅과 도구) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 1장 중에 핵심 내용만을 정리한 것입니다. 프로그래밍 언어의 진정한 의미는 아이디어를 다른 개발자에게 전달하는 것이다. 코드를 클린한 상태로 만들면 유지보수성 향상, 기술부채 감소, 민첩한 개발, 지속적인 배포등 여러 장점들이 있다. 클린코드는 품질 좋은 소프트웨어를 개발하고, 견고하고 유지보수가 쉬운 시스템을 만들고, 기술 부채를 회피하는 것을 말한다. 좋은 코드 레이아웃에서 가장 필요한 특성은 일관성. 파이썬이 따라야 하는 코딩 스타일은 PEP-8이다. PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido v..

개발자에 대한 개인적인 생각 - 1

안녕하세요 Dibrary입니다. 개발자는 흔히들 컴퓨터를 다루면서 막연하게 굉장히 멋진 삶을 살 거라는 환상을 가진 분들이 있습니다. 그런 개발자도 있겠지만, 사실 모든 개발자가 그렇진 않죠. 그러나 개발자들의 수준, 분야, 차이를 막론하고 '공통적으로 가지는 특성'은 분명히 있다고 생각됩니다. 뭐가 공통적일까요? 저는 2가지는 확실하게 모든 개발자가 동일하다고 생각합니다. 재미삼아 봐주시면 감사하겠습니다. 1. 고시생과 다를바 없는 라이프사이클! 고시생 하면 뭐가 떠오르시나요? 네. 책에 둘러 쌓여서 끊임없이 공부를 해야죠. 특히 고시(지금은 폐지된 사법고시 같은 경우)는 D-day가 정해져 있고, 그 기간 안에 최고의 효율을 낼 수 있어야 하므로 공부 밀도가 엄청나죠. 저는 바로, 이 끊임없이 공부해..

사회생활 2022.06.13

[클린코드][4장] - 주석

안녕하세요 Dibrary입니다. 클린코드 4장은 코드를 작성하면서 같이 기록하는 주석에 대한 내용입니다. 주석도 의도하지 않게, 읽는데 방해가 되거나 하는 요소가 될 수 있으니 깔끔하게 작성하고자 할 때 참고하시면 좋을 듯 합니다. 1. 코드로 의도를 표현하자 코드를 설명하는게 아니라 코드가 무슨 목적으로, 무슨 기능을 하기 위한건지 주석으로 남기자는 것입니다. 2. 함수나 변수로 표현할 수 있다면 주석을 달지 마라 즉, 변수나 함수 이름으로 해당 내용 표현이 된다면 주석이 필요 없을 것입니다. 주석을 달지 않도록 코드를 작성하는 것이 가장 기본입니다. 3. 주석과 주석이 설명하는 코드는 둘 사이의 관계가 명확해야 한다 주석이 관련 코드를 설명하는 게 아니라 넘어오는 값의 상태나, 해당 함수 동작 이전의..

프로그래밍 2022.04.09

[클린코드][3장] - 함수

안녕하세요 Dibrary입니다. 클린코드 책 3장은 함수라는 이름으로 시작합니다. 1. 함수는 무조건 작게 만들자 여기서 작게의 의미란, 하나의 함수가 하나의 기능만을 가지게 하라는 의미입니다. 조건문, while문 안에는 가능하면 한 줄 정도로 코드가 작성된 것이 좋습니다. 중첩 구조가 생길 정도로 함수가 커져서는 안 됩니다. 만일 의미있는 이름으로 함수의 일부 혹은 다른 함수를 추출할 수 있다면 그 함수는 이미 여러 작업을 하는 셈입니다. 객체지향 5원칙 중에 하나로 '하나의 객체는 반드시 하나의 동작만을 책임진다'는 것이다. 함수가 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 합니다. 2. 코드는 위에서 아래로 이야기처럼 읽혀야 좋다 아래, 위 반복적으..

프로그래밍 2022.04.03

[클린코드][2장] - 의미있는 이름

안녕하세요 Dibrary입니다. 클린코드를 읽고 계속 생각할 내용을 정리 해 두고자 합니다. 코드를 작성하면서 문득 '코드를 더 클린하게 할 방법이 없을까' 하고 떠오를 때마다 참고할 생각입니다. 1. 변수, 함수의 의도를 분명하게 밝히자. 2. 일관성이 떨어지는 표기법은 피하자. 3. 널리 쓰이는 단어를 다른 의미로 사용하지 말자. 4. 이름이 달라진다면 의미도 달라져야 한다. 5. 이름 길이는 범위 크기에 비례해야 한다. 검색을 할 때 특정 단어를 검색하면 관련 함수만 몇 개 서칭결과로 나와야 찾기가 용이합니다. 모든 함수마다 단어를 공통으로 사용했다면, 서칭결과가 매우 많이 나오겠죠? 6. 인터페이스 이름에 접두어 붙이지 말기. 굳이 차이를 주겠다면 "클래스이름 + Impl" 로 붙이는걸 추천합니다..

프로그래밍 2022.03.27

[파이썬 클린코드] 쉽다고 알려진 파이썬도 막 사용하면 안 된다.

파이썬을 자주 사용하기 시작하면서 막연하게 걱정이 되었던 부분이 있었다. 바로 '가독성'이다. 또한, 해당 코드가 기능은 하지만 기능을 위한 필수요소만 있는 것인지, 아니면 불필요한 과정으로 덮여있는지를 알아보고 싶었다. 제목부터 느껴지지만, '클린코드'로 작성하기 위해서 좀 더 나은 방법, 객체지향에 초점을 맞춘 방법을 소개한다. 클린코드에 대한 개념을 먼저 소개하고, 파이썬이라는 언어의 특징 (pythonic)을 살려서 코드를 작성하는 방법을 몇 가지 소개한다. 이 책에서 generator와 context manager등의 개념을 알게되었고, 기존에 구현한 코드가 너무 구현에만 빠진 나머지 기능이라는 본질 자체에서 좀 멀어져 있다는 것을 깨닫게 되었다. 물론 짤막한 코드가 무조건 좋은 것은 아니지만,..

독서/서평 2022.02.18
반응형