swiftlint-13-638

วันนี้ Swift developer ทำการตรวจสอบรูปแบบของ source code กันหรือไม่ ?
มีข้อตกลงในการเขียน code ( Code convention ) หรือไม่ ?

ถ้ายังไม่มีขอแนะนำ SwiftLint
ซึ่งจะช่วยเหลือเรื่องดังกล่าวอย่างมาก
โดยอ้างอิงรูปแบบจาก Swift style guide
ดังนั้นมาดูการใช้งานกันนิดหน่อย

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

ติดตั้งผ่าน Homebrew ด้วยคำสั่ง

$brew install swiftlint

ทดสอบใช้งานผ่าน command line กันได้เลย
โดยใช้คำสั่ง

$swiftlint

จะทำการอ่านและวิเคราะห์ code ที่พัฒนาด้วยภาษา Swift ให้
โดยในบรรทันสุดท้ายจะมีการสรุปตัวเลข issue ต่าง ๆ
ที่ขัดแย้งก็กฏพื้นฐานของ SwiftLint
แสดงดังตัวอย่าง

Done linting! Found 8990 violations, 616 serious in 207 files.

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

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

$swiftlint autocorrect

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

สามารถดูด้วยคำสั่ง

$swiftlint rules

แสดงผลดังนี้

lint-01

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

ตอบได้เลยว่าได้
ทำได้ทั้งแก้ไข
ทำได้ทั้งยกเลิก
ทำได้ทั้งเพิ่มเข้าไปใหม่
ดังนั้นขอยกตัวอย่างการแก้ไข และ ยกเลิกกฎก็แล้วกัน
โดยให้ทำการสร้างไฟล์ชื่อว่า .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 มีรูปแบบเป็นไปตามที่ตกลงกันไว้หรือไม่ ?