วันนี้ 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]
แสดงผลดังนี้
ถ้าต้องการแก้ไขกฎล่ะ ทำได้ไหม ?
ตอบได้เลยว่าได้
ทำได้ทั้งแก้ไข
ทำได้ทั้งยกเลิก
ทำได้ทั้งเพิ่มเข้าไปใหม่
ดังนั้นขอยกตัวอย่างการแก้ไข และ ยกเลิกกฎก็แล้วกัน
โดยให้ทำการสร้างไฟล์ชื่อว่า
.swiftlint.yml ขึ้นมา
แสดงดังตัวอย่าง
[gist id="2ed74df07ebbffa2f8fb9dbe8277d847" file=".swiftlint.yml"]
คำอธิบาย
- กำหนด path ที่ต้องการให้วิเคราะห์
- กำหนด path ที่ไม่ต้องการให้วิเคราะห์
- กำหนดความยาวในแต่ละบรรทัดต้องไม่เกิน 200 เนื่องจากปกติจะมีค่า 100
- กำหนดความยาวของ data type และ ตัวแปร
- กำหนดจำนวนบรรทัดของแต่ละไฟล์
ยังไม่พอนะ สามารถใช้งานใน XCode ได้อีกด้วย
ให้ทำการเพิ่ม Run Script ใน Build Phases ดังรูป
จากนั้นทำการ build project หรือ cmd + B
จะแสดงผลของการวิเคราะห์ code กันใน XCode ดังนี้
ปล. ยังสามารถนำ SwiftLint ไปตรวจสอบ code ทั้งเครื่องนักพัฒนาเอง
และในระบบ Continuous Integration ได้อีกด้วย
วันนี้ Swift developer ทำการตรวจสอบ code ที่เขียนกันหรือยัง
ว่า code มีรูปแบบเป็นไปตามที่ตกลงกันไว้หรือไม่ ?