
CleverTap 是一個多合一的客戶參與平臺,可統一人員、流程和技術之間的交互。CleverTap 為全球 10,000 多個應用程式提供支援,並幫助客戶留住使用者。該平臺支持通過各種管道進行大量定位和交付使用者訊息傳遞,由用戶行為分析和細分提供支援,提供針對即時規模設計和優化的即時體驗。
幾項行業領先的工程創新使這種互聯網規模的實時行銷自動化和用戶參與成為可能。一個典型的例子是 CleverTap 專有的 TesseractDB™,這是一個開創性的資料庫,專為用戶數據處理的速度、規模和深度而設計。憑藉 11 項正在申請的產品/技術專利,這項獨特的技術使品牌能夠在使用者分析中獲得無與倫比的深度和顆粒度,提供全面的 360 度客戶視圖。
CleverTap 希望將他們在代碼質量、測試和衛生方面的部落知識編纂成文。這是為了確保當他們僱用新工程師時,設置足夠的護欄。他們正在尋找一種工具來衡量他們的測試覆蓋率,併為他們的工程師建立他們使用的所有語言(包括 Java、JavaScript、Vue.JS、Objective-C 和 Swift)的代碼質量標準。
CleverTap 決定在其開發過程中採用靜態代碼分析,以提高其代碼的整體品質。他們使用 Bitbucket 作為代碼存儲庫,使用 IntelliJ 作為 IDE。在評估了他們的選項后,他們選擇了 SonarQube 作為他們的首選工具。
“當時,我們確實需要一個支援 Bitbucket 的工具,而 SonarQube 是為數不多的允許我們與之集成的代碼品質工具之一。回想起來,我們有點喜歡它。這正是我們所需要的。我們能夠實施良好實踐。我記得在使用 SonarQube 之前,我的很多代碼審查過去都太耗時了,指出到處都是瑣碎的代碼味道。SonarQube 為我們完成了所有這些工作,它大大減少了處理這些我們作為工程師認為理所當然的基本生活必需品的工作。它允許我們的實習生和新開發人員,尤其是那些剛開始使用Java編碼的開發人員,在有護欄的情況下以安全的方式進行開發。我們相信 SonarQube 會為我們完成這項工作,並確保我們編碼乾淨。
Jude Pereira – 首席建築師
此後,CleverTap 從 Bitbucket 遷移到 GitHub,他們的過渡是無縫的。SonarQube 與其主要構建工具 Maven 的整合用於管理和監控代碼測試覆蓋率。這是 Clean as You Code 方法的一個重要方面,他們一直在尋找這種方法來設置所需的代碼質量標準。
“總而言之,從代碼標準和品質的角度來看,我們立即發現了它的價值。在代碼審查期間手動捕獲的許多內容都消失了,我們可以更多地關注業務邏輯,而不是查看 SonarQube 現在為我們處理的小問題和常見問題。我們看到,每次合併都需要少一個 PR 審查週期,因為 Sonar 處理了所有與代碼相關的主要問題。
Jude Pereira – 首席建築師
CleverTap 在 SonarQube 中看到的價值是通過 CI 管道中的品質門強制執行代碼質量級別,並確保所需的代碼覆蓋率級別。SonarQube 提供了一份非常寶貴的簡明報告,說明了他們使用的語言編寫的代碼的整潔程度,並在所有專案中提供了統一的視圖。
“我們從 SonarQube 中獲得的價值是巨大的。我還沒有見過任何其他工具接近它或做任何類似的事情。如果我們把每個審核週期平均消耗大約 20 分鐘的審核時間,每周合併 50 個 PR,那麼使用 SonarQube 我們每周可以節省 16.6 小時。
Jude Pereira – 首席建築師
拉取請求 (PR) 裝飾對他們來說是最重要的,尤其是在將他們的專案從 Bitbucket 遷移到 GitHub 之後。CleverTap使用SonarQube與Maven和Jacoco的測試代碼覆蓋率集成來確定他們的基線覆蓋率,並在嘗試實現覆蓋率目標的同時監控他們的進度。
“當我們開始使用 Sonar 時,代碼覆蓋率為 40%。今天,在使用 SonarQube 大約四年後,我們已經覆蓋了超過 70% 的代碼。為了進一步提高這一水準,我們的品質門檻設置為85%。
Jude Pereira – 首席建築師
隨著時間的推移,CleverTap 意識到使用 SonarQube 的另一個意想不到的好處。他們的工程師更善於避免問題,並很快瞭解到他們使用的語言和庫的新進展。他們發現,SonarQube 中的「隨你編碼時學習」功能提高了開發人員的滿意度。
“SonarQube 可幫助開發人員生成代碼,隨著時間的推移,代碼中的錯誤會減少。與我們合作了很長時間的工程師知道如何主動修復代碼中的問題,因為SonarQube教會了我們。它幫助我們通過在適用的情況下使用 lambda 和流式操作,掌握了用 Java 表達代碼的更簡短的方法。由於 SonarQube 與所有最新的 Java 版本保持同步,因此它會告訴我們何時我們沒有做正確的事情或有更好的技術,甚至告訴我們什麼是首選的,什麼是不受歡迎的。隨著時間的推移,SonarQube 説明我們的工程師發現和學習新的語言功能。
Jude Pereira – 首席建築師