Sonar(Lint) for Android

Throwgether
TakoDigital
Published in
Jun 27, 2023

ถ้าพูดถึงการทำ Tech Standard หรือ code quality หลายๆคนอาจจะรู้จัก SonarQube

แล้วมันคืออะไร พี่แมวจะอธิบายภาพรวมคร่าวๆ

คุณภาพโค้ด ( code quality )

การเขียนโค้ดที่มีคุณภาพเป็นสิ่งที่สำคัญสำหรับการพัฒนาโปรแกรมขึ้นมาให้สมบรูณ์และมีประสิทธิภาพสูง นอกจากจะลดบัคแล้วยังทำให้โค้ดอ่านง่าย ง่ายต่อการพัฒนาต่อยอด และง่ายต่อการจัดการแก้ไข้อีกด้วย

เครื่องมือที่ช่วยในการตรวจสอบโค้ดแบบอัตโนมัติก็คือ SonarQube และ SonarLint ซึ่งจะใช้ควบคู่กัน

SonarQube ถือเป็น Application สำหรับการตรวจสอบคุณภาพของ Source Code ได้ในหลายๆแง่ ไม่ว่าจะเป็นตรวจสอบข้อผิดพลาด(Bugs) ค้นหาโค้ดที่แย่และซับซ้อน(Code Smells) ค้นหาช่องโหว่ต่างๆ (Vulnerabilities) และประมวลผลเป็นเปอร์เซ็นต์ให้เห็นในรูปแบบ report ซึ่งทำงานที่ฝั่ง server อีกทั้ง SonarQube ยังทำงานที่ฝั่ง server สามารถทำเป็น Centralize เก็บผลในการตรวจสอบจากเครื่องต่างๆได้อีกด้วย

https://docs.sonarqube.org/display/HOME/SonarQube+Platform

แต่นี้ยังไม่ใช่เป้าหมายของบทความนี้ เราไปว่ากันต่อด้วยเรื่อง

SonarLint

เป็นเครื่องมือที่ช่วยตรวจสอบโค้ดว่าเขียนเป็นไปตามมาตรฐานหรือไม่ และให้คำแนะนำให้แก้ไขให้เป็นไปตามรูปแบบมาตรฐาน ที่ฝั่ง client

ชวนชาวแอนดรอยมาลงลิ้นกัน

สามารถทำได้ง่ายๆ โดยใช้ Plugins ของ Android studio

ผลจากการติดตั้ง SonarLint จะช่วยตรวจสอบว่าโค้ดเราควรเขียนยังไง

สามารถตั้งค่า rule ได้ตามต้องการ (อย่าลืมตกลงร่วมกันกับคนในทีมน้าาา)

สามารถเชื่อม connection จาก sonar(Cloud/Qube)

Tips: uncheck “Automatically trigger analysis” เพราะมันจะรันตลอดเวลาที่อัพเดท code ทำให้เครื่องที่สเป็คต่ำช้าได้ (m1-m2 ก็ชิลๆไป)

สรุป

โคตรรรง่ายยย โคตรคูล SonarLint เหมาะกับโครงการที่มีการทำงานหลายคนเพราะใช้ควบคุม code quality ได้ตั้งแต่ต้นทางจนถึงปลายทาง และยังมีรองรับหลากหลายภาษาอีกด้วย ทำให้สามารถหยิบใช้ตัวเดียว และใช้ในหลายๆโปรเจ็คได้เลย
และยังติดตั้งได้ง่ายเพียงคลิ๊กเดียวเท่านั้นนน ไปลองงงงง

คำแนะนำจากแมวที่เคยใช้จริง … warning เพี๊ยบบบบ ซึ่งในบางกรณีเป็นไปได้ยากมากที่โครงการใหญ่ๆ จะแก้ไขได้หมด หรือในบาง Rule อาจจะแก้ไขไม่ได้เลย
ดังนั้น เราควรจะมีการตกลงร่วมกันภายในทีม สำหรับ rule ที่มีปัญหา และปิดมันไปซะ!!!

ref

https://docs.sonarqube.org/display/HOME/SonarQube+Platform
https://chalitta-c-k.medium.com/เขียนโค้ดแอนดรอยด์ให้มีคุณภาพยังไง-sonarqube-ช่วยคุณได้-c32f508ab45e
https://rules.sonarsource.com/kotlin

--

--

Throwgether
TakoDigital

เมื่อเด็กเกาะเบาะต้องลงมือ Dev เอง