더 나은 코딩 방법/Python/Part-1
소개
코드 검토는 개발자의 일상 생활에서 없어서는 안될 부분입니다. 엄청난 양의 코드 리뷰 댓글을 받는 것은 많은 문제가 있지만 가장 중요한 것은 개발자의 자존심을 상하게 한다는 것입니다! 이 기사가 도움이 되셨기를 바랍니다.
Disclaimer: This blog does not claim to be one-and-only solution for all coding problems. Apart from some adopted community guidelines everything is subjective to the coder or reviewer. This is merely my opinions and compiled list of bad coding practices I've found through my experience. All the code examples are made to demonstrate a single problem at a time.
1. 변수 이름
나쁜
temp = {"banana": "yellow", "apple": "red", "grape": "green"}
list1 = []
list2 = []
for k, v in temp.items():
list1.append(k)
list2.append(v)
print(f"fruits: {list1}")
print(f"colors: {list2}")
좋은
fruit_colors = {"banana": "yellow", "apple": "red", "grape": "green"}
fruits = []
colors = []
for fruit, color in fruit_colors.items():
fruits.append(fruit)
colors.append(color)
print(f"fruits: {fruits}")
print(f"colors: {colors}")
장점
2. 예외 처리
나쁜
try:
fruit_colors = {"banana": "yellow", "apple": "red", "grape": "green"}
color = fruit_colors["watermelon"]
except Exception:
print("Failed to get color of watermelon :(")
좋은
fruit_colors = {"banana": "yellow", "apple": "red", "grape": "green"}
try:
color = fruit_colors["watermelon"]
except KeyError:
print("Failed to get color of watermelon :(")
장점
3. 표준 라이브러리 활용
나쁜
fruits = ["apple", "banana", "grape"]
i = 0
for fruit in fruits:
print(f"{i}: {fruit}")
i += 1
좋은
fruits = ["apple", "banana", "grape"]
for i, fruit in enumerate(fruits):
print(f"{i}: {fruit}")
장점
4. 오류 로깅
나쁜
try:
res = requests.get("https://www.google.com")
res.raise_for_status()
logging.info("Success!")
except Exception as e:
logging.error(f"Unexpected error occured: {e}")
좋은
try:
res = requests.get("https://www.google.com")
res.raise_for_status()
logging.info("Success!")
except HTTPError as err:
logging.error(
f"Request failed with status code: {err.response.status_code}"
)
except Exception:
# logging.exception logs traceback information
logging.exception("Unexpected error occured:")
장점
5. 댓글 차단
나쁜
username = username.lower()
username = username.strip()
username = re.sub(r"\s+", "", username)
if not re.match(r"^[a-zA-Z0-9_]{5,20}$", username):
print("Invalid username")
exit(1)
좋은
# Perform string transforms on the username
username = username.lower()
username = username.strip()
username = re.sub(r"\s+", "", username)
# Check if username is valid
if not re.match(r"^[a-zA-Z0-9_]{5,20}$", username):
print("Invalid username")
exit(1)
장점
결론
이 블로그는 시리즈의 일부이며 이러한 각 요점은 몇 가지 고급 시나리오로 확장될 수 있습니다. 불행히도 하나의 블로그에서 모든 시나리오를 언급할 수 없으므로 향후 부분에서 다른 사례를 다루도록 노력할 것입니다. 질문, 개선 사항에 대한 제안 또는 발견한 좋은 코딩 방법이 있으면 언제든지 문의하세요.
내 블로그의 게시물 참조: https://alacrity.dev/better-coding-practices-python-part-1/
Reference
이 문제에 관하여(더 나은 코딩 방법/Python/Part-1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/harsh8398/better-coding-practices-python-part-1-4ogl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)