
DLINT เป็นเครื่องมือในการส่งเสริมแนวทางปฏิบัติการเข้ารหัสที่ดีที่สุดและช่วยให้แน่ใจว่ารหัส Python ปลอดภัย
สิ่งที่สำคัญที่สุดที่ฉันได้ทำในฐานะโปรแกรมเมอร์ในช่วงไม่กี่ปีที่ผ่านมาคือการวิเคราะห์รหัสแบบคงที่อย่างจริงจัง มีค่ายิ่งกว่าข้อบกพร่องร้ายแรงหลายร้อยข้อที่ฉันป้องกันได้คือการเปลี่ยนแปลงในความคิดเกี่ยวกับวิธีที่ฉันดูความน่าเชื่อถือของซอฟต์แวร์และคุณภาพของรหัส
- John Carmack, 2011
เพื่อให้โครงการวิเคราะห์แบบคงที่เพื่อความสำเร็จนักพัฒนาจะต้องรู้สึกว่าพวกเขาได้รับประโยชน์และสนุกกับการใช้งาน
- บทเรียนจากการสร้างเครื่องมือวิเคราะห์แบบคงที่ที่ Google
สำหรับเอกสารและรายการกฎโปรดดูเอกสาร
$ python -m pip install dlintและตรวจสอบอีกครั้งว่ามีการติดตั้งอย่างถูกต้อง:
$ python -m flake8 -h
Usage: flake8 [options] file file ...
...
Installed plugins: dlint: 0.16.0, mccabe: 0.5.3, pycodestyle: 2.2.0, pyflakes: 1.3.0 หมายเหตุ dlint: 0.16.0
Dlint สร้างบน flake8 เพื่อดำเนินการผ้าสำลี สิ่งนี้ให้คุณสมบัติที่มีประโยชน์มากมายโดยไม่ต้องคิดค้นล้ออีกครั้ง
มาตรวจสอบง่ายๆ:
$ cat << EOF > test.py
print("TEST1")
exec('print("TEST2")')
EOF $ python test.py
TEST1
TEST2$ python -m flake8 --select=DUO test.py
test.py:2:1: DUO105 use of " exec " is insecure/docs/linters/DUO105.mdDUO ? Dlint ได้รับการพัฒนาโดยทีม Duo Labs --select=DUO Flag บอก flake8 ให้เรียกใช้กฎ Dlint Lint เท่านั้น
จากที่นี่เราสามารถเรียกใช้ dlint กับไดเรกทอรีของรหัส Python ได้อย่างง่ายดาย:
$ python -m flake8 --select=DUO /path/to/code หากต้องการปรับแต่งผ้าสำลีของคุณให้ลองใช้ความช่วยเหลือจาก flake8 :
$ python -m flake8 --helpผลลัพธ์ DLINT ยังสามารถรวมอยู่ในอินไลน์ในโปรแกรมแก้ไขของคุณเพื่อรับการตอบรับที่รวดเร็ว โดยทั่วไปจะต้องใช้ปลั๊กอินหรือส่วนขยาย นี่คือจุดเริ่มต้นสำหรับบรรณาธิการทั่วไป:
Dlint สามารถรวมเข้ากับท่อ CI ได้อย่างง่ายดายหรืออะไรก็ตาม
สำหรับข้อมูลเพิ่มเติมและตัวอย่างโปรดดูว่า 'ฉันจะรวม dlint เข้ากับ XYZ ได้อย่างไร'
ปลั๊กอินที่กำหนดเองของ Dlint ถูกสร้างขึ้นในการตั้งชื่ออย่างง่ายและพึ่งพาโมดูล Python ในการสร้างปลั๊กอิน DLINT ที่กำหนดเองให้ใช้อนุสัญญาต่อไปนี้:
dlint_plugin_Dlintdlint.linters.base.BaseLinterget_results อย่างเหมาะสมและสืบทอดจาก ast.NodeVisitorดูปลั๊กอินตัวอย่างสำหรับรายละเอียดเพิ่มเติม
ขั้นแรกให้ติดตั้งแพ็คเกจการพัฒนา:
$ python -m pip install -r requirements.txt
$ python -m pip install -r requirements-dev.txt
$ python -m pip install -e . $ pytest$ flake8$ pytest --cov$ pytest -k test_benchmark_run --benchmark-py-file /path/to/file.py tests/test_benchmark/หรือรับผลการวัดผล
$ pytest -k test_benchmark_individual --benchmark-py-file /path/to/file.py tests/test_benchmark/หรือเรียกใช้กับ linter เดียว:
$ pytest -k test_benchmark_individual[DUO138-BadReCatastrophicUseLinter] --benchmark-py-file /path/to/file.py tests/test_benchmark/