반응형

1.1 읽기 쉬운 코들르 만드는 것이 왜 중요한가?

  • 코드는 한번 작성되면 여러번 읽힘.
  • 나중에 읽는 사람이 훨씬 편해지고, 관리가 쉬워짐
  • 이를 위해서 지켜져야하는 원칙들
    • 축약적이거나 함축적인 변수명은 피한다
    • 함수 인자의 이름들은 꼭 써준다
    • 클래스와 메서드를 문서화한다
    • 코드에 주석을 꼭 달도록 한다
    • 재사용 가능한 함수 또는 메서드 안에서 반복되는 코드들은 리팩터링을 해둔다
    • 함수와 메서드는 가능한 한 작은 크기를 유지한다. 어림잡아 스크롤 없이 읽을 수 있는 길이가 적합하다

적용해볼점:

1) 그냥 변수명 길게 쓰자.

2) 문서화 꼭 하자.

3)주석,,,?흠... 추후에 더 살펴보도록하자.

4) 리팩토링 노력해보자

 

 

1.2 pep8

flake8을 이용하도록하자.

 

1.3 import들

pep8에 따르면

1) 표준라이브러리

2) 연관외부 라이브러리

3) 로컬 애플리케이션 또는 라이브러리에 한정된 임포트

 

이 책에 따르면

1) 표준라이브러리

2)코어 장고 임포트

3)서드파티

4)프로젝트앱임포트

 

1.4 명시적 성격의 상대 임포트 사용하기 (explicit relative import)

  • 명시적 상대 임포트:
    • from .models import WaffleCone
  • 앱의 이름을 변경할 일이 생기거나, 이름이 충돌되는 경우를 피할수 있다.
  • 재사용하는 경우 바로 사용할 수 있게됨.
  • anti-pattern
    • from cones.models ~~
    • from models import ~~ (implicit relative import 이것도 안티패턴임.)

 

 

 

1.5 import *은 피하자

이유: 다른 python module의 namespace들이 우리가 작업하는 module의  namespace에 추가로딩되거나, 기존것에 덮여쓰이는일이 발생할 수있다.

 

1.6 장고 코딩 스타일

https://docs.djangoproject.com/en/4.0/internals/contributing/writing-code/coding-style/

 

Coding style | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

이것을 따르도록하자.

 

1.6.2 

(이 파트는 Two scoops of Django 3.x 영어판을 참고함)

 

실제 매핑되는 url은 대시를 써도된다.( Dashes in actual URLs are fine (e.g. route=’add-topping/’ )  

더보기

(이 글 작성자 주: 실제 url에서 언더바를 쓰면, 해당 url창 밑에 부분이랑 겹쳐보이기 때문에 지양하는 것으로 알고 있다.)

로 알고 있었는데 찾아보니까

https://www.youtube.com/watch?v=AQcSFsQyct8 

실제 url에서는 - 로 해야지 더 구글검색에 잘잡힌다고 한다.

그런데 안에 들어가 있는 인자는 언더바를 쓰도록한다.

#안티패턴
  patterns = [
       path(route='add/',
           view=views.add_topping,
           name='add-topping'),
       ]
       
#good pattern
patterns = [
       path(route='add/',
           view=views.add_topping,
           name='toppings:add_topping'),
       ]
더보기

(이 글 작성자 주.

장고 초심자를 위해서 (나다. ) name은 도대체 언제 쓰이는지 알아봤다.)

https://docs.djangoproject.com/en/4.0/topics/http/urls/#:~:text=Reverse%20resolution%20of%20URLs%C2%B6

 

URL dispatcher | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

from django.urls import path

from . import views

urlpatterns = [
    #...
    path('articles/<int:year>/', views.year_archive, name='news-year-archive'),
    #...
]



##########################
<a href="{% url 'news-year-archive' 2012 %}">2012 Archive</a>
{# Or with the year in a template context variable: #}
<ul>
{% for yearvar in year_list %}
<li><a href="{% url 'news-year-archive' yearvar %}">{{ yearvar }} Archive</a></li>
{% endfor %}
</ul>

#########################
from django.http import HttpResponseRedirect
from django.urls import reverse

def redirect_to_year(request):
    # ...
    year = 2006
    # ...
    return HttpResponseRedirect(reverse('news-year-archive', args=(year,)))

+

그 name에 언더스코어를 써야하는 이유가 이게 더 pythonic하고, IDE랑 text editor에 친화적이라서.라고 되어있어서 실험을해봤다.

직접 해보니 대시를 마이너스로 인식하는 경우가 있더라.

1.8 통합개발환경이나 텍스트 편집기에 종속되는 스타일의 코딩은 지양한다.

(다른 에디터를 쓰는 사람들도 있기 때문.)

반응형

'회고 > 책회고' 카테고리의 다른 글

어떻게 원하는 것을 얻는가 12장  (0) 2023.03.30
어떻게 원하는 것을 얻는가? -11장  (0) 2023.03.25
어떻게 원하는 것을 얻는가? -10장  (0) 2023.03.22
열정의 배신을 읽고  (0) 2021.10.31
왜 일하는가?-1  (0) 2021.10.10

+ Recent posts