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/
이것을 따르도록하자.
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은 도대체 언제 쓰이는지 알아봤다.)
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 |