سجاد ایوبی
سجاد ایوبی
خواندن ۲ دقیقه·۷ سال پیش

Flake8 چی هست و چرا باید استفاده کرد؟

ابزارهای زیادی هست که با استفاده از اونها ما تبدیل بشیم به یک برنامه نویس بهتر. ابزارهایی که در استفاده های روزمره به کمک زیادی میکنه، که یکی از اون ابزار linting هست که تقریبا همه زبان های برنامه نویسی برای خودشون یکی دارند.

دقیقا linting یعنی چه؟

به برنامه ای که کد ما رو آنالیز میکنه و خطاهای احتمالی رو پیدا میکنه، Linting نامیده میشه.

اولین برنامه ای که این کار رو کرد Lint بود و توی زبان C کار میکرد.

آیا Linting جزو واجبات هست؟

خب تقریبا میشه گفت آره، استفاده از اونا باعث میشه که

  • می تونیم syntax error، بد بون شکل ظاهری، غلط املایی ها و غیره رو بفهمیم
  • صرفه جویی در وقت
  • باعث میشه بازبینی کدهامون (review) راحت تر باشه برای هم تیمی هامون (بخاطر یک شکل بودن کدها)
  • سادگی استفاده
  • سادگی در راه اندازی اولیه
حالا flake8 چی هست؟

خب یکی از ابزارهای linting در پایتون هست و توی کاروانرو ما از اون استفاده میکنیم.

نصب flake8 و روش استفاده

برای نصب کافیه با توجه به ورژن پایتونی که دارید نصب رو انجام بدید

python<version> -m pip install flake8

برای استفاده از اون هم کافیه فقط توی ترمینالتون دستور زیر رو وارد کنید

flake8 path/to/code/to/check.py # or flake8 path/to/code/

یکی از امکانات خیلی باحال تر flake8 اینه که شما میتونید فقط یک خطای خاص رو توی یک فایل یا فولدر بررسی کنید.

فرض کنید که میخواهیم بررسی کنیم که آیا خط طولانی توی یک فولدر وجود داره یا نه

flake8 — select E501 path/to/your_project/
تنظیمات flake8 برای ادیتورها:
ترکیب flake8 و git

فرض کنید که پروژه ای دارید فایل های زیادی داره و وقت و حوصله ویرایش فایلهای قدیمی رو ندارید ولی تصمیم دارید از این ابزار برای فایل های جدید استفاده کنید و یا شاید شما دوست داشته باشید که flake8 رو به Continuous integration اضافه کنید و از این به بعد همه باید از این ابزار استفاده کنند.

#!/usr/bin/env bash changed_files=$(git diff --diff-filter=ACM --name-only origin/master | grep -E '\.py$' | grep -v 'migrations/') echo "$changed_files" echo "" if [[ "$changed_files" = "" ]]; then exit 0 fi echo "$changed_files" | xargs flake8 --ignore=E711 --statistics --count rc=$? if [[ "$rc" != 0 ]]; then echo "FLAKE8 check failed, commit denied" exit "$rc" fi

این کد کاری که انجام میده اینه که اول که فایل های جدید یا تغییر پیدا کرده رو از گیت میگیره و linting رو روی اونا انجام میده و اگه خطا داشته باشه نمایش میده.
شما کافیه این دستور shell رو هر بار قبل از کامیت کردن یا قبل از deploy کردن کدتون اجرا کنید.

پایتونبرنامه نویسی
مشغول react-native و react هستم و دوست دارم که چیزایی که یاد گرفتم رو با بقیه به اشتراک بگذارم. ayooby.ir
شاید از این پست‌ها خوشتان بیاید