Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

แนะนำการใช้งาน SwiftLint เพื่อตรวจสอบ code

$
0
0

swiftlint-13-638

swiftlint-13-638
วันนี้ Swift developer ทำการตรวจสอบรูปแบบของ source code กันหรือไม่ ? มีข้อตกลงในการเขียน code ( Code convention ) หรือไม่ ?
ถ้ายังไม่มีขอแนะนำ SwiftLint ซึ่งจะช่วยเหลือเรื่องดังกล่าวอย่างมาก โดยอ้างอิงรูปแบบจาก Swift style guide ดังนั้นมาดูการใช้งานกันนิดหน่อย

เริ่มด้วยการติดตั้ง

ติดตั้งผ่าน Homebrew ด้วยคำสั่ง [code] $brew install swiftlint [/code] ทดสอบใช้งานผ่าน command line กันได้เลย โดยใช้คำสั่ง [code] $swiftlint [/code] จะทำการอ่านและวิเคราะห์ code ที่พัฒนาด้วยภาษา Swift ให้ โดยในบรรทันสุดท้ายจะมีการสรุปตัวเลข issue ต่าง ๆ ที่ขัดแย้งก็กฏพื้นฐานของ SwiftLint แสดงดังตัวอย่าง [code] Done linting! Found 8990 violations, 616 serious in 207 files. [/code]

ถ้าพบว่าจำนวน issue เยอะก็ไม่ต้องตกใจอะไรมากนัก

เนื่องจากเป็นเรื่องปกตินะครับ (แต่ผมว่าไม่ปกตินะ !!) โดยบาง issue นั้นสามารถให้ SwiftLint ช่วยแก้ไขให้ได้ ด้วยคำสั่ง [code] $swiftlint autocorrect [/code]

ถ้าต้องการรู้ว่า SwiftLint มีกฎ หรือ rule อะไรบ้าง ?

สามารถดูด้วยคำสั่ง [code] $swiftlint rules [/code] แสดงผลดังนี้ lint-01

ถ้าต้องการแก้ไขกฎล่ะ ทำได้ไหม ?

ตอบได้เลยว่าได้ ทำได้ทั้งแก้ไข ทำได้ทั้งยกเลิก ทำได้ทั้งเพิ่มเข้าไปใหม่ ดังนั้นขอยกตัวอย่างการแก้ไข และ ยกเลิกกฎก็แล้วกัน โดยให้ทำการสร้างไฟล์ชื่อว่า .swiftlint.yml ขึ้นมา แสดงดังตัวอย่าง [gist id="2ed74df07ebbffa2f8fb9dbe8277d847" file=".swiftlint.yml"] คำอธิบาย
  • กำหนด path ที่ต้องการให้วิเคราะห์
  • กำหนด path ที่ไม่ต้องการให้วิเคราะห์
  • กำหนดความยาวในแต่ละบรรทัดต้องไม่เกิน 200 เนื่องจากปกติจะมีค่า 100
  • กำหนดความยาวของ data type และ ตัวแปร
  • กำหนดจำนวนบรรทัดของแต่ละไฟล์

ยังไม่พอนะ สามารถใช้งานใน XCode ได้อีกด้วย

ให้ทำการเพิ่ม Run Script ใน Build Phases ดังรูป lint-02 จากนั้นทำการ build project หรือ cmd + B จะแสดงผลของการวิเคราะห์ code กันใน XCode ดังนี้ lint-03 ปล. ยังสามารถนำ SwiftLint ไปตรวจสอบ code ทั้งเครื่องนักพัฒนาเอง และในระบบ Continuous Integration ได้อีกด้วย
วันนี้ Swift developer ทำการตรวจสอบ code ที่เขียนกันหรือยัง ว่า code มีรูปแบบเป็นไปตามที่ตกลงกันไว้หรือไม่ ?

Viewing all articles
Browse latest Browse all 1997

Trending Articles