20 ื›ืœื™ ื”ื ื™ืชื•ื— ื”ืกื˜ื˜ื™ ืฉืœ Python ื”ืžื•ื‘ื™ืœื™ื

20 ื›ืœื™ ื”ื ื™ืชื•ื— ื”ืกื˜ื˜ื™ ื”ืžื•ื‘ื™ืœื™ื ืฉืœ ืคื™ื™ืชื•ืŸ: ืฉื™ืคื•ืจ ืื™ื›ื•ืช ื•ื‘ื™ืฆื•ืขื™ ื”ืงื•ื“

ื›ืชื™ื‘ืช ืงื•ื“ Python ื™ืขื™ืœ, ืžืื•ื‘ื˜ื— ื•ื ื™ืชืŸ ืœืชื—ื–ื•ืงื” ื”ื•ื ืืชื’ืจ ืฉืขื•ืžื“ ื‘ืคื ื™ ื›ืœ ืžืคืชื—. ื›ื›ืœ ืฉื”ืคืจื•ื™ืงื˜ื™ื ื’ื“ืœื™ื, ื” ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“ ื’ื“ืœ, ืžื” ืฉืžืงืฉื” ืขืœ ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช, ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื•ืฆื•ื•ืืจื™ ื‘ืงื‘ื•ืง ื‘ื‘ื™ืฆื•ืขื™ื. ื–ื” ื”ืžืงื•ื ืฉื‘ื• ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขื‘ื•ืจ ืคื™ืชื•ืŸ ืœื”ืคื•ืš ืœื‘ืœืชื™ ื™ืกื•ืœื ื‘ืคื–. ื›ืœื™ื ืืœื• ืขื•ื–ืจื™ื ืœืžืคืชื—ื™ื ืœื ืชื— ืงื•ื“ ืœืœื ื‘ื™ืฆื•ืข, ื•ืžืืคืฉืจื™ื ืœื”ื ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ื›ื’ื•ืŸ ื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ, ืืœื’ื•ืจื™ืชืžื™ื ืœื ื™ืขื™ืœื™ื ื•ืกื™ื›ื•ื ื™ ืื‘ื˜ื—ื” ื‘ืฉืœื‘ ืžื•ืงื“ื ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืœืชื•ืš ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ืฉืœืš, ืืชื” ื™ื›ื•ืœ ืœืฉืคืจ ืืช ืื™ื›ื•ืช ื”ืงื•ื“, ืœื™ื™ืขืœ ืืช ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ ื•ืœื”ื‘ื˜ื™ื— ืขืžื™ื“ื” ื‘ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ื›ืžื• PEP 8 ื•ืขืงืจื•ื ื•ืช ืงื™ื“ื•ื“ ื ืงื™ื™ื.

ื‘ื”ื™ืจื•ืช ืกื™ื›ื•ื ื™ ื”ืžื•ื“ืจื ื™ื–ืฆื™ื”

Smart TS XL ืžืฉืคืจ ืืช ื”ื—ืœื˜ื•ืช ื”ืฉืขืจ ืฉืœ Python DevOps ืขืœ ื™ื“ื™ ืงื™ื‘ื•ืข ืคืœื˜ื™ ื”ืกื•ืจืง ื‘ื”ืงืฉืจ ื”ืชื ื”ื’ื•ืชื™ ื•ืชืœื•ืชื™.

ื’ืœื” ืขื›ืฉื™ื•

ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื—ื•ืจื’ ืžื‘ื“ื™ืงืช ืชื—ื‘ื™ืจ ืคืฉื•ื˜ื” - ื”ื•ื ืžืขืจื™ืš ืืช ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“, ืฉื’ื™ืื•ืช ืœื•ื’ื™ื•ืช ื•ื‘ื™ืฆื•ืขื™ ื–ืžืŸ ืจื™ืฆื”. ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ, ืœื•ืœืื•ืช ืžื™ื•ืชืจื•ืช ื•ืืœื’ื•ืจื™ืชืžื™ื ืœื ืื•ืคื˜ื™ืžืœื™ื™ื, ื”ื›ืœื™ื ื”ืœืœื• ืขื•ื–ืจื™ื ืœื”ืคื—ื™ืช ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื•ืœืฉืคืจ ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื”. ื™ืชืจ ืขืœ ื›ืŸ, ื”ื ืžืžืœืื™ื ืชืคืงื™ื“ ืžื›ืจื™ืข ื‘ื‘ื™ืงื•ืจืช ืื‘ื˜ื—ื”, ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืœืคื ื™ ืฉื”ืŸ ื ื™ืชื ื•ืช ืœื ื™ืฆื•ืœ. ื‘ื™ืŸ ืื ืืชื” ืขื•ื‘ื“ ืขืœ ืกืงืจื™ืคื˜ Python ืงื˜ืŸ ืื• ื™ื™ืฉื•ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ, ืฉื™ืœื•ื‘ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžื‘ื˜ื™ื— ืฉื”ืงื•ื“ ืฉืœืš ื™ืขื™ืœ, ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ื•ืžืื•ื‘ื˜ื—. ื‘ืžื“ืจื™ืš ื–ื”, ื ื—ืงื•ืจ ื›ื™ืฆื“ ืžืคืชื—ื™ Python ื™ื›ื•ืœื™ื ืœืžื ืฃ ืืช ื”ื›ืœื™ื ื”ืœืœื• ืœืฉื™ืคื•ืจ ื”ื‘ื™ืฆื•ืขื™ื, ื”ืื‘ื˜ื—ื” ื•ืื™ื›ื•ืช ื”ืงื•ื“.

20 ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื—ื•ื‘ื” ืขื‘ื•ืจ Python

Smart TS XL

Smart TS XL ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื•ื”ืขืจื›ืช ื”ืฉืคืขื” ืžื•ื ื—ื” ื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช, ื‘ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื, ื”ืžื™ื•ืขื“ ืœืคื™ืชื•ื— Python ืžื•ื“ืจื ื™. ื”ื•ื ืžืกืคืง ื“ื™ื•ืง, ื™ืขื™ืœื•ืช ื•ืื‘ื˜ื—ื” ืœืœื ืชื—ืจื•ืช ื‘ื ื™ื”ื•ืœ ื‘ืกื™ืกื™ ืงื•ื“ ืžื•ืจื›ื‘ื™ื ืฉืœ Python, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืคืชืจื•ืŸ ื—ื™ื•ื ื™ ืขื‘ื•ืจ ืืจื’ื•ื ื™ื, ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืชื•ื›ื ื” ื•ืžืงืฆื•ืขื ื™ ืื‘ื˜ื—ืช ืกื™ื™ื‘ืจ. ืขื ื”ื™ื›ื•ืœืช ืœื ืชื— ืžื™ืœื™ื•ื ื™ ืฉื•ืจื•ืช ืฉืœ ืงื•ื“ Python ื‘ืฉื ื™ื•ืช, Smart TS XL ืžื‘ื˜ื™ื— ืฉื™ื™ืฉื•ืžื™ื ื™ื™ืฉืืจื• ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื”, ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื” ื•ืชื•ืืžื™ื ืœืฉื™ื˜ื•ืช ื”ืขื‘ื•ื“ื” ื”ืžื•ืžืœืฆื•ืช ื‘ืชืขืฉื™ื™ื”.

ืžื”ื™ืจื•ืช ื•ืžื“ืจื’ื™ื•ืช ืœืœื ืชื—ืจื•ืช

  • ืžื‘ืฆืข ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืขืžื™ืง ื‘ื–ืžืŸ ืืžืช, ืžื–ื”ื” ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื•ื—ื•ืกืจ ื™ืขื™ืœื•ืช ืชื•ืš ืฉื ื™ื•ืช.
  • ืžืขื‘ื“ ื‘ืกื™ืกื™ ืงื•ื“ ื ืจื—ื‘ื™ื ืฉืœ Python ืœืœื ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืžืชืื™ื ืœืคืจื•ื™ืงื˜ื™ื ื‘ืงื ื” ืžื™ื“ื” ืืจื’ื•ื ื™.
  • ืชื•ืžืš ื‘ืฆื•ื•ืชื™ื ืžื›ืœ ื”ื’ื“ืœื™ื ืขืœ ื™ื“ื™ ืžืชืŸ ืื™ื ื˜ื’ืจืฆื™ื” ื—ืœืงื” ืขื ืฆื™ื ื•ืจื•ืช ืคื™ืชื•ื—, ืžื” ืฉืžืืคืฉืจ ืœืžืคืชื—ื™ื ืžืจื•ื‘ื™ื ืœื ืชื— ืงื•ื“ ื‘ื• ื–ืžื ื™ืช.

ื‘ื™ืงื•ืจืช ืื™ื›ื•ืช ื•ืื‘ื˜ื—ื” ืžืงื™ืคื” ื‘ืงื•ื“

Smart TS XL ืžืฆื™ืข ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขืžื•ืง, ื–ื™ื”ื•ื™ ืคืจืฆื•ืช ืื‘ื˜ื—ื”, ื“ืคื•ืกื™ ืงื•ื“ ืœื ื™ืขื™ืœื™ื ื•ื—ื•ืœืฉื•ืช ืžื‘ื ื™ื•ืช ืœืคื ื™ ืฉื”ื ื’ื•ืจืžื™ื ืœื‘ืขื™ื•ืช ื‘ื™ื™ืฆื•ืจ. ื”ื•ื ืžืžื ืฃ ื˜ื›ื ื•ืœื•ื’ื™ื” ืžื•ื ืขืช ื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช ื›ื“ื™ ืœืกืคืง ืชื•ื‘ื ื•ืช ืžื“ื•ื™ืงื•ืช ื•ืžื•ื“ืขื•ืช ืœื”ืงืฉืจ.

  • ืžื–ื”ื” ืื•ื˜ื•ืžื˜ื™ืช ืคื’ืžื™ ืื‘ื˜ื—ื” ื›ื’ื•ืŸ ืกื™ื›ื•ื ื™ ื”ื–ืจืงืช SQL, ืื™ืฉื•ืจื™ื ื‘ืงื•ื“ ืงืฉื™ื— ื•ืฉื™ืžื•ืฉ ืœื ื‘ื˜ื•ื— ื‘-API.
  • ืžื ืชื— ืกื™ืžื•ืŸ Big O ื›ื“ื™ ืœื™ื™ืขืœ ืืช ื™ืขื™ืœื•ืช ื”ืืœื’ื•ืจื™ืชื ื•ืœืฉืคืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ืืคืœื™ืงืฆื™ื”.
  • ืžืกืžืŸ ืœื•ืœืื•ืช ืžื™ื•ืชืจื•ืช, ืฉื™ืžื•ืฉ ืžื•ืคืจื– ื‘ื–ื™ื›ืจื•ืŸ ื•ืฉืžื™ืจืช ืื•ื‘ื™ื™ืงื˜ื™ื ืžื™ื•ืชืจืช, ืžื” ืฉืžื‘ื˜ื™ื— ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ื™ืขื™ืœ.
  • ืžื‘ื˜ื™ื— ืขืžื™ื“ื” ื‘ืชืงื ื™ ืงื™ื“ื•ื“ Python ื›ื’ื•ืŸ PEP 8 ื•ืฉื™ื˜ื•ืช ืื‘ื˜ื—ื” ืžื•ืžืœืฆื•ืช.

ื—ื™ืกื›ื•ืŸ ืžืฉืžืขื•ืชื™ ื‘ืขืœื•ื™ื•ืช ื•ื”ื—ื–ืจ ROI

  • ืžืคื—ื™ืช ืืช ื–ืžืŸ ืกืงื™ืจืช ื”ืงื•ื“ ื‘-30-40%, ืžื” ืฉืžืืคืฉืจ ืœืฆื•ื•ืชื™ ื”ืคื™ืชื•ื— ืœื”ืชืžืงื“ ื‘ื—ื“ืฉื ื•ืช ื‘ืžืงื•ื ื‘ืื’ื™ื.
  • ืžืžื–ืขืจ ืชื™ืงื•ื ื™ื ื™ืงืจื™ื ืœืื—ืจ ื”ืคืจื™ืกื” ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื•ื—ื•ืกืจ ื™ืขื™ืœื•ืช ื‘ืฉืœื‘ ืžื•ืงื“ื ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—.
  • ืžืคื—ื™ืช ืืช ืขืœื•ื™ื•ืช ื”ืชืฉืชื™ืช ืขืœ ื™ื“ื™ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ ื•ืฆืจื™ื›ืช ืžืขื‘ื“ ื‘ื™ื™ืฉื•ืžื™ Python.

ืื™ื›ื•ืช ืชื•ื›ื ื” ื•ืชื—ื–ื•ืงื” ืžืฉื•ืคืจื™ื

  • ืžื–ื”ื” ื•ืžื‘ื˜ืœ ืชืœื•ืช ื ืกืชืจืช, ื™ื™ื‘ื•ื โ€‹โ€‹ืœื ื‘ืฉื™ืžื•ืฉ ื•ืžื‘ื ื™ ืงื•ื“ ืœื ื™ืขื™ืœื™ื ืฉืžืื˜ื™ื ื™ื™ืฉื•ืžื™ื.
  • ืžืคื—ื™ืช ื—ื•ื‘ ื˜ื›ื ื™ ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืงื•ื“ ืžื•ืจื›ื‘ ืื• ืžื™ื•ืฉืŸ ืฉื“ื•ืจืฉ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ.
  • ืžืฉืคืจ ืืช ืงืจื™ืื•ืช ืงื•ื“ Python ื•ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ืขืœ ื™ื“ื™ ืื›ื™ืคืช ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ื ืงื™ื•ืช ืขืงื‘ื™ื•ืช.
  • ืžืกืคืง ื“ื•ื—ื•ืช ืžืขืฉื™ื™ื ืขื ื”ืกื‘ืจื™ื ืžืคื•ืจื˜ื™ื ื•ื”ืžืœืฆื•ืช ืœืชื™ืงื•ืŸ ื‘ืขื™ื•ืช ืงื•ื“.

ื ื™ื”ื•ืœ ื™ื“ืข ืžืขื•ืœื” ื•ืฉื™ืคื•ืจ ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช

  • ืžืื™ืฅ ืืช ื”ื”ื˜ืžืขื” ืฉืœ ืžืคืชื—ื™ื ื—ื“ืฉื™ื ืขืœ ื™ื“ื™ ืžืชืŸ ืชื™ืขื•ื“ ื‘ืจื•ืจ ื•ืชื•ื‘ื ื•ืช ืงื•ื“ ืžื‘ื•ืกืกื•ืช ื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช.
  • ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ื”ืขื‘ืจืช ื™ื“ืข ื‘ื™ืŸ ืฆื•ื•ืชื™ื, ื•ืžืคื—ื™ืชื” ืืช ื”ื”ืกืชืžื›ื•ืช ืขืœ ืžืคืชื—ื™ื ื‘ื›ื™ืจื™ื ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™.
  • ืžืฉืคืจ ืืช ืฉื™ืชื•ืฃ ื”ืคืขื•ืœื” ื‘ื™ืŸ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื•ืื‘ื˜ื—ื” ืขื ืžืื’ืจ ืžืจื›ื–ื™ ืœื“ื•ื—ื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™.
  • ืžืฉืชืžืฉ ื‘ืžื“ื“ื™ ืžื•ืจื›ื‘ื•ืช ืžืชืงื“ืžื™ื ื›ื’ื•ืŸ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื›ื“ื™ ืœืขื–ื•ืจ ืœืฆื•ื•ืชื™ื ืœืชืขื“ืฃ ืžืืžืฆื™ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ.

ืชืขืฉื™ื•ืช ื•ืกื•ื’ื™ ืœืงื•ื—ื•ืช

Smart TS XL ื”ื•ื ื›ืœื™ ื—ื™ื•ื ื™ ืœืชืขืฉื™ื•ืช ื”ื“ื•ืจืฉื•ืช **ืื‘ื˜ื—ื” ื’ื‘ื•ื”ื”, ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื‘ื™ืฆื•ืขื™ื ื•ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ Python ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ**. ื–ื” ื›ื•ืœืœ:

  • ืฉื™ืจื•ืชื™ื ืคื™ื ื ืกื™ื™ื - ืžื‘ื˜ื™ื— ืขืžื™ื“ื” ื‘ืžืกื’ืจื•ืช ืจื’ื•ืœื˜ื•ืจื™ื•ืช ื•ืžื•ื ืข ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ื”ื•ื ืื”.
  • ืฉื™ืจื•ืชื™ ื‘ืจื™ืื•ืช - ืžื’ืŸ ืขืœ ื ืชื•ื ื™ ืžื˜ื•ืคืœื™ื ืจื’ื™ืฉื™ื ื•ืžื‘ื˜ื™ื— ืชืื™ืžื•ืช ืœืื‘ื˜ื—ื” ื‘ื™ื™ืฉื•ืžื™ื ืจืคื•ืื™ื™ื.
  • ื—ื‘ืจื•ืช ื˜ื›ื ื•ืœื•ื’ื™ื” - ืžื™ื™ืขืœ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื•ื”ืื‘ื˜ื—ื” ืขื‘ื•ืจ ืคืชืจื•ื ื•ืช ืชื•ื›ื ื” ืžื‘ื•ืกืกื™ Python ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ.
  • ืกื•ื›ื ื•ื™ื•ืช ืžืžืฉืœืชื™ื•ืช - ืžื‘ื˜ื™ื— ืฆื™ื•ืช ืœืคืจื•ื˜ื•ืงื•ืœื™ ืื‘ื˜ื—ืช ืกื™ื™ื‘ืจ ื•ืžื•ื ืข ืคืจืฆื•ืช ืžื™ื“ืข.
  • ืงืžืขื•ื ืื•ืช ื•ืžืกื—ืจ ืืœืงื˜ืจื•ื ื™ - ืžื–ื”ื” ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื‘ืžืขืจื›ื•ืช ืขื™ื‘ื•ื“ ืชืฉืœื•ืžื™ื ื•ืžืžืฉืงื™ API.

ื™ื™ืฉื•ื ื•ืื™ื ื˜ื’ืจืฆื™ื”

  • ืคืจื™ืกื” ืชื•ืš ืฉืขื•ืช ืขื **ืชืœื•ืช ืžืขืจื›ืช ืžื™ื ื™ืžืœื™ืช**.
  • ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื **GitHub, GitLab, Bitbucket, Jenkins ื•ื›ืœื™ CI/CD ืื—ืจื™ื**.
  • ืชื•ืžืš ื”ืŸ ื‘**ืกืจื™ืงื•ืช ืงื•ื“ ืžืœืื•ืช ื•ื”ืŸ ื‘ืกืจื™ืงื•ืช ืžืฆื˜ื‘ืจื•ืช** ืœื ื™ื˜ื•ืจ ืจืฆื™ืฃ.
  • ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืขื‘ื•ืจ **ื‘ื™ืฆื•ืข ืื•ื˜ื•ืžื˜ื™**, ื”ืคื—ืชืช ืขื•ืžืก ืขื‘ื•ื“ื” ื™ื“ื ื™ ืขื‘ื•ืจ ืฆื•ื•ืชื™ ืคื™ืชื•ื—

ืคืœื™ื ื˜

ืคื™ืœื™ื ื˜ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™

Pylint ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืฉื ื•ืขื“ ืœืฉืคืจ ืืช ืื™ื›ื•ืช ืงื•ื“ Python ื•ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื”. ื–ื” ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ืชื—ื‘ื™ืจ, ืœืื›ื•ืฃ ืชืงื ื™ ืงื™ื“ื•ื“ ื•ืœื–ื”ื•ืช ื—ื•ืกืจ ื™ืขื™ืœื•ืช ืœืคื ื™ ื‘ื™ืฆื•ืข. ืขืœ ื™ื“ื™ ื ื™ืชื•ื— ืงื•ื“ ืžืงื•ืจ ืœื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื›ื’ื•ืŸ ืžืฉืชื ื™ื ืžื™ื•ืชืจื™ื, ื™ื™ื‘ื•ื โ€‹โ€‹ืฉืœื ื ืขืฉื” ื‘ื• ืฉื™ืžื•ืฉ ื•ื‘ื™ื˜ื•ื™ื™ื ืžื•ืจื›ื‘ื™ื, Pylint ืžื‘ื˜ื™ื— ืฉืคืจื•ื™ืงื˜ื™ื ืคื•ืขืœื™ื ืœืคื™ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืฉืœ Python. ื”ื•ื ืžืกืคืง ืฆื™ื•ืŸ ืื™ื›ื•ืช ืžืคื•ืจื˜, ืขื•ื–ืจ ืœืฆื•ื•ืชื™ื ืœืฉืคืจ ืืช ื”ืงืจื™ืื•ืช, ืœื”ืคื—ื™ืช ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื•ืœืฉืžื•ืจ ืขืœ ืงื•ื“ ืขืงื‘ื™ ื‘ื™ืŸ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื•ืคืจื•ื™ืงื˜ื™ื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื‘ืฆืข ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืงื™ืฃ ื›ื“ื™ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช, ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืจืขื•ืช ื•ืจื™ื—ื•ืช ืงื•ื“.
  • ืื•ื›ืฃ ืชืื™ืžื•ืช ืœ-PEP 8, ืžื‘ื˜ื™ื— ืขื™ืฆื•ื‘ ืื—ื™ื“ ื•ืขืงื‘ื™ื•ืช.
  • ืžื™ื™ืฆืจ ืฆื™ื•ืŸ ืื™ื›ื•ืช ืงื•ื“ ืžืกืคืจื™ ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ืฉื™ืคื•ืจื™ื ืœืื•ืจืš ื–ืžืŸ.
  • ืชืฆื•ืจื•ืช ื›ืœืœื™ื ื”ื ื™ืชื ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช ืžืืคืฉืจื•ืช ืœืฆื•ื•ืชื™ื ืœื”ืชืื™ื ืืช ื”ื‘ื“ื™ืงื•ืช ืœืฆืจื›ื™ ื”ืคืจื•ื™ืงื˜ ื”ืกืคืฆื™ืคื™ื™ื.
  • ืžืฉืชืœื‘ ืขื Jenkins, GitHub Actions ื•ื›ืœื™ CI/CD ืื—ืจื™ื ืœื ื™ืชื•ื— ืื•ื˜ื•ืžื˜ื™.
  • ืžื–ื”ื” ืœื•ืœืื•ืช ืœื ื™ืขื™ืœื•ืช, ื—ื™ืฉื•ื‘ื™ื ืžื™ื•ืชืจื™ื ื•ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ.

ืื–ื•ืจื™ื ืœืฉื™ืคื•ืจ

ืขืจื›ืช ื”ื—ื•ืงื™ื ื”ื ื•ืงืฉื” ืฉืœ Pylint ื™ื›ื•ืœื” ืœื™ื™ืฆืจ ืžืกืคืจ ืจื‘ ืฉืœ ืื–ื”ืจื•ืช, ืžื” ืฉืขืœื•ืœ ืœื”ืฆื™ืฃ ืžืคืชื—ื™ื, ื‘ืžื™ื•ื—ื“ ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืฆื•ื•ืชื™ื ืฆืจื™ื›ื™ื ืœื›ื•ื•ื ืŸ ืชืฆื•ืจื•ืช ื›ื“ื™ ืœืกื ืŸ ื”ืชืจืื•ืช ืœื ืงืจื™ื˜ื™ื•ืช ื•ืœื”ืคื—ื™ืช ืจืขืฉ. ืœืœื ื”ืชืืžื” ืื™ืฉื™ืช ืžืชืื™ืžื”, ืžืคืชื—ื™ื ืขืฉื•ื™ื™ื ืœื”ืฉืงื™ืข ื™ื•ืชืจ ื–ืžืŸ ื‘ื˜ื™ืคื•ืœ ื‘ื”ืคืจื•ืช ืกื’ื ื•ืŸ ืงืœื•ืช ื‘ืžืงื•ื ืœื”ืชืžืงื“ ื‘ืฉื™ืคื•ืจื™ ืงื•ื“ ื‘ืคื•ืขืœ.

ืœืžืจื•ืช ืฉ-Pylint ืžืฆื•ื™ืŸ ืœืื›ื™ืคื” ื‘ืกื’ื ื•ืŸ ืงื•ื“, ืื™ืŸ ืœื• ื–ื™ื”ื•ื™ ืžื•ื‘ื ื” ืฉืœ ืคื’ื™ืขื•ืช ืื‘ื˜ื—ื”. ืคืจื•ื™ืงื˜ื™ื ื”ื“ื•ืจืฉื™ื ื ื™ืชื•ื— ืื‘ื˜ื—ื” ืžืขืžื™ืง ื–ืงื•ืงื™ื ืœื›ืœื™ื ื ื•ืกืคื™ื ืœื”ื’ื ื” ืžืงื™ืคื”. ื‘ื ื•ืกืฃ, ื”ื ื™ืชื•ื— ืฉืœ Pylint ื™ื›ื•ืœ ืœื”ื™ื•ืช ืขืชื™ืจ ืžืฉืื‘ื™ื, ืžื” ืฉืžื•ื‘ื™ืœ ืœื–ืžื ื™ ื‘ื™ืฆื•ืข ืืจื•ื›ื™ื ื™ื•ืชืจ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืคื—ื•ืช ืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืขื ืื™ืœื•ืฆื™ ื‘ื™ืฆื•ืขื™ื ื”ื“ื•ืงื™ื.

ืคืœื™ื ื˜

Pylint ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืฉื ื•ืขื“ ืœืฉืคืจ ืืช ืื™ื›ื•ืช ืงื•ื“ Python ื•ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื”. ื–ื” ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ืชื—ื‘ื™ืจ, ืœืื›ื•ืฃ ืชืงื ื™ ืงื™ื“ื•ื“ ื•ืœื–ื”ื•ืช ื—ื•ืกืจ ื™ืขื™ืœื•ืช ืœืคื ื™ ื‘ื™ืฆื•ืข. ืขืœ ื™ื“ื™ ื ื™ืชื•ื— ืงื•ื“ ืžืงื•ืจ ืœื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื›ื’ื•ืŸ ืžืฉืชื ื™ื ืžื™ื•ืชืจื™ื, ื™ื™ื‘ื•ื โ€‹โ€‹ืฉืœื ื ืขืฉื” ื‘ื• ืฉื™ืžื•ืฉ ื•ื‘ื™ื˜ื•ื™ื™ื ืžื•ืจื›ื‘ื™ื, Pylint ืžื‘ื˜ื™ื— ืฉืคืจื•ื™ืงื˜ื™ื ืคื•ืขืœื™ื ืœืคื™ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืฉืœ Python. ื”ื•ื ืžืกืคืง ืฆื™ื•ืŸ ืื™ื›ื•ืช ืžืคื•ืจื˜, ืขื•ื–ืจ ืœืฆื•ื•ืชื™ื ืœืฉืคืจ ืืช ื”ืงืจื™ืื•ืช, ืœื”ืคื—ื™ืช ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ื•ืœืฉืžื•ืจ ืขืœ ืงื•ื“ ืขืงื‘ื™ ื‘ื™ืŸ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื•ืคืจื•ื™ืงื˜ื™ื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื‘ืฆืข ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืงื™ืฃ ื›ื“ื™ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช, ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืจืขื•ืช ื•ืจื™ื—ื•ืช ืงื•ื“.
  • ืื•ื›ืฃ ืชืื™ืžื•ืช ืœ-PEP 8, ืžื‘ื˜ื™ื— ืขื™ืฆื•ื‘ ืื—ื™ื“ ื•ืขืงื‘ื™ื•ืช.
  • ืžื™ื™ืฆืจ ืฆื™ื•ืŸ ืื™ื›ื•ืช ืงื•ื“ ืžืกืคืจื™ ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ืฉื™ืคื•ืจื™ื ืœืื•ืจืš ื–ืžืŸ.
  • ืชืฆื•ืจื•ืช ื›ืœืœื™ื ื”ื ื™ืชื ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช ืžืืคืฉืจื•ืช ืœืฆื•ื•ืชื™ื ืœื”ืชืื™ื ืืช ื”ื‘ื“ื™ืงื•ืช ืœืฆืจื›ื™ ื”ืคืจื•ื™ืงื˜ ื”ืกืคืฆื™ืคื™ื™ื.
  • ืžืฉืชืœื‘ ืขื Jenkins, GitHub Actions ื•ื›ืœื™ CI/CD ืื—ืจื™ื ืœื ื™ืชื•ื— ืื•ื˜ื•ืžื˜ื™.
  • ืžื–ื”ื” ืœื•ืœืื•ืช ืœื ื™ืขื™ืœื•ืช, ื—ื™ืฉื•ื‘ื™ื ืžื™ื•ืชืจื™ื ื•ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ.

ืื–ื•ืจื™ื ืœืฉื™ืคื•ืจ

ืขืจื›ืช ื”ื—ื•ืงื™ื ื”ื ื•ืงืฉื” ืฉืœ Pylint ื™ื›ื•ืœื” ืœื™ื™ืฆืจ ืžืกืคืจ ืจื‘ ืฉืœ ืื–ื”ืจื•ืช, ืžื” ืฉืขืœื•ืœ ืœื”ืฆื™ืฃ ืžืคืชื—ื™ื, ื‘ืžื™ื•ื—ื“ ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืฆื•ื•ืชื™ื ืฆืจื™ื›ื™ื ืœื›ื•ื•ื ืŸ ืชืฆื•ืจื•ืช ื›ื“ื™ ืœืกื ืŸ ื”ืชืจืื•ืช ืœื ืงืจื™ื˜ื™ื•ืช ื•ืœื”ืคื—ื™ืช ืจืขืฉ. ืœืœื ื”ืชืืžื” ืื™ืฉื™ืช ืžืชืื™ืžื”, ืžืคืชื—ื™ื ืขืฉื•ื™ื™ื ืœื”ืฉืงื™ืข ื™ื•ืชืจ ื–ืžืŸ ื‘ื˜ื™ืคื•ืœ ื‘ื”ืคืจื•ืช ืกื’ื ื•ืŸ ืงืœื•ืช ื‘ืžืงื•ื ืœื”ืชืžืงื“ ื‘ืฉื™ืคื•ืจื™ ืงื•ื“ ื‘ืคื•ืขืœ.

ืœืžืจื•ืช ืฉ-Pylint ืžืฆื•ื™ืŸ ืœืื›ื™ืคื” ื‘ืกื’ื ื•ืŸ ืงื•ื“, ืื™ืŸ ืœื• ื–ื™ื”ื•ื™ ืžื•ื‘ื ื” ืฉืœ ืคื’ื™ืขื•ืช ืื‘ื˜ื—ื”. ืคืจื•ื™ืงื˜ื™ื ื”ื“ื•ืจืฉื™ื ื ื™ืชื•ื— ืื‘ื˜ื—ื” ืžืขืžื™ืง ื–ืงื•ืงื™ื ืœื›ืœื™ื ื ื•ืกืคื™ื ืœื”ื’ื ื” ืžืงื™ืคื”. ื‘ื ื•ืกืฃ, ื”ื ื™ืชื•ื— ืฉืœ Pylint ื™ื›ื•ืœ ืœื”ื™ื•ืช ืขืชื™ืจ ืžืฉืื‘ื™ื, ืžื” ืฉืžื•ื‘ื™ืœ ืœื–ืžื ื™ ื‘ื™ืฆื•ืข ืืจื•ื›ื™ื ื™ื•ืชืจ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืคื—ื•ืช ืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืขื ืื™ืœื•ืฆื™ ื‘ื™ืฆื•ืขื™ื ื”ื“ื•ืงื™ื.

ืฉื—ื•ืจ

ื ื™ืชื•ื— ืงื•ื“ ืคื™ืชื•ืŸ ืฉื—ื•ืจ

ืฉื—ื•ืจ ื”ื•ื ืžืขืฆื‘ ืงื•ื“ Python ื‘ืขืœ ื“ืขืชืŸ ืจื‘, ื”ืื•ื›ืฃ ืกื’ื ื•ืŸ ืงื™ื“ื•ื“ ืขืงื‘ื™ ื‘ืคืจื•ื™ืงื˜ื™ื. ื‘ื ื™ื’ื•ื“ ืœ-linters ื”ืžืกื•ืจืชื™ื™ื, Black ืžืคืจืžื˜ ืื•ื˜ื•ืžื˜ื™ืช ืืช ื”ืงื•ื“ ื›ื“ื™ ืœืขืžื•ื“ ื‘ื›ืœืœื™ ื”ืขื™ืฆื•ื‘ ื”ืžื—ืžื™ืจื™ื ืฉืœื•, ื•ืžื‘ื˜ืœ ื•ื™ื›ื•ื—ื™ื ืขืœ ืกื’ื ื•ืŸ ืงื•ื“ ื‘ืชื•ืš ืฆื•ื•ืชื™ื. ืขืœ ื™ื“ื™ ืžืชืŸ ืžื‘ื ื” ืื—ื™ื“, ื”ื•ื ืžืฉืคืจ ืืช ืงืจื™ืืช ื”ืงื•ื“ ื•ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ืชื•ืš ื”ืคื—ืชืช ื”ืฆื•ืจืš ื‘ืขื™ืฆื•ื‘ ื™ื“ื ื™. ื”ืฉื—ื•ืจ ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื”ืŸ ื‘ืกื‘ื™ื‘ื•ืช ืงื•ื“ ืคืชื•ื— ื•ื”ืŸ ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ื•ืžืฆื™ืข ืœืžืคืชื—ื™ื ื‘ืกื™ืก ืงื•ื“ "ืžื•ืฉื—ื™ืจ" ื”ืขื•ืงื‘ ืื—ืจ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœืœื ืฆื•ืจืš ื‘ื”ืชืขืจื‘ื•ืช ื™ื“ื ื™ืช.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืคื•ืจืžื˜ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืงื•ื“ Python ื›ื“ื™ ืœืฉืžื•ืจ ืขืœ ืกื’ื ื•ืŸ ืขืงื‘ื™.
  • ืื•ื›ืฃ ืกื’ื ื•ืŸ ืงืคื“ื ื™ ื•ื“ืขืชื ื™ ืฉืžืคื—ื™ืช ืืช ื”ืฆื•ืจืš ื‘ื”ื—ืœื˜ื•ืช ืขื™ืฆื•ื‘ ื™ื“ื ื™ื•ืช.
  • ืขื•ื‘ื“ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื Git pre-commit hooks, CI/CD pipelines ื•-IDEs ืคื•ืคื•ืœืจื™ื™ื.
  • ืชื•ืžืš ื‘ื’ืœื™ืฉืช ืฉื•ืจื•ืช ืื•ื˜ื•ืžื˜ื™ืช ื•ื‘ืืจื’ื•ืŸ ืžื—ื“ืฉ ืฉืœ ืงื•ื“ ืœืฉื™ืคื•ืจ ื”ืงืจื™ืื”.
  • ืžืื™ืฅ ืืช ืกืงื™ืจื•ืช ื”ืงื•ื“ ืขืœ ื™ื“ื™ ื”ื‘ื˜ื—ืช ื›ืœ ื”ืงื•ื“ ืœืคื™ ืื•ืชื ื›ืœืœื™ ืขื™ืฆื•ื‘.
  • ืชื•ืื ืœื’ืจืกืื•ืช Python ืฉื•ื ื•ืช, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื›ืœื™ ืืžื™ืŸ ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืืจื•ื›ื™ ื˜ื•ื•ื—.

ืžื’ื‘ืœื•ืช ืฉื™ืฉ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ

ื‘ืขื•ื“ ืฉื—ื•ืจ ืื•ื›ืฃ ืกื’ื ื•ืŸ ืงื™ื“ื•ื“ ืขืงื‘ื™, ื™ื™ืชื›ืŸ ืฉื›ืœืœื™ ื”ืขื™ืฆื•ื‘ ื”ืžื—ืžื™ืจื™ื ืฉืœื• ืœื ื™ืชืื™ืžื• ืœื”ืขื“ืคื•ืช ืฉืœ ื›ืœ ืžืคืชื—. ื‘ื ื™ื’ื•ื“ ืœื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืื—ืจื™ื, ื”ื•ื ืื™ื ื• ืžื‘ืฆืข ืจื™ืคื•ื“ ืขื‘ื•ืจ ืื™ื›ื•ืช ืงื•ื“, ืžื•ืจื›ื‘ื•ืช ืื• ื‘ืขื™ื•ืช ืื‘ื˜ื—ื”, ื›ืœื•ืžืจ ื™ืฉ ืœื”ืฉืชืžืฉ ื‘ื• ืœืฆื“ ื›ืœื™ื ืื—ืจื™ื ื›ืžื• Flake8 ืื• Pylint ืœื ื™ืชื•ื— ืžืงื™ืฃ.

Black ืžืฆื™ืขื” ื’ื ืืคืฉืจื•ื™ื•ืช ื”ืชืืžื” ืื™ืฉื™ืช ืžื•ื’ื‘ืœื•ืช, ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ื ื•ืงื˜ ื‘ื’ื™ืฉื” ืฉืœ "ื’ื•ื“ืœ ืื—ื“ ืฉืžืชืื™ื ืœื›ื•ืœื" ืœืขื™ืฆื•ื‘. ืžืคืชื—ื™ื ื”ืžื—ืคืฉื™ื ื‘ืงืจืช ืขื™ืฆื•ื‘ ื’ืžื™ืฉื” ื™ื•ืชืจ ืขืฉื•ื™ื™ื ืœืžืฆื•ื ื–ืืช ืžื’ื‘ื™ืœื”. ื‘ื ื•ืกืฃ, ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื ืขื ืชื•ืจืžื™ื ืจื‘ื™ื, ื”ืžืขื‘ืจ ืœืฉื—ื•ืจ ืขืฉื•ื™ ืœื“ืจื•ืฉ ื”ืชืืžื” ืžืฉืžืขื•ืชื™ืช ืื ืชืงื ื™ ื”ืขื™ืฆื•ื‘ ื”ืงื™ื™ืžื™ื ืฉื•ื ื™ื ืžื”ืกื’ื ื•ืŸ ื”ืื›ืฃ ืฉืœ ืฉื—ื•ืจ.

Mypy

ืžื ืชื— ืงื•ื“ mypy python

Mypy ื”ื•ื ื‘ื•ื“ืง ืกื•ื’ ืกื˜ื˜ื™ ืขื‘ื•ืจ Python ืฉืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœืชืคื•ืก ืฉื’ื™ืื•ืช ื”ืงืฉื•ืจื•ืช ืœืกื•ื’ ืœืคื ื™ ื–ืžืŸ ื”ืจื™ืฆื”. ืขืœ ื™ื“ื™ ื”ืฆื’ืช ื”ืขืจื•ืช ืžืกื•ื’ื™ื ืื•ืคืฆื™ื•ื ืœื™ื™ื, Mypy ืžืฉืคืจืช ืืช ืืžื™ื ื•ืช ื”ืงื•ื“ ื•ืชื—ื–ื•ืงื”, ืžื” ืฉื”ื•ืคืš ืืช Python ืœืฆืคื•ื™ ื™ื•ืชืจ ื•ืงืœ ื™ื•ืชืจ ืœื ื™ืคื•ื™ ื‘ืื’ื™ื. ื”ื•ื ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื ืคืจื•ื™ืงื˜ื™ื ืฉืœ Python, ื•ืžืกืคืง ืžืฉื•ื‘ ืžื•ืงื“ื ืขืœ ืื™ ื”ืชืืžื” ืคื•ื˜ื ืฆื™ืืœื™ืช ืฉืœ ืกื•ื’, ืืจื’ื•ืžื ื˜ื™ื ื—ืกืจื™ื ื•ืกื•ื’ื™ ื”ื—ื–ืจื•ืช ืœื ื—ื•ืงื™ื™ื. Mypy ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ื™ื™ืฉื•ืžื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ ืฉื‘ื”ื ื‘ื˜ื™ื—ื•ืช ืกื•ื’ ื—ื™ื•ื ื™ืช ืœืžื ื™ืขืช ืฉื’ื™ืื•ืช ื–ืžืŸ ืจื™ืฆื” ืขื“ื™ื ื•ืช ื•ืœืฉื™ืคื•ืจ ืื™ื›ื•ืช ื”ืงื•ื“.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื‘ืฆืข ื‘ื“ื™ืงืช ืกื•ื’ ืกื˜ื˜ื™ืช ื›ื“ื™ ืœื–ื”ื•ืช ืื™ ื”ืชืืžื” ืฉืœ ืกื•ื’ ืœืคื ื™ ื–ืžืŸ ื”ืจื™ืฆื”.
  • ืชื•ืžืš ื‘ื”ืงืœื“ื” ื”ื“ืจื’ืชื™ืช, ืžื” ืฉืžืืคืฉืจ ืœืžืคืชื—ื™ื ืœืืžืฅ ืจืžื–ื™ื ืœืกื•ื’ ื‘ื”ื“ืจื’ื”.
  • ืžืฉืคืจ ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ืฉืœ ื”ืงื•ื“ ืขืœ ื™ื“ื™ ืื›ื™ืคืช ืขืงื‘ื™ื•ืช ืกื•ื’ ื‘ื™ืŸ ืคื•ื ืงืฆื™ื•ืช ื•ืžื•ื“ื•ืœื™ื.
  • ืžืฉืชืœื‘ ืขื ืฆื™ื ื•ืจื•ืช CI/CD ื›ื“ื™ ืœืชืคื•ืก ืฉื’ื™ืื•ืช ื”ืงืฉื•ืจื•ืช ืœืกื•ื’ ืžื•ืงื“ื ื‘ืคื™ืชื•ื—.
  • ืชื•ืื ืœืจืžื–ื™ื ื”ืžื•ื‘ื ื™ื ืฉืœ Python ื•ืกืคืจื™ื•ืช ืฆื“ ืฉืœื™ืฉื™.
  • ืขื•ื‘ื“ ืœืฆื“ linters ื›ืžื• Flake8 ื•-Pylint ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืงื™ืฃ.

ืฉื™ืงื•ืœื™ื ื•ืืชื’ืจื™ื

ื‘ืขื•ื“ Mypy ืžืฉืคืจืช ืืช ื‘ื˜ื™ื—ื•ืช ื”ืงื•ื“, ื”ื™ื ื“ื•ืจืฉืช ืžื”ืžืคืชื—ื™ื ืœื”ื•ืกื™ืฃ ืจืžื–ื™ื ืœืกื•ื’, ืžื” ืฉืขืœื•ืœ ืœื’ื–ื•ืœ ื–ืžืŸ ืจื‘, ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœื ืชื•ื›ื ื ื• ื‘ืžืงื•ืจ ืขื ื”ืขืจื•ืช ืกื•ื’. ืฆื•ื•ืชื™ื ืฉืื™ื ื ืžื›ื™ืจื™ื ื‘ื“ื™ืงืช ืกื•ื’ื™ื ืขืฉื•ื™ื™ื ืœืขืžื•ื“ ื‘ืคื ื™ ืขืงื•ืžืช ืœืžื™ื“ื” ื‘ืขืช ืื™ืžื•ืฅ Mypy, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืื•ื›ืคืช ืžืฉืžืขืช ืงื™ื“ื•ื“ ืžื—ืžื™ืจื” ื™ื•ืชืจ.

Mypy ืื™ื ื” ืžื–ื”ื” ืฉื’ื™ืื•ืช ื–ืžืŸ ืจื™ืฆื” ืื• ืื•ื›ืคืช ื—ื•ืงื™ื ื‘ืกื’ื ื•ืŸ ืงื•ื“, ื›ืœื•ืžืจ ื™ืฉ ืœื”ืฉืชืžืฉ ื‘ื” ืœืฆื“ linters ื•ื›ืœื™ ืื‘ื˜ื—ื” ืžืกื•ืจืชื™ื™ื ืœื ื™ืชื•ื— ืžืœื. ื‘ื ื•ืกืฃ, ื—ืœืง ืžื”ืกืคืจื™ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ืขืฉื•ื™ื•ืช ืœื”ื™ืขื“ืจ ื”ืขืจื•ืช ืžืกื•ื’ ืžืœื, ืžื” ืฉืžื•ื‘ื™ืœ ืœื‘ื“ื™ืงื•ืช ืกื•ื’ื™ื ืœื ืฉืœืžื•ืช ืื• ืœื ืžื“ื•ื™ืงื•ืช ื‘ืžืงืจื™ื ืžืกื•ื™ืžื™ื.

ืฉืื•ึนื“ึตื“

Bandit ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืžื•ืงื“ ืื‘ื˜ื—ื” ืฉืชื•ื›ื ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ Python. ื”ื•ื ืกื•ืจืง ืงื•ื“ ืžืงื•ืจ ืœืื™ืชื•ืจ ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื ืคื•ืฆื•ืช, ื›ื’ื•ืŸ ืื™ืฉื•ืจื™ื ืžืงื•ื“ื“ื™ื, ื”ื–ืจืงื•ืช SQL ื•ืฉื™ืžื•ืฉ ืœื ื‘ื˜ื•ื— ื‘ืคื•ื ืงืฆื™ื•ืช. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ Bandit ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ื‘ืคื™ืชื•ื—, ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื–ื”ื•ืช ื•ืœืชืงืŸ ืคื’ืžื™ ืื‘ื˜ื—ื” ืžื•ืงื“ื, ื•ืœื”ืคื—ื™ืช ืืช ื”ืกื™ื›ื•ืŸ ืœืคืจืฆื•ืช ืื‘ื˜ื—ื”. Bandit ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืคืจื•ื™ืงื˜ื™ื ืจื’ื™ืฉื™ื ืœืื‘ื˜ื—ื”, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื›ืœื™ ื—ื™ื•ื ื™ ืขื‘ื•ืจ ืžืคืชื—ื™ื ืฉืžืชืขื“ืคื™ื ืื‘ื˜ื—ื” ื•ืชืื™ืžื•ืช ืฉืœ ื™ื™ืฉื•ืžื™ื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื–ื”ื” ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื ืคื•ืฆื•ืช, ื›ื•ืœืœ ืกื™ืกืžืื•ืช ืžืงื•ื“ื“ื•ืช ืงืฉื™ื— ื•ืฉื™ื˜ื•ืช ื”ืฆืคื ื” ื—ืœืฉื•ืช.
  • ืžื‘ืฆืข ืกืจื™ืงืช ืงื•ื“ ืกื˜ื˜ื™ ื›ื“ื™ ืœื–ื”ื•ืช ืงืจื™ืื•ืช ืคื•ื ืงืฆื™ื” ืœื ื‘ื˜ื•ื—ื•ืช ื•ืกื™ื›ื•ื ื™ ื”ื–ืจืงื” ืคื•ื˜ื ืฆื™ืืœื™ื™ื.
  • ืžืกืคืง ื“ื•ื—ื•ืช ืื‘ื˜ื—ื” ืžืคื•ืจื˜ื™ื ืขื ืจืžื•ืช ื—ื•ืžืจื” ื›ื“ื™ ืœืชืขื“ืฃ ืชื™ืงื•ื ื™ื.
  • ืžืฉืชืœื‘ ืขื ืฆื™ื ื•ืจื•ืช CI/CD ื›ื“ื™ ืœืื›ื•ืฃ ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืœืคื ื™ ื”ืคืจื™ืกื”.
  • ืชื•ืžืš ื‘ืชืฆื•ืจื•ืช ื›ืœืœื™ื ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ื›ื“ื™ ืœื”ืชืื™ื ืืช ืžื“ื™ื ื™ื•ืช ื”ืื‘ื˜ื—ื” ืœืฆืจื›ื™ ื”ืคืจื•ื™ืงื˜ ื”ืกืคืฆื™ืคื™ื™ื.
  • ืขื•ื‘ื“ ืœืฆื“ linters ืื—ืจื™ื ื•ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ืœืกืงื™ืจืช ืงื•ื“ ืžืงื™ืคื”.

ืžื’ื‘ืœื•ืช ื•ืืชื’ืจื™ื

ื‘ืขื•ื“ Bandit ื™ืขื™ืœ ื‘ืื™ืชื•ืจ ืคืจืฆื•ืช ืื‘ื˜ื—ื”, ื”ื•ื ืžืชืžืงื“ ื‘ืขื™ืงืจ ื‘ื ื™ืชื•ื— ืกื˜ื˜ื™ ื•ืื™ื ื• ื™ื›ื•ืœ ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ื‘ื–ืžืŸ ืจื™ืฆื”. ืขืœ ืžืคืชื—ื™ื ืœื”ืฉืœื™ื ืื•ืชื• ืขื ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ื“ื™ื ืžื™ื•ืช ื•ื‘ื™ืงื•ืจื•ืช ืงื•ื“ ื™ื“ื ื™ื•ืช ื›ื“ื™ ืœื”ืฉื™ื’ ื”ืขืจื›ืช ืื‘ื˜ื—ื” ื™ืกื•ื“ื™ืช ื™ื•ืชืจ.

ื”ืืคืงื˜ื™ื‘ื™ื•ืช ืฉืœ Bandit ืชืœื•ื™ื” ื‘ืขืจื›ื•ืช ื›ืœืœื™ื ืžืชื•ื—ื–ืงื™ื ื”ื™ื˜ื‘, ืฉืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ืขื“ื›ื•ื ื™ื ืชื›ื•ืคื™ื ื›ื“ื™ ืœื”ืชืžื•ื“ื“ ืขื ืื™ื•ืžื™ื ืžืชืขื•ืจืจื™ื. ื‘ื ื•ืกืฃ, ื”ื•ื ืขืฉื•ื™ ืœื”ืคื™ืง ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช, ื”ืžื—ื™ื™ื‘ื•ืช ืžืคืชื—ื™ื ืœื›ื•ื•ื ืŸ ืืช ื”ืชืฆื•ืจื” ืฉืœื• ืœืชื•ืฆืื•ืช ืžื™ื˜ื‘ื™ื•ืช. ืคืจื•ื™ืงื˜ื™ื ืขื ื“ืจื™ืฉื•ืช ืื‘ื˜ื—ื” ืžื•ืจื›ื‘ื•ืช ืขืฉื•ื™ื™ื ืœื”ื–ื“ืงืง ืœื›ืœื™ื ื ื•ืกืคื™ื ื›ื“ื™ ืœืขืžื•ื“ ื‘ืชืงื ื™ ืชืื™ืžื•ืช.

ื–ื›ื•ื™ื•ืช ื™ื•ืฆืจื™ื

Pyright ื”ื•ื ื‘ื•ื“ืง ืกื•ื’ ืกื˜ื˜ื™ ืžื”ื™ืจ ื•ื™ืขื™ืœ ืขื‘ื•ืจ Python, ืฉืคื•ืชื— ืขืœ ื™ื“ื™ ืžื™ืงืจื•ืกื•ืคื˜. ื”ื•ื ื ื•ืขื“ ืœืกืคืง ื”ืกืงืช ืกื•ื’ ืžืชืงื“ืžืช, ืœืขื–ื•ืจ ืœืžืคืชื—ื™ื ืœืชืคื•ืก ืฉื’ื™ืื•ืช ื”ืงืฉื•ืจื•ืช ืœืกื•ื’ ืžื•ืงื“ื ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—. Pyright ืžืฆื™ืขื” ื‘ื™ืฆื•ืขื™ื ืžืขื•ืœื™ื ื‘ื”ืฉื•ื•ืื” ืœื‘ื•ื“ืงื™ื ืžืกื•ื’ื™ื ืื—ืจื™ื, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื. ื”ื•ื ืชื•ืžืš ื‘ื”ืงืœื“ื” ื”ื“ืจื’ืชื™ืช, ื•ืžืืคืฉืจ ืœืžืคืชื—ื™ื ืœืืžืฅ ืจืžื–ื™ื ืœืกื•ื’ ื‘ืงืฆื‘ ืฉืœื”ื. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ Pyright ื‘ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ืฉืœื”ื, ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœืฉืคืจ ืืช ืืžื™ื ื•ืช ื”ืงื•ื“, ืชื—ื–ื•ืงื” ื•ืชืื™ืžื•ืช ื‘ื’ืจืกืื•ืช Python ืฉื•ื ื•ืช.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื‘ืฆืข ื‘ื“ื™ืงืช ืกื•ื’ ืกื˜ื˜ื™ ืขื ื”ืกืงืช ืกื•ื’ ืžื”ื™ืจ ื•ืžื“ื•ื™ืงืช.
  • ืชื•ืžืš ื‘ื”ืงืœื“ื” ื”ื“ืจื’ืชื™ืช, ื”ืžืืคืฉืจ ืื™ืžื•ืฅ ืžืฆื˜ื‘ืจ ืฉืœ ืจืžื–ื™ื ืœืกื•ื’.
  • ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื Visual Studio Code ื•ืขื•ืจื›ื™ื ืื—ืจื™ื.
  • ืžื•ืชืื ืœืžื”ื™ืจื•ืช, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืžืชืื™ื ืœืคืจื•ื™ืงื˜ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ ืฉืœ Python.
  • ืžื–ื”ื” ืื™ ื”ืชืืžื” ื‘ื™ืŸ ืกื•ื’ื™ื, ื—ืชื™ืžื•ืช ืคื•ื ืงืฆื™ื•ืช ืฉื’ื•ื™ื•ืช ื•ืืจื’ื•ืžื ื˜ื™ื ื—ืกืจื™ื.
  • ืžืกืคืง ื”ื•ื“ืขื•ืช ืฉื’ื™ืื” ืžืคื•ืจื˜ื•ืช ื•ื”ืฆืขื•ืช ืกื•ื’ื™ื ืœืฉื™ืคื•ืจ ื ื™ืคื•ื™ ื‘ืื’ื™ื.

ืืชื’ืจื™ื ื•ืฉื™ืงื•ืœื™ื

ื‘ืขื•ื“ ืฉ- Pyright ื”ื•ื ื‘ื•ื“ืง ืกื•ื’ื™ื ืžืฆื•ื™ืŸ, ืื›ื™ืคืช ื”ืกื•ื’ ื”ืงืคื“ื ื™ืช ืฉืœื• ืขืฉื•ื™ื” ืœื“ืจื•ืฉ ืžื”ืžืคืชื—ื™ื ืœืฉื—ื–ืจ ืงื•ื“ ื‘ืื•ืคืŸ ื ืจื—ื‘, ื‘ืžื™ื•ื—ื“ ื‘ืคืจื•ื™ืงื˜ื™ื ืขื ื”ืงืœื“ื” ื“ื™ื ืžื™ืช. ื”ื”ืกืชื’ืœื•ืช ืœื›ืœืœื™ื ืฉืœื” ืขืฉื•ื™ื” ืœื”ื™ื•ืช ื’ื•ื–ืœืช ื–ืžืŸ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืฉืื™ื ื ืžื›ื™ืจื™ื ืจืžื–ื™ื ืœืกื•ื’.

ื‘ื ื•ืกืฃ, Pyright ืžืชืžืงื“ืช ืืš ื•ืจืง ื‘ื‘ื“ื™ืงืช ืกื•ื’ื™ื ื•ืื™ื ื” ืžื ืชื—ืช ืงื•ื“ ืขื‘ื•ืจ ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืื• ื‘ืขื™ื•ืช ืกื’ื ื•ื ื™ื•ืช. ืžืคืชื—ื™ื ื”ืžื—ืคืฉื™ื ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืงื™ืฃ ืขืฉื•ื™ื™ื ืœื”ื–ื“ืงืง ืœื–ื•ื•ื’ ืื•ืชื• ืขื ื›ืœื™ื ืื—ืจื™ื ื›ืžื• Pylint ืื• Bandit ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื›ื™ืกื•ื™ ืžืœื ื‘ืื™ื›ื•ืช ื”ืงื•ื“.

Pytype

Pytype ื”ื•ื ื›ืœื™ ืœื”ืกืงืช ืกื•ื’ ืกื˜ื˜ื™ ืฉืคื•ืชื— ืขืœ ื™ื“ื™ ื’ื•ื’ืœ ื”ืžื ืชื— ืืช ืงื•ื“ Python ื›ื“ื™ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ืกื•ื’ ืžื‘ืœื™ ืœื“ืจื•ืฉ ื”ืขืจื•ืช ื˜ื™ืคื•ืก ืžืคื•ืจืฉื•ืช. ื–ื” ืžืืคืฉืจ ืœืžืคืชื—ื™ื ืœืฉืžื•ืจ ืขืœ ื”ืื•ืคื™ ื”ื“ื™ื ืžื™ ืฉืœ Python ืชื•ืš ืชื•ืขืœืช ืžื‘ื“ื™ืงืช ืกื•ื’ื™ื. ืขืœ ื™ื“ื™ ืžื™ื ื•ืฃ ื ื™ืชื•ื— ืงื•ื“ ืขืžื•ืง, Pytype ืžื–ื”ื” ื—ื•ืกืจ ื”ืชืืžื” ื‘ื™ืŸ ืกื•ื’ื™ื, ืงืจื™ืื•ืช ืคื•ื ืงืฆื™ื•ืช ืฉื’ื•ื™ื•ืช ื•ืขืจื›ื™ ื”ื—ื–ืจื” ื‘ืœืชื™ ืฆืคื•ื™ื™ื. ื”ื•ื ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืคืจื•ื™ืงื˜ื™ื ื”ื“ื•ืจืฉื™ื ืื™ืžื•ืช ืกื•ื’ ื—ื–ืง ืœืœื ืฆื•ืจืš ื‘ื”ืขืจื•ืช ื™ื“ื ื™ื•ืช ื ืจื—ื‘ื•ืช.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื‘ืฆืข ื”ืกืงืช ืกื•ื’ ืžื‘ืœื™ ืœื“ืจื•ืฉ ืจืžื–ื™ื ืžืคื•ืจืฉื™ื.
  • ืžื–ื”ื” ืงืจื™ืื•ืช ืฉื’ื•ื™ื•ืช ืœืคื•ื ืงืฆื™ื”, ืื™-ื”ืชืืžื” ืฉืœ ืกื•ื’ ื”ื—ื–ืจื” ื•ื—ื•ืกืจ ืขืงื‘ื™ื•ืช ืžืกื•ื’ ืžืฉืชื ื”.
  • ื™ื•ืฆืจ ื”ืขืจื•ืช ืกื•ื’ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื›ื“ื™ ืœืฉืคืจ ืืช ืชื™ืขื•ื“ ื”ืงื•ื“.
  • ืขื•ื‘ื“ ืขื ืคืจื•ื™ืงื˜ื™ื ืฉืœ Python ืœืœื ื”ืงืœื“ื” ื•ื”ืงืœื“ื” ื—ืœืงื™ืช.
  • ืžืฉืชืœื‘ ื‘ืฆื™ื ื•ืจื•ืช CI/CD ืœืื™ืžื•ืช ืกื•ื’ ืื•ื˜ื•ืžื˜ื™.
  • ืชื•ืžืš ื‘ื‘ื“ื™ืงืช ืกืคืจื™ื•ืช ืฆื“ ืฉืœื™ืฉื™ ืขื‘ื•ืจ ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืกื•ื’.

ืžื’ื‘ืœื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช

ืœืžืจื•ืช ืฉ-Pytype ืžืกืคืงืช ื”ืกืงืช ืกื•ื’ ืจื‘ ืขื•ืฆืžื”, ื”ื™ื ืขืฉื•ื™ื” ืœื ืชืžื™ื“ ืœื”ืกื™ืง ื‘ืฆื•ืจื” ืžื“ื•ื™ืงืช ืกื•ื’ื™ื ื‘ืงื•ื“ ื“ื™ื ืžื™ ืžื•ืจื›ื‘, ืžื” ืฉืžื•ื‘ื™ืœ ืœืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช ืื• ืฉื’ื™ืื•ืช ืฉื”ื•ื—ืžืฆื•. ืžืคืชื—ื™ื ื”ืขื•ื‘ื“ื™ื ืขื ืžื‘ื ื™ื ื“ื™ื ืžื™ื™ื ืžืื•ื“ ื™ืฆื˜ืจื›ื• ืœื”ืฉืœื™ื ืื•ืชื• ื‘ืจืžื–ื™ื ืžืคื•ืจืฉื™ื.

ื‘ื ื•ืกืฃ, Pytype ืœื ืžื‘ืฆืขืช ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืื• ืื•ื›ืคืช ื”ื ื—ื™ื•ืช ืกื’ื ื•ืŸ. ื™ื™ืชื›ืŸ ืฉืฆื•ื•ืชื™ื ื”ื“ื•ืจืฉื™ื ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืœื ื™ืฆื˜ืจื›ื• ืœืฉืœื‘ ืื•ืชื• ืขื ื›ืœื™ื ืื—ืจื™ื ื›ืžื• Bandit ืขื‘ื•ืจ ื‘ื™ืงื•ืจืช ืื‘ื˜ื—ื” ืื• Black ืขื‘ื•ืจ ืขื™ืฆื•ื‘ ืงื•ื“.

ืื ื™ ืžืžื™ื™ืŸ

isort ื”ื•ื ื›ืœื™ ืขื–ืจ ืฉืœ Python ื”ืžืžื™ื™ืŸ ื•ืžืืจื’ืŸ ื”ืฆื”ืจื•ืช ื™ื™ื‘ื•ื โ€‹โ€‹ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™, ื•ืžื‘ื˜ื™ื— ืขืงื‘ื™ื•ืช ื•ืงืจื™ืื•ืช ื‘ื™ืŸ ืคืจื•ื™ืงื˜ื™ื. ืขืœ ื™ื“ื™ ืืจื’ื•ืŸ ืžื—ื“ืฉ ืฉืœ ื™ื‘ื•ื ื‘ืกื“ืจ ืžื•ื’ื“ืจ, isort ืžื‘ื˜ืœ ืฉื™ื ื•ื™ื™ื ืžื™ื•ืชืจื™ื ื‘ืกื’ื ื•ืŸ ื”ืงื•ื“ ื•ืžืฉืคืจ ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื”. ื”ื•ื ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื ืขื•ืจื›ื™ ืงื•ื“, ืžืขืจื›ื•ืช ื‘ืงืจืช ื’ืจืกืื•ืช ื•ืฆื™ื ื•ืจื•ืช CI/CD, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื›ืœื™ ื—ื™ื•ื ื™ ืœืื›ื™ืคืช ืชืงื ื™ ืงื™ื“ื•ื“ ื ืงื™ื™ื ื‘ืคืจื•ื™ืงื˜ื™ื ืฉื™ืชื•ืคื™ื™ื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžืžื™ื™ืŸ ื•ืžืงื‘ืฅ ืื•ื˜ื•ืžื˜ื™ืช ื”ืฆื”ืจื•ืช ื™ื™ื‘ื•ื โ€‹โ€‹ืœืคื™ ื›ืœืœื™ ื”ืคืจื•ื™ืงื˜.
  • ืขื•ื‘ื“ ืขื ืžื“ืจื™ื›ื™ ืกื’ื ื•ืŸ ืงื™ื™ืžื™ื ื•ืžืืคืฉืจ ืชืฆื•ืจื•ืช ืžื™ื•ืŸ ืžื•ืชืืžื•ืช ืื™ืฉื™ืช.
  • ืžืฉืชืœื‘ ืขื IDEs ื›ืžื• Visual Studio Code ื•-PyCharm ืœืืจื’ื•ืŸ ื™ื™ื‘ื•ื โ€‹โ€‹ื‘ื–ืžืŸ ืืžืช.
  • ืชื•ืžืš ื‘-pre-commit hooks ืœืื›ื•ืฃ ืžื™ื•ืŸ ื™ื™ื‘ื•ื โ€‹โ€‹ืœืคื ื™ ื”ื’ืฉืช ืงื•ื“.
  • ืชื•ืื ืœื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืื—ืจื™ื ื›ื’ื•ืŸ Black ื•- Flake8.
  • ืžืฉืคืจ ืืช ืงืจื™ืื•ืช ื”ืงื•ื“ ื•ืืช ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ืขืœ ื™ื“ื™ ืฉืžื™ืจื” ืขืœ ืžื‘ื ื” ื™ื™ื‘ื•ื โ€‹โ€‹ืขืงื‘ื™.

ืื–ื•ืจื™ื ืœื—ื™ื“ื•ื“

ื‘ืขื•ื“ ืฉ-isort ื™ืขื™ืœ ืžืื•ื“ ืœื ื™ื”ื•ืœ ื™ื‘ื•ื, ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื• ืžื•ื’ื‘ืœืช ืœืžื™ื•ืŸ ื•ืืจื’ื•ืŸ ื”ืฆื”ืจื•ืช. ื”ื•ื ืื™ื ื• ืžื–ื”ื” ื‘ืขื™ื•ืช ื‘ืื™ื›ื•ืช ืงื•ื“ ืขืžื•ืงื•ืช ื™ื•ืชืจ, ื›ื’ื•ืŸ ืฉื’ื™ืื•ืช ืœื•ื’ื™ืงื”, ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืื• ืฆื•ื•ืืจื™ ื‘ืงื‘ื•ืง ื‘ื‘ื™ืฆื•ืขื™ื.

ื‘ื ื•ืกืฃ, ืคืจื•ื™ืงื˜ื™ื ืขื ืžื‘ื ื™ ื™ื™ื‘ื•ื โ€‹โ€‹ืกืคืฆื™ืคื™ื™ื ืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ืชืฆื•ืจื” ื™ื“ื ื™ืช ื›ื“ื™ ืœื™ื™ืฉืจ ืืช ื”ืชื ื”ื’ื•ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ isort ืขื ื”ืขื“ืคื•ืช ื”ืฆื•ื•ืช. ื™ื™ืชื›ืŸ ืฉื”ืžืคืชื—ื™ื ื™ืฆื˜ืจื›ื• ืœื›ื•ื•ื ืŸ ืืช ื”ื”ื’ื“ืจื•ืช ื›ื“ื™ ืœืžื ื•ืข ืกื“ืจ ืžื—ื“ืฉ ืœื ืจืฆื•ื™ ืฉืœ ื™ื™ื‘ื•ื โ€‹โ€‹ืžืกื•ื™ื™ื.

ืจืื“ื•ืŸ

ืจืื“ื•ืŸ ื”ื•ื ื›ืœื™ ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืœืžื“ื™ื“ืช ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“ ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Python. ื”ื•ื ืžืกืคืง ืชื•ื‘ื ื•ืช ืœื’ื‘ื™ ื”ืžื•ืจื›ื‘ื•ืช ื”ืฆื™ืงืœื•ืžื˜ื™ืช, ืื™ื ื“ืงืก ื”ืชื—ื–ื•ืงื” ื•ืžื“ื“ื™ื ื’ื•ืœืžื™ื™ื, ื•ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื”ืขืจื™ืš ืืช ืงืจื™ืื•ืช ื”ืงื•ื“ ื•ืœืขืจื•ืš ืžื—ื“ืฉ ื‘ืขืช ื”ืฆื•ืจืš. ืจืื“ื•ืŸ ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืžืชืขื“ืคื™ื ืงื•ื“ ื ืงื™ ื•ื ื™ืชืŸ ืœืชื—ื–ื•ืงื” ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืคื•ื ืงืฆื™ื•ืช ื•ืžื•ื“ื•ืœื™ื ืžื•ืจื›ื‘ื™ื ืžื“ื™.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื ืชื— ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื›ื“ื™ ืœื–ื”ื•ืช ืคื•ื ืงืฆื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืžื“ื™.
  • ืžื—ืฉื‘ืช ืื™ื ื“ืงืก ืชื—ื–ื•ืงื” ื›ื“ื™ ืœื”ืขืจื™ืš ืืช ืงืจื™ืื•ืช ื”ืงื•ื“ ื•ืื™ื›ื•ืชื•.
  • ืชื•ืžืš ื‘ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืฆื™ื ื•ืจื•ืช CI/CD ืœื”ืขืจื›ืช ืžื•ืจื›ื‘ื•ืช ืžืชืžืฉื›ืช.
  • ืžื™ื™ืฆืจ ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ืขื ืฆื™ื•ื ื™ ืžื•ืจื›ื‘ื•ืช ืžืกืคืจื™ื™ื.
  • ืขื•ื–ืจ ืœืฆื•ื•ืชื™ื ืœืชืขื“ืฃ ืžืืžืฆื™ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืขื‘ื•ืจ ืงื™ื™ืžื•ืช ืงื•ื“ ืœื˜ื•ื•ื— ืืจื•ืš.
  • ืขื•ื‘ื“ ืœืฆื“ ื›ืœื™ื ื›ืžื• Pylint ื•ืฉื—ื•ืจ ืœื–ืจื™ืžืช ืขื‘ื•ื“ื” ืžืงื™ืคื” ืฉืœ ื ื™ืชื•ื— ืกื˜ื˜ื™.

ืฉื™ืงื•ืœื™ื ื•ืืชื’ืจื™ื

ื‘ืขื•ื“ ืจืื“ื•ืŸ ืžืกืคืง ืžื“ื“ื™ ืžื•ืจื›ื‘ื•ืช ื—ืฉื•ื‘ื™ื, ื”ื•ื ืื™ื ื• ืžืฆื™ืข ื”ืžืœืฆื•ืช ื™ืฉื™ืจื•ืช ืœืฉื™ืคื•ืจ ืžื‘ื ื™ ืงื•ื“ ืžื•ืจื›ื‘ื™ื. ืขืœ ื”ืžืคืชื—ื™ื ืœืคืจืฉ ืืช ื”ืชื•ืฆืื•ืช ื•ืœื”ื—ืœื™ื˜ ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช ืขื™ื‘ื•ื“ ืžืชืื™ืžื•ืช.

ื‘ื ื•ืกืฃ, ืจืื“ื•ืŸ ืื™ื ื• ืžื‘ืฆืข ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืื• ืื•ื›ืฃ ืชืงื ื™ ืกื’ื ื•ืŸ ืงื™ื“ื•ื“. ื™ื™ืชื›ืŸ ืฉืฆื•ื•ืชื™ื ื”ื“ื•ืจืฉื™ื ืคืชืจื•ืŸ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืœื ื™ืฆื˜ืจื›ื• ืœืฉืœื‘ ืจืื“ื•ืŸ ืขื linters ื•ื›ืœื™ื ืžืžื•ืงื“ื™ ืื‘ื˜ื—ื” ืœื’ื™ืฉื” ืžืขื•ื’ืœืช ื”ื™ื˜ื‘ ืœื ื™ื”ื•ืœ ืื™ื›ื•ืช ืงื•ื“.

ืžึฐื—ึทืคึตึผืฉื‚

Prospector ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ Python ื”ืžืื’ื“ ืžืกืคืจ ืœื™ื ื˜ืจื™ื ืœืžืžืฉืง ืื—ื“, ื•ืžืกืคืง ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ืžืงื™ืคื•ืช ืฉืœ ื”ืงื•ื“. ื”ื•ื ืžืฉืœื‘ ื›ืœื™ื ื›ืžื• Pylint, Mypy ื•ืžืงืื‘ื™ ื›ื“ื™ ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืชื—ื‘ื™ืจ, ืœืื›ื•ืฃ ืชืงื ื™ ืงื™ื“ื•ื“ ื•ืœื ืชื— ืžื•ืจื›ื‘ื•ืช. Prospector ืžืคืฉื˜ ืืช ื ื™ืชื•ื— ื”ืงื•ื“ ืขืœ ื™ื“ื™ ืืกืคืงืช ื“ื•ื—ื•ืช ืžืื•ื—ื“ื™ื, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ื”ื“ื•ืจืฉื™ื ื›ืœื™ ืžืจื›ื–ื™ ืœืฉืžื™ืจื” ืขืœ ืื™ื›ื•ืช ืงื•ื“ Python.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžืงื‘ืฅ ืžืกืคืจ ืœื™ื ื˜ืจื™ื, ื›ื•ืœืœ Pylint, Pyflakes ื•ืž-Cabe, ืœื›ืœื™ ืื—ื“.
  • ืžื‘ืฆืข ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืžื•ืง ืœืžื•ืจื›ื‘ื•ืช ืงื•ื“, ืชื—ื–ื•ืงื” ื•ืื‘ื˜ื—ื”.
  • ืžืืคืฉืจ ืชืฆื•ืจื•ืช ื›ืœืœื™ื ืžื›ื•ื•ื ื ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ืคืœื˜ ื ื™ืชื•ื—.
  • ืžืฉืชืœื‘ ืขื ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ CI/CD ืœื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช.
  • ืžืกืคืง ื“ื•ื— ื™ื—ื™ื“ ืขื ืชื•ื‘ื ื•ืช ืžื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืจื•ื‘ื™ื.
  • ืขื•ื–ืจ ืœืชืงืŸ ืืช ืฉื™ื˜ื•ืช ืื™ื›ื•ืช ื”ืงื•ื“ ื‘ื™ืŸ ืฆื•ื•ืชื™ื ื•ืคืจื•ื™ืงื˜ื™ื.

ืฉื™ืงื•ืœื™ื ื•ืืชื’ืจื™ื

ื‘ืขื•ื“ Prospector ืžืฆื™ืขื” ืžืžืฉืง ืžืื•ื—ื“ ืœืžืกืคืจ ืœื™ื ื˜ืจื™ื, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื›ืจื™ืข ื‘ืฉืœ ื”ื ืคื— ื”ืจื‘ ืฉืœ ืื–ื”ืจื•ืช ื•ื”ืฆืขื•ืช. ื™ื™ืชื›ืŸ ืฉืžืคืชื—ื™ื ื™ืฆื˜ืจื›ื• ืœื”ืชืื™ื ืชืฆื•ืจื•ืช ื›ื“ื™ ืœืžื ื•ืข ืจืขืฉ ืžื•ื’ื–ื ื‘ื“ื•ื—ื•ืช.

ื‘ื ื•ืกืฃ, Prospector ืื™ื ื• ืžืกืคืง ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืชื•ืš IDEs ื›ืžื• linters ืขืฆืžืื™ื™ื. ื”ื•ื ืžืชืื™ื ื‘ื™ื•ืชืจ ืœืฉื™ืžื•ืฉ ื‘ืกื‘ื™ื‘ื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืžืชืžืฉื›ื•ืช ื•ืœื ืœื ื™ืชื•ื— ืงื•ื“ ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”.

SonarQube (Python Plugin)

SonarQube, ืขื ืชื•ืกืฃ Python ืฉืœื•, ื”ื•ื ื›ืœื™ ืจื‘ ืขื•ืฆืžื” ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื”ืžื™ื•ืขื“ ืœื ื™ื”ื•ืœ ืื™ื›ื•ืช ืงื•ื“ ื‘ืจืžืช ื”ืืจื’ื•ืŸ. ื”ื•ื ืžืกืคืง ื ื™ืชื•ื— ืื‘ื˜ื—ื”, ืชื—ื–ื•ืงื” ื•ืืžื™ื ื•ืช ืžืขืžื™ืง ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ Python. SonarQube ืชื•ืžืš ื‘ื‘ื“ื™ืงื” ืจืฆื™ืคื” ืฉืœ ื‘ืกื™ืกื™ ืงื•ื“ ื•ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื ืฆื™ื ื•ืจื•ืช CI/CD, ื•ืขื•ื–ืจ ืœืฆื•ื•ืชื™ื ืœืื›ื•ืฃ ืชืงื ื™ ืงื™ื“ื•ื“ ื•ืœื–ื”ื•ืช ื ืงื•ื“ื•ืช ืชื•ืจืคื” ืœืคื ื™ ื”ืคืจื™ืกื”.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื‘ืฆืข ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื›ื“ื™ ืœื–ื”ื•ืช ืคืจืฆื•ืช ืื‘ื˜ื—ื”, ื‘ืื’ื™ื ื•ืจื™ื—ื•ืช ืงื•ื“.
  • ืžืกืคืง ืœื•ื— ืžื—ื•ื•ื ื™ื ืžืจื›ื–ื™ ืœื ื™ื˜ื•ืจ ืื™ื›ื•ืช ืงื•ื“ Python ืœืื•ืจืš ื–ืžืŸ.
  • ืžืฉืชืœื‘ ืขื Jenkins, GitHub Actions ื•ื›ืœื™ CI/CD ืื—ืจื™ื ืœื ื™ืชื•ื— ืื•ื˜ื•ืžื˜ื™.
  • ืชื•ืžืš ื”ืŸ ื‘ืคืจื™ืกื•ืช ืžืงื•ืžื™ื•ืช ื•ื”ืŸ ื‘ืคืจื™ืกื•ืช ืžื‘ื•ืกืกื•ืช ืขื ืŸ ืœืฆื•ืจืš ื’ืžื™ืฉื•ืช.
  • ืžื‘ื˜ื™ื— ืขืžื™ื“ื” ื‘ืชืงื ื™ ืงื™ื“ื•ื“ ื‘ืชืขืฉื™ื™ื” ื•ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช.
  • ืžื™ื™ืฆืจ ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ืขื ืกื™ื•ื•ื’ื™ ื—ื•ืžืจื” ืœืชืขื“ื•ืฃ ื™ืขื™ืœ ืฉืœ ื‘ืขื™ื•ืช.

ืžื’ื‘ืœื•ืช ืฉื™ืฉ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ

ื‘ืขื•ื“ SonarQube ื”ื•ื ื›ืœื™ ื—ื–ืง, ืื•ืคื™ื• ืขืชื™ืจ ื”ืžืฉืื‘ื™ื ื™ื›ื•ืœ ืœื”ืื˜ ืืช ื”ื‘ื ื™ื™ื”, ื‘ืžื™ื•ื—ื“ ื‘ืคืจื•ื™ืงื˜ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ ืฉืœ Python. ื–ื” ื“ื•ืจืฉ ืชืฉืชื™ืช ื™ื™ืขื•ื“ื™ืช ืœืคืขื•ืœ ื‘ื™ืขื™ืœื•ืช, ืžื” ืฉืื•ืœื™ ืื™ื ื• ืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืงื˜ื ื™ื ืื• ืกื˜ืืจื˜-ืืคื™ื.

ื‘ื ื•ืกืฃ, ืชื›ื•ื ื•ืช ื ื™ืชื•ื— ื”ืื‘ื˜ื—ื” ืฉืœ SonarQube ืื™ื ืŸ ื ืจื—ื‘ื•ืช ื›ืžื• ื›ืœื™ ืื‘ื˜ื—ื” ืžื™ื•ื—ื“ื™ื. ื™ื™ืชื›ืŸ ืฉืืจื’ื•ื ื™ื ืขื ื“ืจื™ืฉื•ืช ืชืื™ืžื•ืช ืงืคื“ื ื™ื•ืช ื™ืฆื˜ืจื›ื• ืœื”ืฉืœื™ื ืื•ืชื• ื‘ืคืชืจื•ื ื•ืช ื ื™ืชื•ื— ื ื•ืกืคื™ื ืžืžื•ืงื“ื™ ืื‘ื˜ื—ื”.

ื ืฉืจ

Vulture ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืงืœ ืžืฉืงืœ ืฉืœ Python ืฉื ื•ืขื“ ืœื–ื”ื•ืช ืงื•ื“ ืœื ื‘ืฉื™ืžื•ืฉ ื•ืงื•ื“ ืžืช ื‘ืชื•ืš ืคืจื•ื™ืงื˜ื™ื. ื–ื” ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื ืงื•ืช ืืช ื‘ืกื™ืกื™ ื”ืงื•ื“ ืฉืœื”ื ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืคื•ื ืงืฆื™ื•ืช, ืžืฉืชื ื™ื ื•ื™ื™ื‘ื•ื โ€‹โ€‹ืžื™ื•ืชืจื™ื. Vulture ืฉื™ืžื•ืฉื™ ื‘ืžื™ื•ื—ื“ ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ื•ื”ืคื—ืชืช ืžื•ืจื›ื‘ื•ืช ืžื™ื•ืชืจืช ื‘ื™ื™ืฉื•ืžื™ื ื’ื“ื•ืœื™ื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื–ื”ื” ืคื•ื ืงืฆื™ื•ืช ืฉืื™ื ืŸ ื‘ืฉื™ืžื•ืฉ, ืžืฉืชื ื™ื ื•ื™ื™ื‘ื•ื โ€‹โ€‹ื‘ืงื•ื“ Python.
  • ืขื•ื–ืจ ืœื™ื™ืขืœ ื•ืœื ืงื•ืช ื‘ืกื™ืกื™ ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ืขืœ ื™ื“ื™ ื”ืกืจืช ืงื•ื“ ืžืช.
  • ืงืœ ืžืฉืงืœ ื•ืžื”ื™ืจ, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื™ืขื™ืœ ื’ื ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื.
  • ืชื•ืžืš ื‘ืจืฉื™ืžื•ืช ื”ืชืขืœืžื•ืช ื”ื ื™ืชื ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช ื›ื“ื™ ืœื ืœื›ืœื•ืœ ื—ืœืงื™ื ืกืคืฆื™ืคื™ื™ื ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“.
  • ืžืกืคืง ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ืœื ื™ืงื•ื™ ืงื•ื“ ืงืœ ื•ืขื™ื‘ื•ื“ ืžื—ื“ืฉ.
  • ืชื•ืื ืœื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืื—ืจื™ื ืœื–ืจื™ืžืช ืขื‘ื•ื“ื” ืžืงื™ืคื”.

ืืชื’ืจื™ื ื•ืฉื™ืงื•ืœื™ื

ื‘ืขื•ื“ ืฉ-Vulture ืžืฆื•ื™ืŸ ืœืื™ืชื•ืจ ืงื•ื“ ืฉืื™ื ื• ื‘ืฉื™ืžื•ืฉ, ื”ื•ื ืื™ื ื• ืžื‘ืฆืข ื ื™ืชื•ื— ืขืžื•ืง ืขื‘ื•ืจ ืฉื’ื™ืื•ืช ืœื•ื’ื™ื•ืช, ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืื• ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื. ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœื”ืฉืชืžืฉ ื‘ื• ื™ื—ื“ ืขื linters ืื—ืจื™ื ื›ื“ื™ ืœืงื‘ืœ ืชืžื•ื ื” ืžืœืื” ืฉืœ ืื™ื›ื•ืช ื”ืงื•ื“.

ื‘ื ื•ืกืฃ, Vulture ืขืฉื•ื™ ืœื™ืฆื•ืจ ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช ื‘ืงื•ื“ ื‘ืฉื™ืžื•ืฉ ื“ื™ื ืžื™, ื›ื’ื•ืŸ ืคื•ื ืงืฆื™ื•ืช ืฉื”ืคื ื™ื” ืืœื™ื”ืŸ ื‘ืืžืฆืขื•ืช ื”ืฉืชืงืคื•ืช ืžื‘ื•ืกืกืช ืžื—ืจื•ื–ืช. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื ื“ืจืฉืช ืกืงื™ืจื” ื™ื“ื ื™ืช ื›ื“ื™ ืœื•ื•ื“ื ืฉื”ืงื•ื“ ื”ื“ืจื•ืฉ ืœื ื™ื•ืกืจ ื‘ื˜ืขื•ืช.

PyCodeStyle

PyCodeStyle, ืฉื ืงืจื ื‘ืขื‘ืจ PEP8, ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื”ืžืชืžืงื“ ื‘ืื›ื™ืคืช ื”ื ื—ื™ื•ืช ื‘ืกื’ื ื•ืŸ Python. ื–ื” ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœืฉืžื•ืจ ืขืœ ืขื™ืฆื•ื‘ ืขืงื‘ื™ ืขืœ ืคื ื™ ื‘ืกื™ืกื™ ืงื•ื“ ืขืœ ื™ื“ื™ ื‘ื“ื™ืงืช ืขืžื™ื“ื” ื‘-PEP 8, ืžื“ืจื™ืš ื”ืกื’ื ื•ื ื•ืช ื”ืจืฉืžื™ ืฉืœ Python. PyCodeStyle ื”ื•ื ืงืœ ืžืฉืงืœ, ืงืœ ืœืฉื™ืœื•ื‘ ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ื‘ืคื™ืชื•ื— ื•ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืœืฉืžื™ืจื” ืขืœ ืงื•ื“ Python ื ืงื™ ื•ืงืจื™ื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ื‘ื•ื“ืง ืืช ืงื•ื“ Python ืžื•ืœ ื”ื ื—ื™ื•ืช ื‘ืกื’ื ื•ืŸ PEP 8.
  • ืžื–ื”ื” ื—ื•ืกืจ ืขืงื‘ื™ื•ืช ื‘ื”ื–ื—ื”, ืžืจื•ื•ื— ื•ืื•ืจืš ืฉื•ืจื”.
  • ืงืœ ืžืฉืงืœ ื•ืžื”ื™ืจ, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืžืชืื™ื ืœื ื™ืชื•ื— ื‘ื–ืžืŸ ืืžืช ื‘-IDEs.
  • ืชื•ืžืš ื‘ืืคืฉืจื•ื™ื•ืช ืชืฆื•ืจื” ื›ื“ื™ ืœื”ืชืขืœื ืžื›ืœืœื™ ืกื’ื ื•ืŸ ืกืคืฆื™ืคื™ื™ื.
  • ืขื•ื‘ื“ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื ื•ื•ื™ื ืžืจืืฉ ื•ืฆื™ื ื•ืจื•ืช CI/CD.
  • ืžืฉืชืœื‘ ืขื linters ืื—ืจื™ื ื›ืžื• Flake8 ืœื ื™ืชื•ื— ืงื•ื“ ืจื—ื‘ ื™ื•ืชืจ.

ืื–ื•ืจื™ื ืœื—ื™ื“ื•ื“

ื‘ืขื•ื“ PyCodeStyle ื™ืขื™ืœ ื‘ืื›ื™ืคืช ื›ืœืœื™ ืขื™ืฆื•ื‘, ื”ื•ื ืื™ื ื• ืžื ืชื— ืงื•ื“ ืขื‘ื•ืจ ืฉื’ื™ืื•ืช ืœื•ื’ื™ื•ืช, ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืื• ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื. ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœื”ืฉืชืžืฉ ื‘ื• ืœืฆื“ ื›ืœื™ื ืื—ืจื™ื ื›ืžื• Pylint ืื• Bandit ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืงื™ืฃ.

ื‘ื ื•ืกืฃ, ืฆื•ื•ืชื™ื ืžืกื•ื™ืžื™ื ืขืฉื•ื™ื™ื ืœืžืฆื•ื ืืช ื”ื›ืœืœื™ื ื”ื ื•ืงืฉื™ื ืฉืœ PEP 8 ื ื•ืงืฉื™ื ืžื“ื™ ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืžืกื•ื™ืžื™ื. PyCodeStyle ื“ื•ืจืฉ ืชืฆื•ืจื” ื™ื“ื ื™ืช ื›ื“ื™ ืœื”ืชืื™ื ืœืชืงื ื™ ืงื™ื“ื•ื“ ืžื•ืชืืžื™ื ืื™ืฉื™ืช, ืžื” ืฉืขืฉื•ื™ ืœื”ื•ืกื™ืฃ ืžื•ืจื›ื‘ื•ืช ืœืชื”ืœื™ืš ื”ื”ื’ื“ืจื”.

PyFlakes

PyFlakes ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืงืœ ืžืฉืงืœ ืขื‘ื•ืจ Python ื”ืžืชืžืงื“ ื‘ืื™ืชื•ืจ ืฉื’ื™ืื•ืช ื‘ืงื•ื“ ืžื‘ืœื™ ืœืื›ื•ืฃ ืžื•ืกื›ืžื•ืช ืกื’ื ื•ืŸ. ื”ื•ื ืžื–ื”ื” ื‘ืžื”ื™ืจื•ืช ืฉื’ื™ืื•ืช ืชื—ื‘ื™ืจ, ืžืฉืชื ื™ื ืœื ืžื•ื’ื“ืจื™ื ื•ื™ื™ื‘ื•ื โ€‹โ€‹ืฉืื™ื ื• ื‘ืฉื™ืžื•ืฉ, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื›ืœื™ ื—ื™ื•ื ื™ ืœืฉืžื™ืจื” ืขืœ ืงื•ื“ Python ื ืงื™ ื•ื ื˜ื•ืœ ืฉื’ื™ืื•ืช. PyFlakes ื™ื“ื•ืข ื‘ืžื”ื™ืจื•ืช ื•ื‘ื™ืขื™ืœื•ืช ืฉืœื•, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื–ื”ื” ืฉื’ื™ืื•ืช ืชื—ื‘ื™ืจ, ืžืฉืชื ื™ื ืœื ืžื•ื’ื“ืจื™ื ื•ื™ื™ื‘ื•ื โ€‹โ€‹ืœื ื‘ืฉื™ืžื•ืฉ.
  • ืงืœ ืžืฉืงืœ ื•ืžื”ื™ืจ, ืžืกืคืง ืชื•ืฆืื•ืช ื ื™ืชื•ื— ื›ืžืขื˜ ืžื™ื™ื“ื™ื•ืช.
  • ืื™ื ื• ืื•ื›ืฃ PEP 8 ืื• ื›ืœืœื™ ืกื’ื ื•ืŸ ืงื™ื“ื•ื“ ืื—ืจื™ื.
  • ืžืฉืชืœื‘ ื‘ืงืœื•ืช ืขื linters ืื—ืจื™ื ื›ืžื• Flake8 ืœื ื™ืชื•ื— ืจื—ื‘ ื™ื•ืชืจ.
  • ืขื•ื‘ื“ ื”ื™ื˜ื‘ ื‘ืฆื™ื ื•ืจื•ืช CI/CD ืœื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ืื•ื˜ื•ืžื˜ื™.
  • ื ื“ืจืฉืช ืชืฆื•ืจื” ืžื™ื ื™ืžืœื™ืช, ืžื” ืฉืžืงืœ ืขืœ ื”ืฉื™ืžื•ืฉ ื‘ื›ืœ ืคืจื•ื™ืงื˜.

ืื–ื•ืจื™ื ืœื—ื™ื“ื•ื“

ื‘ืขื•ื“ ืฉ-PyFlakes ืžืฆื•ื™ื ืช ืœืื™ืชื•ืจ ืฉื’ื™ืื•ืช ืงื™ื“ื•ื“ ื‘ืกื™ืกื™ื•ืช, ื”ื™ื ื—ืกืจื” ืชื›ื•ื ื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืชืงื“ืžื•ืช ื›ื’ื•ืŸ ื‘ื™ืงื•ืจืช ืื‘ื˜ื—ื”, ืคืจื•ืคื™ืœ ื‘ื™ืฆื•ืขื™ื ืื• ื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช. ืžืคืชื—ื™ื ื”ืžื—ืคืฉื™ื ื ื™ืชื•ื— ืงื•ื“ ืžืขืžื™ืง ื™ื•ืชืจ ื™ืฆื˜ืจื›ื• ืœื”ืฉืœื™ื ืืช PyFlakes ืขื ื›ืœื™ื ืื—ืจื™ื ื›ืžื• Bandit ืœืื‘ื˜ื—ื” ืื• ืจืื“ื•ืŸ ืœืžื“ื™ื“ืช ืžื•ืจื›ื‘ื•ืช.

ื‘ื ื•ืกืฃ, PyFlakes ืœื ืื•ื›ืคืช ื›ืœืœื™ ืกื’ื ื•ืŸ ืงื™ื“ื•ื“, ื›ืœื•ืžืจ ืฆื•ื•ืชื™ื ื”ืžื—ืคืฉื™ื ืขืงื‘ื™ื•ืช ื‘ืกื’ื ื•ืŸ ื™ืฆื˜ืจื›ื• ืœื”ืฉืชืžืฉ ื‘ื• ืœืฆื“ ื›ืœื™ื ื›ืžื• Black ืื• PyCodeStyle.

ืžืง'ืงื™ื™ื‘

McCabe ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ Python ืฉืžื•ื“ื“ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช, ื•ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ืคื•ื ืงืฆื™ื•ืช ื•ืฉื™ื˜ื•ืช ืžื•ืจื›ื‘ื•ืช ืžื“ื™. ืฆื™ื•ื ื™ ืžื•ืจื›ื‘ื•ืช ื’ื‘ื•ื”ื™ื ืžืฆื™ื™ื ื™ื ืื–ื•ืจื™ื ืฉืขืœื•ืœื™ื ืœื”ื™ื•ืช ืงืฉื™ื ืœืชื—ื–ื•ืงื”, ื ื™ืคื•ื™ ื‘ืื’ื™ื ืื• ื‘ื“ื™ืงื”. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ืฉืœ McCabe ื‘ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉืœ ืคื™ืชื•ื—, ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื”ืชืžืงื“ ื‘ืฉื™ื ื•ื™ ืงื•ื“ ืžื•ืจื›ื‘ ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืงืจื™ืื” ื•ื”ืชื—ื–ื•ืงื”.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื ืชื— ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช ื‘ืงื•ื“ Python.
  • ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ื•ืœืฉื ื•ืช ืžื—ื“ืฉ ืคื•ื ืงืฆื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืžื“ื™.
  • ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื Flake8 ืœื‘ื“ื™ืงื•ืช ืžื•ืš ื•ืžื•ืจื›ื‘ื•ืช ืžืฉื•ืœื‘ื•ืช.
  • ืžืงืฆื” ืฆื™ื•ื ื™ ืžื•ืจื›ื‘ื•ืช ืžืกืคืจื™ื™ื ืœืคื•ื ืงืฆื™ื•ืช ื•ืฉื™ื˜ื•ืช.
  • ืงืœ ืžืฉืงืœ ื•ืžื”ื™ืจ, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืžืชืื™ื ืœื ื™ืชื•ื— ื‘ื–ืžืŸ ืืžืช.
  • ืกืคื™ ืžื•ืจื›ื‘ื•ืช ื”ื ื™ืชื ื™ื ืœื”ื’ื“ืจื” ืœืื›ื™ืคืช ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช.

ืืชื’ืจื™ื ื•ืฉื™ืงื•ืœื™ื

McCabe ืฉื™ืžื•ืฉื™ ืœืžื“ื™ื“ืช ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“, ืืš ืื™ื ื• ืžืกืคืง ื”ื ื—ื™ื•ืช ื›ื™ืฆื“ ืœืฉื—ื–ืจ ืื–ื•ืจื™ื ื‘ืขื™ื™ืชื™ื™ื. ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœืคืจืฉ ืืช ืฆื™ื•ื ื™ ื”ืžื•ืจื›ื‘ื•ืช ื•ืœื”ื—ืœื™ื˜ ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ื‘ืขืฆืžื.

ื‘ื ื•ืกืฃ, McCabe ืื™ื ื• ืžื ืชื— ืงื•ื“ ืขื‘ื•ืจ ืฉื’ื™ืื•ืช ืชื—ื‘ื™ืจ, ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืื• ื—ื•ืกืจ ื™ืขื™ืœื•ืช ื‘ื‘ื™ืฆื•ืขื™ื. ืฆื•ื•ืชื™ื ื”ืžื—ืคืฉื™ื ืคืชืจื•ืŸ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืœื ืฆืจื™ื›ื™ื ืœื”ืฉืชืžืฉ ื‘- McCabe ืœืฆื“ ื›ืœื™ื ื›ืžื• Bandit ืœื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืื• PyFlakes ืœืื™ืžื•ืช ืชื—ื‘ื™ืจ.

ื“ื™ื™ื ื˜

Dlint ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืžื•ืงื“ ืื‘ื˜ื—ื” ืฉืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ื•ืœืฆืžืฆื ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื ืคื•ืฆื•ืช ืฉืœ Python. ื–ื” ืžืจื—ื™ื‘ ืืช Flake8 ืขื ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ื ื•ืกืคื•ืช, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื›ืœื™ ื‘ืขืœ ืขืจืš ืœืžื ื™ืขืช ืคื’ืžื™ ืื‘ื˜ื—ื” ื›ืžื• ื”ื–ืจืงื•ืช SQL, ื“ื”-ืกืจื™ืืœื™ื–ืฆื™ื” ืœื ื‘ื˜ื•ื—ื” ื•ืื™ืฉื•ืจื™ื ืžืงื•ื“ื“ื™ื.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื–ื”ื” ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื‘ืงื•ื“ Python.
  • ืžืจื—ื™ื‘ ืืช Flake8 ืขื ื›ืœืœื™ ืžื•ืš ืกืคืฆื™ืคื™ื™ื ืœืื‘ื˜ื—ื”.
  • ืžืกืžืŸ ืกื™ื›ื•ื ื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ืœื”ื–ืจืงืช SQL ื•ืฉื™ืžื•ืฉ ืœื ื‘ื˜ื•ื— ื‘ืคื•ื ืงืฆื™ื•ืช.
  • ืžืฉืชืœื‘ ื‘ืงืœื•ืช ืขื ืฆื™ื ื•ืจื•ืช CI/CD ืœื ื™ืชื•ื— ืื‘ื˜ื—ื” ืื•ื˜ื•ืžื˜ื™.
  • ืงืœ ืžืฉืงืœ ื•ื™ืขื™ืœ, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืžืชืื™ื ืœืกืจื™ืงื•ืช ืจื’ื™ืœื•ืช.
  • ืขื•ื‘ื“ ืœืฆื“ ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ืื—ืจื™ื ืœื›ื™ืกื•ื™ ืื‘ื˜ื—ื” ืžืงื™ืฃ.

ืฉื™ืงื•ืœื™ื ื•ืืชื’ืจื™ื

ื‘ืขื•ื“ ืฉ-Dlint ืžืฆื•ื™ืŸ ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืžื•ืงื“ ืื‘ื˜ื—ื”, ื”ื•ื ืื™ื ื• ืžืกืคืง ืชืžื•ื ื” ืžืœืื” ืฉืœ ืื™ื›ื•ืช ืงื•ื“, ืชื—ื–ื•ืงื” ืื• ืžื•ืจื›ื‘ื•ืช. ืขืœ ื”ืฆื•ื•ืชื™ื ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืฉื™ืœื•ื‘ ืขื ื›ืœื™ื ืื—ืจื™ื ืฉืœ ืžื•ืš ื•ื ื™ืชื•ื— ืงื•ื“ ืœื’ื™ืฉื” ืžืขื•ื’ืœืช ื”ื™ื˜ื‘.

ื”ืืคืงื˜ื™ื‘ื™ื•ืช ืฉืœ Dlint ืชืœื•ื™ื” ื‘ื—ื•ืงื™ ืื‘ื˜ื—ื” ื”ืžืชืขื“ื›ื ื™ื ื‘ืื•ืคืŸ ืงื‘ื•ืข. ืœืœื ืขื“ื›ื•ื ื™ื ืชื›ื•ืคื™ื, ื”ื•ื ืขืœื•ืœ ืœื”ื™ื›ืฉืœ ื‘ื–ื™ื”ื•ื™ ืื™ื•ืžื™ ืื‘ื˜ื—ื” ืžืชืขื•ืจืจื™ื, ืžื” ืฉื™ื“ืจื•ืฉ ืžื”ืžืคืชื—ื™ื ืœื”ื™ืฉืืจ ืžืขื•ื“ื›ื ื™ื ืœื’ื‘ื™ ืฉื™ื˜ื•ืช ื”ืื‘ื˜ื—ื” ื”ื˜ื•ื‘ื•ืช ื‘ื™ื•ืชืจ.

Wemake Python Styleguide

Wemake Python Styleguide ื”ื•ื ื›ืœื™ ืžื•ืš ื“ืขืชื ื™ ื”ืื•ื›ืฃ ืชืงื ื™ ืงื™ื“ื•ื“ ืงืคื“ื ื™ื™ื ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืฉืœ Python. ื”ื•ื ืžืจื—ื™ื‘ ืืช Flake8 ืขื ื›ืœืœื™ื ื ื•ืกืคื™ื ืœืชื—ื–ื•ืงื”, ืžื•ืจื›ื‘ื•ืช ื•ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช, ื•ืขื•ื–ืจ ืœืฆื•ื•ืชื™ื ืœืฉืžื•ืจ ืขืœ ืงื•ื“ ืื™ื›ื•ืชื™, ืงืจื™ื ื•ืขืงื‘ื™.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžืจื—ื™ื‘ ืืช Flake8 ืขื ื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ื•ืชื—ื–ื•ืงื” ื ื•ืกืคื•ืช.
  • ืžื–ื”ื” ืจื™ื—ื•ืช ืงื•ื“, ืื ื˜ื™-ื“ืคื•ืกื™ื ื•ืงื™ื ื•ืŸ ืžื•ื’ื–ื.
  • ืžืขื•ื“ื“ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœื›ืชื™ื‘ืช ืงื•ื“ ื ืงื™ ื•ื ื™ืชืŸ ืœืชื—ื–ื•ืงื”.
  • ืชื•ืžืš ื‘ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืฆื™ื ื•ืจื•ืช CI/CD ื•ืžืขืจื›ื•ืช ื‘ืงืจืช ื’ืจืกืื•ืช.
  • ืžืกืคืง ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ืขื ื”ืกื‘ืจื™ื ื•ื”ืฆืขื•ืช ืœืฉื™ืคื•ืจ.
  • ืขืจื›ื•ืช ื›ืœืœื™ื ื”ื ื™ืชื ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช ืžืืคืฉืจื•ืช ืœืฆื•ื•ืชื™ื ืœื”ืชืื™ื ืืช ื”ื›ืœื™ ืœืฆืจื›ื™ื”ื.

ืžื’ื‘ืœื•ืช ืฉื™ืฉ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ

ื”ื›ืœืœื™ื ื”ืžื—ืžื™ืจื™ื ืฉืœ Wemake Python Styleguide ื™ื›ื•ืœื™ื ืœื’ืจื•ื ืœืžืกืคืจ ื’ื‘ื•ื” ืฉืœ ืื–ื”ืจื•ืช, ืžื” ืฉืขืœื•ืœ ืœื“ืจื•ืฉ ื”ืชืืžื•ืช ืชืฆื•ืจื” ื›ื“ื™ ืœืžื ื•ืข ืžืคืชื—ื™ื ืžื›ืจื™ืขื™ื. ืงื‘ื•ืฆื•ืช ืฉืœื ืžื›ื™ืจื•ืช ืืช ื”ืžื•ืกื›ืžื•ืช ืฉืœื” ืขืฉื•ื™ื•ืช ืœื”ื–ื“ืงืง ืœื–ืžืŸ ื”ืกืชื’ืœื•ืช.

ื‘ื ื•ืกืฃ, ืœืžืจื•ืช ืฉื”ื•ื ืžืฉืคืจ ืืช ืžื‘ื ื” ื”ืงื•ื“ ื•ืืช ืงืจื™ืื•ืชื•, ื”ื•ื ืื™ื ื• ืžืกืคืง ื ื™ืชื•ื— ืื‘ื˜ื—ื” ืžืขืžื™ืง. ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืžืžื•ืงื“ื™ ืื‘ื˜ื—ื”, ื™ืฉ ืœื”ืฉืชืžืฉ ื‘ื• ืœืฆื“ ื›ืœื™ื ื›ืžื• Bandit ืื• Dlint.

ืžึฐื“ื•ึผืจึธื”

Pyre ื”ื•ื ื‘ื•ื“ืง ืกื•ื’ ืกื˜ื˜ื™ ืžื”ื™ืจ ื•ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ืขื‘ื•ืจ Python, ืฉืคื•ืชื— ืขืœ ื™ื“ื™ Meta (ืœืฉืขื‘ืจ ืคื™ื™ืกื‘ื•ืง). ื–ื” ืขื•ื–ืจ ืœืžืคืชื—ื™ื ืœืชืคื•ืก ืฉื’ื™ืื•ืช ื”ืงืฉื•ืจื•ืช ืœืกื•ื’ ืžื•ืงื“ื, ืžืฉืคืจ ืืช ื‘ื˜ื™ื—ื•ืช ื”ืงื•ื“ ื•ืชื—ื–ื•ืงื”. Pyre ืžื•ืชืื ืœื‘ื™ืฆื•ืขื™ื, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื‘ื—ื™ืจื” ืžืฆื•ื™ื ืช ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ Python ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื‘ืฆืข ื‘ื“ื™ืงืช ืกื•ื’ ืกื˜ื˜ื™ ืžื”ื™ืจ ื•ืžื“ื•ื™ืง.
  • ืžื–ื”ื” ืื™ ื”ืชืืžื” ื‘ื™ืŸ ืกื•ื’ื™ื, ืืจื’ื•ืžื ื˜ื™ื ื—ืกืจื™ื ื•ืกื•ื’ื™ ื”ื—ื–ืจื” ืฉื’ื•ื™ื™ื.
  • ืชื•ืžืš ื‘ื”ืงืœื“ื” ื”ื“ืจื’ืชื™ืช ืœืื™ืžื•ืฅ ืžืฆื˜ื‘ืจ.
  • ืžื•ืชืื ืœืคืจื•ื™ืงื˜ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ ืขื ื‘ืกื™ืกื™ ืงื•ื“ ื ืจื—ื‘ื™ื.
  • ืžืกืคืง ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—.
  • ืžืฉืชืœื‘ ืขื ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ CI/CD ืœืื™ืžื•ืช ืกื•ื’ ืžืชืžืฉืš.

ืืชื’ืจื™ื ื•ืฉื™ืงื•ืœื™ื

ื‘ืขื•ื“ ืฉ-Pyre ื™ืขื™ืœื” ืžืื•ื“, ื”ื™ื ื“ื•ืจืฉืช ืžื”ืžืคืชื—ื™ื ืœื”ื•ืกื™ืฃ ื”ืขืจื•ืช ืกื•ื’, ืžื” ืฉืขืฉื•ื™ ืœืฆืจื•ืš ื–ืžืŸ ืจื‘ ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืงื™ื™ืžื™ื ืœืœื ืจืžื–ื™ื ืœืกื•ื’. ื”ืื›ื™ืคื” ื”ืงืคื“ื ื™ืช ืฉืœื” ืขืฉื•ื™ื” ืœื“ืจื•ืฉ ืžืืžืฆื™ ืขื™ื‘ื•ื“ ื ื•ืกืคื™ื.

Pyre ืžืชืžืงื“ืช ืืš ื•ืจืง ื‘ื‘ื“ื™ืงืช ืกื•ื’ื™ื ื•ืื™ื ื” ืžื ืชื—ืช ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืื• ืื•ื›ืคืช ื›ืœืœื™ ืกื’ื ื•ืŸ. ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืžืฉื•ืœื‘ ืขื linters ื•ื›ืœื™ ืื‘ื˜ื—ื” ืขื‘ื•ืจ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืงื™ืฃ ื™ื•ืชืจ.

Autoflake

Autoflake ื”ื•ื ื›ืœื™ ืงืœ ืžืฉืงืœ ืœื”ืกืจื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ื™ื™ื‘ื•ื โ€‹โ€‹ื•ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ื‘ืงื•ื“ Python. ื–ื” ืขื•ื–ืจ ืœื™ื™ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ืขืœ ื™ื“ื™ ื ื™ืงื•ื™ ืืœืžื ื˜ื™ื ืžื™ื•ืชืจื™ื, ืฉื™ืคื•ืจ ื™ื›ื•ืœืช ื”ืชื—ื–ื•ืงื” ื•ื”ืงืจื™ืื”.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžืกื™ืจ ืื•ื˜ื•ืžื˜ื™ืช ื™ื‘ื•ื ื•ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ.
  • ืžืฉืคืจ ืืช ื ื™ืงื™ื•ืŸ ื”ืงื•ื“ ืžื‘ืœื™ ืœืฉื ื•ืช ืืช ื”ื”ื™ื’ื™ื•ืŸ.
  • ืขื•ื‘ื“ ื”ื™ื˜ื‘ ืขื ืคื•ืจืžื˜ื™ื ื›ืžื• Black ื•- isort.
  • ืงืœ ืžืฉืงืœ ื•ื™ืขื™ืœ ืœื ื™ืงื•ื™ ืงื•ื“ ืžื”ื™ืจ.
  • ืชื•ืžืš ื‘ื•ื•ื™ื ืžืจืืฉ ืœืื›ื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช.
  • ืžืฉืชืœื‘ ืขื ืฆื™ื ื•ืจื•ืช CI/CD ืœื ื™ืงื•ื™ ืขืงื‘ื™.

ืื–ื•ืจื™ื ืœื—ื™ื“ื•ื“

Autoflake ืžืชืžืงื“ ื‘ื”ืกืจืช ืืœืžื ื˜ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ืืš ืื™ื ื• ืžื‘ืฆืข ืื™ืžื•ืช ืชื—ื‘ื™ืจ, ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืื• ื ื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช. ืžืคืชื—ื™ื ืฆืจื™ื›ื™ื ืœื”ืฉืชืžืฉ ื‘ื• ืœืฆื“ linters ืžืกื•ืจืชื™ื™ื.

ื‘ืžืงืจื™ื ืžืกื•ื™ืžื™ื, ื”ื•ื ืขืฉื•ื™ ืœื”ืกื™ืจ ื™ื‘ื•ื ืฉืืœื™ื• ืžืชื™ื™ื—ืกื™ื ื‘ืื•ืคืŸ ื“ื™ื ืžื™, ื”ืžื—ื™ื™ื‘ ื‘ื“ื™ืงื” ื™ื“ื ื™ืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืืช ื ื›ื•ื ื•ืชื.

Bento

Bento ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืงืœ ืžืฉืงืœ ื•ืžืžื•ืงื“ ืื‘ื˜ื—ื” ืฉื ื•ืขื“ ืœืขื–ื•ืจ ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื•ื‘ืขื™ื•ืช ืื™ื›ื•ืช ืงื•ื“ ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Python. ื”ื•ื ืžืกืคืง ืžืฉื•ื‘ ืžื”ื™ืจ ืขืœ ืกื™ื›ื•ื ื™ ืื‘ื˜ื—ื”, ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ื•ื“ืื’ื•ืช ืœืชื—ื–ื•ืงื”, ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืžื•ื“ืจื ื™ื™ื ืฉืœ ืคื™ืชื•ื—. Bento ืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืฉืžืชืขื“ืคื™ื ืื‘ื˜ื—ื” ื•ื™ืขื™ืœื•ืช, ื•ืžื‘ื˜ื™ื—ื™ื ืฉื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืžื–ื•ื”ื•ืช ื‘ืฉืœื‘ ืžื•ืงื“ื ื‘ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ืคื™ืชื•ื— ื”ืชื•ื›ื ื”.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช

  • ืžื–ื”ื” ืคืจืฆื•ืช ืื‘ื˜ื—ื”, ื›ื•ืœืœ ื”ื–ืจืงืช SQL ื•ื˜ื™ืคื•ืœ ื‘ื ืชื•ื ื™ื ืœื ืžืื•ื‘ื˜ื—.
  • ืžื‘ืฆืข ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขื‘ื•ืจ ื˜ืขื•ื™ื•ืช ืงื™ื“ื•ื“ ื ืคื•ืฆื•ืช ื•ื‘ืขื™ื•ืช ืชื—ื–ื•ืงื”.
  • ืขื•ื‘ื“ ืžื—ื•ืฅ ืœืงื•ืคืกื” ืขื ืชืฆื•ืจื” ืžื™ื ื™ืžืœื™ืช ืœืื™ืžื•ืฅ ืžื”ื™ืจ.
  • ืžืฉืชืœื‘ ืขื GitHub, GitLab ื•-Bitbucket ืœื ื™ืชื•ื— ื‘ืงืจืช ื’ืจืกืื•ืช ื—ืœืงื”.
  • ืขื•ืฆื‘ ืœืžื”ื™ืจื•ืช, ืžืกืคืง ืžืฉื•ื‘ ื›ืžืขื˜ ืžื™ื™ื“ื™ ืžื‘ืœื™ ืœื”ืื˜ ืืช ื”ืคื™ืชื•ื—.
  • ืชื•ืžืš ื‘ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื‘ืฆื™ื ื•ืจื•ืช CI/CD ื›ื“ื™ ืœืื›ื•ืฃ ืชืงื ื™ ืื‘ื˜ื—ื” ื•ืื™ื›ื•ืช ืงื•ื“.

ืฉื™ืงื•ืœื™ื ื•ืืชื’ืจื™ื

ื‘ืขื•ื“ ืฉื‘ื ื˜ื• ื™ืขื™ืœื” ืœื ื™ืชื•ื— ืื‘ื˜ื—ื” ื•ืื™ื›ื•ืช ืงื•ื“, ื”ื™ื ืื™ื ื” ืžืกืคืงืช ืคืจื•ืคื™ืœ ื‘ื™ืฆื•ืขื™ื ืขืžื•ืง ืื• ื”ืขืจื›ื•ืช ืžื•ืจื›ื‘ื•ืช. ื™ื™ืชื›ืŸ ืฉืฆื•ื•ืชื™ื ื”ืžื—ืคืฉื™ื ื›ื™ืกื•ื™ ืžืœื ืฉืœ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืฆื˜ืจื›ื• ืœืฉื™ื™ืš ืื•ืชื• ืœื›ืœื™ื ื›ืžื• ืจืื“ื•ืŸ ืœื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ืื• Mypy ืœืื™ืžื•ืช ืกื•ื’.

ื‘ื ื•ืกืฃ, ื”ืืคืงื˜ื™ื‘ื™ื•ืช ืฉืœ Bento ืชืœื•ื™ื” ื‘ืขืจื›ื•ืช ื›ืœืœื™ ืื‘ื˜ื—ื” ื”ืžืชืขื“ื›ื ื•ืช ื‘ืื•ืคืŸ ืงื‘ื•ืข. ืœืœื ืขื“ื›ื•ื ื™ื ืชื›ื•ืคื™ื, ื™ื™ืชื›ืŸ ืฉื”ื•ื ืœื ื™ื–ื”ื” ืื™ื•ืžื™ ืื‘ื˜ื—ื” ื—ื“ืฉื™ื, ืžื” ืฉืžื—ื™ื™ื‘ ืžืคืชื—ื™ื ืœื”ื™ืฉืืจ ืคืจื•ืืงื˜ื™ื‘ื™ื™ื ื‘ืžืขืงื‘ ืื—ืจ ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืžืชืคืชื—ื•ืช.

ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘ื›ืœื™ื ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘-Python

ื–ื™ื”ื•ื™ ื‘ืื’ื™ื ื•ืจื™ื—ื•ืช ืงื•ื“ ืžื•ืงื“ื

ืื—ื“ ื”ื™ืชืจื•ื ื•ืช ื”ืžืฉืžืขื•ืชื™ื™ื ื‘ื™ื•ืชืจ ืฉืœ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื”ื•ื ื”ื™ื›ื•ืœืช ืฉืœื• ืœื–ื”ื•ืช ื‘ืื’ื™ื ื•ืจื™ื—ื•ืช ืงื•ื“ ืœืคื ื™ ื‘ื™ืฆื•ืข ื”ืงื•ื“. ื‘ื ื™ื’ื•ื“ ืœื ื™ืชื•ื— ื“ื™ื ืžื™, ื”ื“ื•ืจืฉ ื”ืคืขืœืช ื”ืชื•ื›ื ื™ืช, ื ื™ืชื•ื— ืกื˜ื˜ื™ ืกื•ืจืง ืืช ืงื•ื“ ื”ืžืงื•ืจ ื•ืžื–ื”ื” ืฉื’ื™ืื•ืช ืœื•ื’ื™ื•ืช, ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ื•ืœื•ืœืื•ืช ืœื ื™ืขื™ืœื•ืช. ื‘ืขื™ื•ืช ืืœื•, ืื ืœื ื™ื–ื•ื”ื•, ืขืœื•ืœื•ืช ืœื”ื•ื‘ื™ืœ ืœื›ืฉืœื™ื ื‘ื–ืžืŸ ืจื™ืฆื”, ืกื™ื›ื•ื ื™ ืื‘ื˜ื—ื” ื•ื–ืžืŸ ื ื™ืคื•ื™ ืžื•ื’ื‘ืจ.

ืœื“ื•ื’ืžื”, ืฉืงื•ืœ ืืช ืคื•ื ืงืฆื™ื™ืช Python ืฉืžื—ืฉื‘ืช ืกื›ื•ื ืฉืœ ืจืฉื™ืžื” ืืš ืžื›ื™ืœื” ืฉื’ื™ืืช ืœื•ื’ื™ืงื” ืขื“ื™ื ื”:


def sum_list(numbers):
    total = 0
    for num in numbers:
        total = num  # Incorrectly reassigning instead of adding
    return total

print(sum_list([1, 2, 3, 4]))  # Output: 4 instead of 10

ื›ืœื™ ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื™ืกืžืŸ ื‘ืขื™ื” ื–ื• ื›ืฉื’ื™ืื” ืœื•ื’ื™ืช, ืžื” ืฉืžืฆื™ืข ืฉื”ืžืคืชื— ืฆืจื™ืš ืœื”ืฉืชืžืฉ total += num ื‘ืžืงื•ื total = num. ื–ื™ื”ื•ื™ ืžื•ืงื“ื ื–ื” ืžื•ื ืข ื›ืฉืœื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ืฉืœ ื™ื™ืฉื•ืžื™ื ื•ืžืฆืžืฆื ืืช ื–ืžืŸ ืื™ืชื•ืจ ื”ื‘ืื’ื™ื ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™.

ื‘ืขื™ื” ื ืคื•ืฆื” ื ื•ืกืคืช ื”ื™ื ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ, ืฉืขืœื•ืœื™ื ืœื”ืขืžื™ืก ืืช ื”ืงื•ื“ ื•ืœื”ื•ื‘ื™ืœ ืœื‘ืœื‘ื•ืœ:


def calculate_area(radius):
    pi = 3.14
    unused_var = 10  # This variable serves no purpose
    return pi * radius * radius

ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ื–ื”ื™ืจ ืขืœ unused_var, ืขื•ื–ืจ ืœืฉืžื•ืจ ืขืœ ืงื•ื“ ื ืงื™ ื•ื™ืขื™ืœ. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื‘ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืคื™ืชื•ื—, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื›ืชื•ื‘ ื™ื™ืฉื•ืžื™ Python ืืžื™ื ื™ื ื™ื•ืชืจ, ืื•ืคื˜ื™ืžืœื™ื™ื ื•ืœืœื ื‘ืื’ื™ื.

ืฉืคืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ืงื•ื“ ื•ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ

ื”ื‘ื ื” ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžื•ืจื›ื‘ื•ืช ื”ื–ืžืŸ ื—ื™ื•ื ื™ืช ืœื›ืชื™ื‘ืช ื™ื™ืฉื•ืžื™ Python ื™ืขื™ืœื™ื. ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขื•ื–ืจ ืœื–ื”ื•ืช ืœื•ืœืื•ืช ืœื ื™ืขื™ืœื•ืช, ืฉื™ื—ื•ืช ืจืงื•ืจืกื™ื‘ื™ื•ืช ืžื™ื•ืชืจื•ืช ื•ื—ื™ืฉื•ื‘ื™ื ืžื™ื•ืชืจื™ื, ื•ืžื‘ื˜ื™ื— ืฉืชื•ื›ื ื™ื•ืช ืคื•ืขืœื•ืช ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื›ื›ืœ ื”ืืคืฉืจ.

ืœื“ื•ื’ืžื”, ืฉืงื•ืœ ืคื•ื ืงืฆื™ื” ื”ื‘ื•ื“ืงืช ืื ืžืกืคืจ ื”ื•ื ืจืืฉื•ื ื™:


def is_prime(n):
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

ืคื•ื ืงืฆื™ื” ื–ื• ืคื•ืขืœืช ื‘ืžื•ืจื›ื‘ื•ืช ื–ืžืŸ O(n), ืฉืื™ื ื” ื™ืขื™ืœื” ืขื‘ื•ืจ ืžืกืคืจื™ื ื’ื“ื•ืœื™ื. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืฆื™ืข ืœื™ื™ืขืœ ืื•ืชื• ืœืžื•ืจื›ื‘ื•ืช ื–ืžืŸ O(โˆšn) ื‘ืืžืฆืขื•ืช:


import math

def is_prime_optimized(n):
    if n < 2:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

ืขืœ ื™ื“ื™ ื”ืคื—ืชืช ืžืกืคืจ ื”ืื™ื˜ืจืฆื™ื•ืช, ื”ืคื•ื ืงืฆื™ื” ื”ื•ืคื›ืช ืœืžื”ื™ืจื” ืžืฉืžืขื•ืชื™ืช ืขื‘ื•ืจ ืขืจื›ื™ื ื’ื“ื•ืœื™ื ืฉืœ n.

ื“ื•ื’ืžื” ื ื•ืกืคืช ื›ื•ืœืœืช ื—ื™ืฉื•ื‘ื™ื ืžื™ื•ืชืจื™ื ื‘ืœื•ืœืื•ืช:


def inefficient_function(numbers):
    for num in numbers:
        squared = num ** 2
        print(squared)

If squared ืžื—ื•ืฉื‘ ืžืกืคืจ ืคืขืžื™ื ื‘ืชื•ืš ืœื•ืœืื”, ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืชื›ืœื•ืœ ืื—ืกื•ืŸ ื”ืขืจื›ื™ื ื‘ืžืงื•ื ื—ื™ืฉื•ื‘ื ืžื—ื“ืฉ ื‘ื›ืœ ืื™ื˜ืจืฆื™ื”. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžื–ื”ื™ื ื—ื•ืกืจ ื™ืขื™ืœื•ืช ื›ืืœื” ื•ืžืžืœื™ืฆื™ื ืขืœ ืฉื™ืคื•ืจื™ ื‘ื™ืฆื•ืขื™ื.

ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ืช ืื‘ื˜ื—ื”

ืื‘ื˜ื—ื” ื”ื™ื ืขื ื™ื™ืŸ ืงืจื™ื˜ื™ ื‘ืคื™ืชื•ื— ืชื•ื›ื ื”, ื•ื™ื™ืฉื•ืžื™ Python ืื™ื ื ื™ื•ืฆืื™ ื“ื•ืคืŸ. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขื•ื–ืจื™ื ืœื–ื”ื•ืช ืคืจืฆื•ืช ืื‘ื˜ื—ื” ืœืคื ื™ ืคืจื™ืกืช ืืคืœื™ืงืฆื™ื”, ื•ืžื•ื ืขื™ื ื“ืœื™ืคื•ืช ื ืชื•ื ื™ื, ื”ืชืงืคื•ืช ื”ื–ืจืงื” ื•ื’ื™ืฉื” ืœื ืžื•ืจืฉื™ืช.

ืœื™ืงื•ื™ ืื‘ื˜ื—ื” ื ืคื•ืฅ ืื—ื“ ื”ื•ื ืื™ืฉื•ืจื™ื ืžืงื•ื“ื“ื™ื:


DB_PASSWORD = "supersecret123"  # Hardcoded password (security risk)

ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืกืžืŸ ื‘ืขื™ื•ืช ื›ืืœื”, ื•ืžืขื•ื“ื“ ืžืคืชื—ื™ื ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื‘ืžืงื•ื ื–ืืช:


import os

DB_PASSWORD = os.getenv("DB_PASSWORD")  # Secure way to retrieve passwords

ืกื™ื›ื•ืŸ ืื‘ื˜ื—ื” ืชื›ื•ืฃ ื ื•ืกืฃ ื›ืจื•ืš ื‘ืงืœื˜ ืžืฉืชืžืฉ ืœื ืžื—ื•ื˜ื, ืฉืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœื”ืชืงืคื•ืช ื”ื–ืจืงืช SQL:


def get_user_data(user_id):
    query = f"SELECT * FROM users WHERE id = {user_id}"  # SQL Injection risk
    return execute_query(query)

ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ื–ื”ื” ืืช ื”ืกื™ื›ื•ืŸ ื”ืคื•ื˜ื ืฆื™ืืœื™ ืœื”ื–ืจืงืช SQL ื•ื™ืฆื™ืข ืœื”ืฉืชืžืฉ ื‘ืฉืื™ืœืชื•ืช ืขื ืคืจืžื˜ืจื™ื:


def get_user_data_secure(user_id):
    query = "SELECT * FROM users WHERE id = %s"
    return execute_query(query, (user_id,))

ืฉืคืจ ืืช ืชื—ื–ื•ืงื” ื•ืงืจื™ืื•ืช ื”ืงื•ื“

ื›ืชื™ื‘ืช ืงื•ื“ ื ืงื™, ืงืจื™ื ื•ื ื™ืชืŸ ืœืชื—ื–ื•ืงื” ื—ื™ื•ื ื™ืช ืœื”ืฆืœื—ืช ื”ืคืจื•ื™ืงื˜ ืœื˜ื•ื•ื— ืืจื•ืš. ื›ื›ืœ ืฉืคืจื•ื™ืงื˜ื™ื ื’ื“ืœื™ื, ื‘ืกื™ืกื™ ืงื•ื“ ืžื‘ื•ืœื’ื ื™ื ื”ื•ืคื›ื™ื ืœืงืฉื™ื ืœื ื™ืคื•ื™ ื‘ืื’ื™ื, ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื•ื”ืจื—ื‘ื”. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืื•ื›ืคื™ื ืชืงื ื™ ืงื™ื“ื•ื“, ืชื™ืขื•ื“ ืžืชืื™ื ื•ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช, ื•ืžื‘ื˜ื™ื—ื™ื ืฉืžืคืชื—ื™ื ืคื•ืขืœื™ื ืœืคื™ ื”ื ื—ื™ื•ืช ื›ื’ื•ืŸ PEP 8.

ืฉืงื•ืœ ืคื•ื ืงืฆื™ื™ืช Python ื‘ืคื•ืจืžื˜ ื’ืจื•ืข:


def add_numbers(a,b):return a+b

ืคื•ื ืงืฆื™ื” ื–ื• ื—ืกืจื” ืžืจื•ื•ื—ื™ื ื•ืงืจื™ืื•ืช ื ืื•ืชื™ื. ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืžืœื™ืฅ:


def add_numbers(a, b):
    return a + b  # Improved readability

ื”ืคื—ืชืช ื—ื•ื‘ ื˜ื›ื ื™

ื—ื•ื‘ ื˜ื›ื ื™ ืžืฆื˜ื‘ืจ ื›ืืฉืจ ืžืคืชื—ื™ื ื ื•ืชื ื™ื ืขื“ื™ืคื•ืช ืœืชื™ืงื•ื ื™ื ืžื”ื™ืจื™ื ืขืœ ืคื ื™ ืžื‘ื ื” ืงื•ื“ ืชืงื™ืŸ, ืžื” ืฉืžื•ื‘ื™ืœ ืœื‘ืกื™ืกื™ ืงื•ื“ ืœื ื™ืขื™ืœื™ื ื•ืงืฉื™ื ืœืชื—ื–ื•ืงื”. ืขื ื”ื–ืžืŸ, ื–ื” ืžืื˜ ืืช ื”ืคื™ืชื•ื—, ืžื’ื‘ื™ืจ ืืช ืžื•ืคืขื™ ื”ื‘ืื’ื™ื ื•ื”ื•ืคืš ืืช ื”ืฉื™ืคื•ืจื™ื ื”ืขืชื™ื“ื™ื™ื ืœื™ืงืจื™ื ื™ื•ืชืจ.

ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขื•ื–ืจื™ื ืœื–ื”ื•ืช ืงื•ื“ ืžื™ื•ืชืจ, ืžื™ื•ืฉืŸ ื•ืœื ื™ืขื™ืœ, ื•ืžืคื—ื™ืชื™ื ืืช ื”ื—ื•ื‘ ื”ื˜ื›ื ื™ ืœืคื ื™ ืฉื”ื•ื ื”ื•ืคืš ืœื‘ืœืชื™ ื ื™ืชืŸ ืœื ื™ื”ื•ืœ. ืฉืงื•ืœ ืืช ื”ื“ื•ื’ืžื” ื”ื‘ืื”:


def calculate_discount(price, discount):
    if discount > 0:
        new_price = price - (price * discount / 100)
        return new_price
    else:
        return price

ื”ื ื” ื” else ื”ืฆื”ืจื” ืžื™ื•ืชืจืช, ืžื” ืฉื”ื•ืคืš ืืช ื”ืงื•ื“ ืœืงืฉื” ื™ื•ืชืจ ืœืงืจื™ืื”. ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืฆื™ืข ืœืคืฉื˜ ืื•ืชื•:


def calculate_discount(price, discount):
    if discount > 0:
        return price - (price * discount / 100)
    return price

ื›ื™ืฆื“ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืกื™ื™ืข ื‘ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ

ืื™ืชื•ืจ ื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ ื‘ืคื™ื™ืชื•ืŸ

ื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ ื‘-Python ื™ื›ื•ืœื•ืช ืœืคื’ื•ืข ื‘ื‘ื™ืฆื•ืขื™ื ืœืื•ืจืš ื–ืžืŸ, ื‘ืžื™ื•ื—ื“ ื‘ื™ื™ืฉื•ืžื™ื ืืจื•ื›ื™ ื˜ื•ื•ื—. ื‘ืขื•ื“ ืฉ-Python ืžืฉืชืžืฉ ื‘ืื™ืกื•ืฃ ืืฉืคื” ืื•ื˜ื•ืžื˜ื™, ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ืœื ื ื›ื•ืŸ ืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืžื•ื’ื–ืžืช. ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขื•ื–ืจื™ื ืœื–ื”ื•ืช ื”ืงืฆืื•ืช ื–ื™ื›ืจื•ืŸ ืฉืื™ื ืŸ ื‘ืฉื™ืžื•ืฉ, ื”ืคื ื™ื•ืช ืžืขื’ืœื™ื•ืช ื•ื˜ื™ืคื•ืœ ืœื ื™ืขื™ืœ ื‘ืื•ื‘ื™ื™ืงื˜ื™ื ืœืคื ื™ ืฉื”ื ื’ื•ืจืžื™ื ืœื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื.

ืฉืงื•ืœ ืืช ื”ื“ื•ื’ืžื” ื”ื‘ืื” ืฉื‘ื” ืื•ื‘ื™ื™ืงื˜ ื ืฉืืจ ื‘ื”ืชื™ื™ื—ืกื•ืช, ืžื” ืฉื’ื•ืจื ืœื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ:


class MemoryLeakExample:
    def __init__(self):
        self.data = [x for x in range(1000000)]  # Large list allocation

leak = MemoryLeakExample()
# The object is not explicitly deleted, leading to high memory usage

ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืกืžืŸ ืืช ื”ืื•ื‘ื™ื™ืงื˜ ื›ืื™ืœื• ืœื ืžืฉืชื—ืจืจ, ืžื” ืฉืžืฆื™ืข ืžื—ื™ืงื” ืžืคื•ืจืฉืช:


del leak  # Explicitly deleting the object to free memory

ืกื™ื‘ื” ืฉื›ื™ื—ื” ื ื•ืกืคืช ืœื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ ื”ื™ื ื”ืคื ื™ื•ืช ืžืขื’ืœื™ื•ืช. ื›ืืฉืจ ืฉื ื™ ืื•ื‘ื™ื™ืงื˜ื™ื ืžืชื™ื™ื—ืกื™ื ื–ื” ืœื–ื”, ืืกืคืŸ ื”ืืฉืคื” ืฉืœ ืคื™ื™ืชื•ืŸ ืขืœื•ืœ ืœื ืœืฉื—ืจืจ ืื•ืชื:


class A:
    def __init__(self):
        self.ref = B(self)  # Circular reference

class B:
    def __init__(self, obj):
        self.ref = obj

a = A()

ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžื–ื”ื™ื ื“ืคื•ืกื™ื ื›ืืœื” ื•ืžืฆื™ืขื™ื ืœื”ืฉืชืžืฉ ื‘ื”ื weakref ืœืฉื‘ื•ืจ ืืช ื”ืžืขื’ืœ:


import weakref

class A:
    def __init__(self):
        self.ref = weakref.ref(B(self))  # Using weak references

class B:
    def __init__(self, obj):
        self.ref = obj

ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืžื•ืงื“ื ืฉืœ ื‘ืขื™ื•ืช ื›ืืœื”, ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžื‘ื˜ื™ื— ืืช ื™ื™ืฉื•ืžื™ Python ืœื ื”ืœ ืืช ื”ื–ื™ื›ืจื•ืŸ ื‘ื™ืขื™ืœื•ืช ื•ืœื”ื™ืžื ืข ืžืคื’ื™ืขื” ืžื™ื•ืชืจืช ื‘ื‘ื™ืฆื•ืขื™ื.

ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ ื•ืžื—ื–ื•ืจ ื—ื™ื™ ืื•ื‘ื™ื™ืงื˜

ื™ืชืจื•ืŸ ืžืจื›ื–ื™ ื ื•ืกืฃ ืฉืœ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื”ื•ื ื–ื™ื”ื•ื™ ื”ืงืฆืื•ืช ืื•ื‘ื™ื™ืงื˜ื™ื ืžื™ื•ืชืจื•ืช ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืื•ืคืŸ ื”ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ. ื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ื™ื ืžื™ื•ืชืจืช ืขืœื•ืœื” ืœื”ืฉืคื™ืข ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืขืœ ื”ื‘ื™ืฆื•ืขื™ื, ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืขื•ืกืงื™ื ื‘ืžืขืจื›ื™ ื ืชื•ื ื™ื ื’ื“ื•ืœื™ื.

ืฉืงื•ืœ ืืช ื”ื’ื™ืฉื” ื”ืœื ื™ืขื™ืœื” ื”ื–ื•:


def process_data():
    data = [x for x in range(1000000)]  # Large list stored in memory
    return sum(data)

result = process_data()

ื”ืจืฉื™ืžื” ื›ื•ืœื” ื ืฉืžืจืช ื‘ื–ื™ื›ืจื•ืŸ, ื•ื–ื” ืžื™ื•ืชืจ ื›ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืจืง ืœื—ืฉื‘ ืืช ื”ืกื›ื•ื. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืฆื™ืข ืœื”ืฉืชืžืฉ ื‘- a ื’ื ืจื˜ื•ืจ ื›ื“ื™ ืœื™ื™ืขืœ ืืช ื”ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ:


def process_data():
    return sum(x for x in range(1000000))  # Generator expression (memory-efficient)

result = process_data()

ื‘ื ื•ืกืฃ, ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืกืžื ื™ื ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ื•ืžืฆื™ืขื™ื ื ื™ืงื•ื™ ื–ื™ื›ืจื•ืŸ ืžืคื•ืจืฉ. ืœื“ื•ื’ืžื”, ืฉืงื•ืœ ืžืงืจื” ืฉื‘ื• ืชื™ืง ื ืคืชื— ืืš ืœืขื•ืœื ืœื ื ืกื’ืจ:


def read_file():
    file = open("data.txt", "r")
    content = file.read()  # File remains open (memory leak)
    return content

ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืžืœื™ืฅ ืœื”ืฉืชืžืฉ ื‘ืžื ื”ืœ ื”ืงืฉืจ ื›ื“ื™ ืœืฉื—ืจืจ ืžืฉืื‘ื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™:


def read_file():
    with open("data.txt", "r") as file:
        return file.read()  # File closes automatically after reading

ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืืœื• ืžื‘ื˜ื™ื—ื•ืช ืฉืชื›ื ื™ื•ืช Python ืœื”ืฉืชืžืฉ ื‘ื–ื™ื›ืจื•ืŸ ื‘ื™ืขื™ืœื•ืช, ื”ืคื—ืชืช ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืžื™ื•ืชืจืช ื•ืฉื™ืคื•ืจ ื”ื‘ื™ืฆื•ืขื™ื.

ืžื ื™ืขืช ืฉืžื™ืจืช ื—ืคืฆื™ื ืžื™ื•ืชืจืช

ืื—ืช ืžื‘ืขื™ื•ืช ื”ื–ื™ื›ืจื•ืŸ ืฉื”ื›ื™ ืžืชืขืœืžื™ื ืžืžื ื• ื”ื™ื ืฉืžื™ืจืช ื—ืคืฆื™ื ืžื™ื•ืชืจืช, ืฉื‘ื• ื—ืคืฆื™ื ื ืฉืžืจื™ื ื‘ื–ื™ื›ืจื•ืŸ ื’ื ืœืื—ืจ ืฉื›ื‘ืจ ืื™ืŸ ื‘ื”ื ืฆื•ืจืš. ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืขื•ื–ืจ ืœื–ื”ื•ืช ืžืงืจื™ื ื›ืืœื” ื•ืžืžืœื™ืฅ ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช ืœืคื™ื ื•ื™ ื–ื™ื›ืจื•ืŸ.

ืœื“ื•ื’ืžื”, ืฉืงื•ืœ ืืช ื”ืคื•ื ืงืฆื™ื” ื”ื–ื• ืฉื‘ื” ืจืฉื™ืžื” ื’ืœื•ื‘ืœื™ืช ืžืžืฉื™ื›ื” ืœื’ื“ื•ืœ:


cached_data = []

def add_to_cache(data):
    cached_data.append(data)  # Data is continuously added but never removed

ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืกืžืŸ ื–ืืช ื›ื‘ืขื™ื™ืช ื–ื™ื›ืจื•ืŸ ืคื•ื˜ื ืฆื™ืืœื™ืช ื•ื™ืฆื™ืข ืœื”ืฉืชืžืฉ WeakSet ืื• ื ื™ื”ื•ืœ ืžืคื•ืจืฉ ืฉืœ ื’ื•ื“ืœ ื”ืžื˜ืžื•ืŸ:


from collections import deque

cached_data = deque(maxlen=100)  # Limits cache size to prevent excessive memory use

def add_to_cache(data):
    cached_data.append(data)

ื‘ืขื™ื” ื ืคื•ืฆื” ื ื•ืกืคืช ืžืชืขื•ืจืจืช ื›ืืฉืจ ืื•ื‘ื™ื™ืงื˜ื™ื ืžืื•ื—ืกื ื™ื ื‘ืจืฉื™ืžื•ืช ืืš ืœืขื•ืœื ืœื ืžื•ืกืจื™ื:


def store_objects():
    obj_list = []
    for _ in range(10000):
        obj_list.append(SomeObject())  # Objects accumulate without being cleared

ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืžืœื™ืฅ ืขืœ ื ื™ืงื•ื™ ืื• ื”ื’ื‘ืœืช ืฉื™ืžื•ืจ ืื•ื‘ื™ื™ืงื˜ ืžืขืช ืœืขืช:


def store_objects():
    obj_list = [SomeObject() for _ in range(1000)]  # Limited object retention

ืขืœ ื™ื“ื™ ื”ื‘ื˜ื—ืช ื”ืกืจืช ืื•ื‘ื™ื™ืงื˜ื™ื ื›ืืฉืจ ืื™ืŸ ื‘ื”ื ืขื•ื“ ืฆื•ืจืš, ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขื•ื–ืจื™ื ืœื™ื™ืฉื•ืžื™ Python ืœืžื–ืขืจ ื‘ื–ื‘ื•ื– ื–ื™ื›ืจื•ืŸ ื•ืœืจื•ืฅ ื‘ื™ืขื™ืœื•ืช ืœืื•ืจืš ื–ืžืŸ.

ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ื–ื™ื›ืจื•ืŸ ื•ืื™ืกื•ืฃ ืืฉืคื”

ืืกืคืŸ ื”ืืฉืคื” ื”ืžื•ื‘ื ื” ืฉืœ Python ืžื˜ืคืœ ื‘ื ื™ืงื•ื™ ื–ื™ื›ืจื•ืŸ, ืื‘ืœ ืงื•ื“ ืœื ื™ืขื™ืœ ื™ื›ื•ืœ ืœื”ืฆื™ืฃ ืืช ืื•ืกืฃ ื”ืืฉืคื”, ืžื” ืฉืžื•ื‘ื™ืœ ืœื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื. ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขื•ื–ืจื™ื ืœื–ื”ื•ืช ืžืงืจื™ื ืฉื‘ื”ื ืžืคืชื—ื™ื ื‘ื˜ืขื•ืช ืœื”ืฉื‘ื™ืช ืื• ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ืœืจืขื” ื‘ืื™ืกื•ืฃ ื”ืืฉืคื”.

ืฉืงื•ืœ ืืช ื”ืฉื™ืžื•ืฉ ื”ืœื ื™ืขื™ืœ ื”ื‘ื ื‘ืื™ืกื•ืฃ ืืฉืคื”:


import gc

gc.disable()  # Disabling garbage collection (bad practice)

ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื™ื–ื”ื™ืจ ื›ื™ ื”ืฉื‘ืชืช ืื™ืกื•ืฃ ื”ืืฉืคื” ืฆืจื™ื›ื” ืœื”ื™ืขืฉื•ืช ืจืง ื‘ ืชืจื—ื™ืฉื™ ื‘ื™ืฆื•ืข ืกืคืฆื™ืคื™ื™ื. ื‘ืžืงื•ื ื–ืืช, ื™ืฉ ืœืื›ื•ืฃ ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ื ื›ื•ืŸ ืขืœ ื™ื“ื™ ื”ื‘ื˜ื—ืช ืื•ื‘ื™ื™ืงื˜ื™ื ืžื—ื•ืฅ ืœืชื—ื•ื ื‘ืื•ืคืŸ ื˜ื‘ืขื™.

ื‘ืขื™ื” ื ืคื•ืฆื” ื ื•ืกืคืช ื”ื™ื ืื™ืกื•ืฃ ืืฉืคื” ื™ื“ื ื™ ืžื•ื’ื–ื:


import gc

def process_large_data():
    data = [x for x in range(1000000)]
    del data
    gc.collect()  # Unnecessary manual garbage collection call

ื ื™ืชื•ื— ืกื˜ื˜ื™ ื™ืžืœื™ืฅ ืœืชืช ืœืืกืคืŸ ื”ืืฉืคื” ืฉืœ Python ืœื˜ืคืœ ื‘ื ื™ืงื•ื™ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™:


def process_large_data():
    data = [x for x in range(1000000)]
    # No need for manual gc.collect(); Python will handle it

ืขืœ ื™ื“ื™ ืžื™ื ื•ืฃ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื”ื™ืžื ืข ืžื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ื™ื“ื ื™ ืžื™ื•ืชืจ ื•ืœื”ืกืชืžืš ืขืœ ืžืขืจื›ืช ืื™ืกื•ืฃ ื”ืืฉืคื” ื”ื™ืขื™ืœื” ืฉืœ Python ืœื‘ื™ืฆื•ืขื™ื ืžื™ื˜ื‘ื™ื™ื.

ืกื™ื›ื•ื

ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื”ื•ื ืคืจืงื˜ื™ืงื” ื‘ืกื™ืกื™ืช ืœื”ื‘ื˜ื—ืช ื”ืื™ื›ื•ืช, ื”ืื‘ื˜ื—ื” ื•ื”ื™ืขื™ืœื•ืช ืฉืœ ื™ื™ืฉื•ืžื™ Python. ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ื›ืœื™ื ืืœื” ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืฉืœ ืคื™ืชื•ื—, ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื–ื”ื•ืช ื‘ืื’ื™ื ื‘ืื•ืคืŸ ื™ื–ื•ื, ืœืื›ื•ืฃ ืชืงื ื™ ืงื™ื“ื•ื“ ื•ืœืžื˜ื‘ ืืช ื”ื‘ื™ืฆื•ืขื™ื ืœืคื ื™ ืฉื”ืงื•ื“ ืžื’ื™ืข ืœื™ื™ืฆื•ืจ. ืขื ื”ืžื•ืจื›ื‘ื•ืช ื”ื’ื•ื‘ืจืช ืฉืœ ืชื•ื›ื ื•ืช ืžื•ื“ืจื ื™ื•ืช, ื›ืœื™ื ืืœื• ืžืกืคืงื™ื ืชื•ื‘ื ื•ืช ืงืจื™ื˜ื™ื•ืช ื”ืžืกื™ื™ืขื•ืช ืœืžืคืชื—ื™ื ืœื›ืชื•ื‘ ืงื•ื“ ื ืงื™, ื‘ืจ ืชื—ื–ื•ืงื” ื•ื ื™ืชืŸ ืœื”ืจื—ื‘ื”. ื‘ื™ืŸ ืื ืžื–ื”ื™ื ืคืจืฆื•ืช ืื‘ื˜ื—ื”, ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ ืื• ืื›ื™ืคืช ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช, ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืžืœื ืชืคืงื™ื“ ืžืคืชื— ื‘ื”ืคื—ืชืช ื”ื—ื•ื‘ ื”ื˜ื›ื ื™ ื•ืฉื™ืคื•ืจ ืืžื™ื ื•ืช ื”ืชื•ื›ื ื” ื”ื›ื•ืœืœืช. ืืจื’ื•ื ื™ื ืฉืžืชืขื“ืคื™ื ื ื™ืชื•ื— ืกื˜ื˜ื™ ื ื”ื ื™ื ืžืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืžื•ื’ื‘ืจืช, ืคื—ื•ืช ืฉื’ื™ืื•ืช ื–ืžืŸ ืจื™ืฆื” ื•ืื‘ื˜ื—ื” ืžืฉื•ืคืจืช.

ื‘ื—ื™ืจืช ื›ืœื™ ื ื™ืชื•ื— ื”ืงื•ื“ ื”ืกื˜ื˜ื™ ื”ื ื›ื•ื ื™ื ืชืœื•ื™ื” ื‘ื“ืจื™ืฉื•ืช ื”ืคืจื•ื™ืงื˜ ื”ืกืคืฆื™ืคื™ื•ืช, ื”ื—ืœ ืžืื›ื™ืคืช ืชืงื ื™ ืขื™ืฆื•ื‘ ืžื—ืžื™ืจื™ื ืขื Black ื•ืขื“ ืœื–ื™ื”ื•ื™ ืกื™ื›ื•ื ื™ ืื‘ื˜ื—ื” ืขื Bandit ืื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื‘ื˜ื™ื—ื•ืช ื”ืกื•ื’ ืขื Mypy. ืฉื™ืœื•ื‘ ื›ืœื™ื ืžืจื•ื‘ื™ื ืžื‘ื˜ื™ื— ื ื™ืชื•ื— ืžืงื™ืฃ ื”ืžื›ืกื” ืื™ื›ื•ืช ืงื•ื“, ืื‘ื˜ื—ื” ื•ื‘ื™ืฆื•ืขื™ื. ืžื›ื™ื•ื•ืŸ ืฉ-Python ืžืžืฉื™ื›ื” ืœื”ื™ื•ืช ืฉืคื” ื“ื•ืžื™ื ื ื˜ื™ืช ืœืคื™ืชื•ื— ืชื•ื›ื ื”, ืื™ืžื•ืฅ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืœื ืจืง ืžื™ื™ืขืœ ืืช ื”ืคื™ืชื•ื— ืืœื ื’ื ืžื—ื–ืง ื™ื™ืฉื•ืžื™ื ืžืคื ื™ ืคื’ื™ืขื•ื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช. ืขืœ ื™ื“ื™ ื”ืคื™ื›ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ืœื—ืœืง ืžืจื›ื–ื™ ื‘ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ ื”ืชื•ื›ื ื”, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื‘ื ื•ืช ื™ื™ืฉื•ืžื™ Python ื—ื–ืงื™ื ื•ื‘ืขืœื™ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื”ืขื•ืžื“ื™ื ื‘ืชืงื ื™ ื”ืชืขืฉื™ื™ื” ื•ื™ืขื“ื™ื ืขืกืงื™ื™ื.