Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Kita pengin nuduhake pengalaman kita ngleksanakake platform SonarQube kanggo analisis terus-terusan lan pangukuran kualitas kode menyang proses pangembangan sistem DPO (tambahan kanggo depository Alameda lan sistem akuntansi kliring) saka National Settlement Depository.

Depository Penyelesaian Nasional (klompok perusahaan Moscow Exchange) minangka salah sawijining perusahaan kunci ing infrastruktur finansial, nyimpen lan nyathet sekuritase sing ngetokake sekuritas Rusia lan manca sing regane luwih saka 50 triliun rubel. Volume operasi sing saya tambah akeh sing ditindakake dening sistem, uga ekspansi fungsional sing terus-terusan, mbutuhake njaga kode sumber sistem sing berkualitas tinggi. Salah sawijining alat kanggo nggayuh tujuan kasebut yaiku analisa statis SonarQube. Ing artikel iki kita bakal njlèntrèhaké pengalaman sukses seamlessly ngleksanakake analisa statis SonarQube menyang pangolahan pembangunan ana departemen kita.

Sedhela babagan departemen

Kompetensi kita kalebu modul ing ngisor iki: pembayaran kanggo klien NSD, manajemen dokumen elektronik (EDF), pangolahan pesen repositori perdagangan (registrasi transaksi over-the-counter), saluran interaksi elektronik antarane klien lan NSD, lan liya-liyane. UmumΓ©, ana akeh karya sing kudu ditindakake ing sisih teknis kegiatan operasional. We bisa ing basis saka panjalukan. Aplikasi saka perwira operasi diproses dening analis: padha ngumpulake syarat pelanggan lan menehi wawasan babagan carane cocog karo program kasebut. Sabanjure yaiku skema standar: pangembangan kode - tes - operasi uji coba - pangiriman kode menyang sirkuit produksi menyang pelanggan langsung.

Kenapa SonarQube?

Iki minangka pengalaman pisanan departemen kita kanggo ngetrapake platform kanggo kontrol kualitas kode - sadurunge kita nindakake kanthi manual, mung nganakake tinjauan kode. Nanging volume kerja sing saya tambah mbutuhake otomatisasi proses iki. Kajaba iku, tim kasebut uga kalebu karyawan sing ora duwe pengalaman sing ora ngerti kabeh peraturan pangembangan internal lan cenderung nggawe luwih akeh kesalahan. Kanggo ngontrol kualitas kode, diputusake kanggo ngetrapake analisa statis. Wiwit SonarQube wis digunakake ing sawetara sistem NSD, ora ana pilihan sing dawa. Sadurunge, kolega saka departemen liyane digunakake kanggo nganalisa kode layanan mikro ing sistem Alameda (sistem akuntansi simpenan lan kliring NSD dhewe), ing CFT (sistem informasi kanggo njaga akuntansi, neraca, nyiapake laporan wajib lan internal), ing sawetara sistem liyane. Kanggo eksperimen, kita mutusake kanggo miwiti karo versi gratis SonarQube. Dadi ayo pindhah menyang kasus kita.

Proses implementasine

Kita duwe:

  • DΓ©wan sistem otomatis ing TeamCity;
  • proses upload kode liwat MergeRequest saka cabang fitur menyang cabang master ing GitLab wis dikonfigurasi (proses pangembangan miturut GitHub Flow);
  • SonarQube, diatur kanggo njelasno kode kanggo sistem DPO ing jadwal.

Tujuan kita: ngleksanakake analisis kode otomatis ing CI / pangolahan CD saka DPO.

Perlu ngatur: proses mriksa kode kanthi otomatis karo analyzer statis karo saben MergeRequest kanggo cabang utama.

Sing. Gambar target kaya ing ngisor iki: sanalika pangembang ngunggah owah-owahan menyang cabang fitur, mriksa otomatis kesalahan anyar ing kode diluncurake. Yen ora ana kesalahan, owah-owahan kasebut diijini ditampa, yen ora, kesalahan kasebut kudu didandani. Wis ing tataran dhisikan kita bisa kanggo ngenali nomer tartamtu saka kasalahan ing kode. Sistem kasebut nduweni setelan sing fleksibel banget: bisa dikonfigurasi kanthi cara sing bisa digunakake kanggo tugas khusus pangembang, kanggo saben sistem lan gaya pemrograman.

Nggawe QualityGate ing SonarQube

Analisis QualityGate minangka perkara sing kita waca ing jero Internet. Kaping pisanan, kita nggunakake pendekatan sing beda, luwih rumit lan, ing sawetara cara, ora sakabehe bener. Kaping pisanan, kita nglakokake pindai kaping pindho liwat SonarQube: kita mindhai cabang fitur lan cabang ing ngendi kita bakal nggabungake cabang fitur, banjur mbandhingake jumlah kesalahan. Cara iki ora stabil lan ora mesthi ngasilake asil sing bener. Banjur kita ngerti yen tinimbang mbukak SonarQube kaping pindho, kita bisa nyetel watesan ing jumlah kesalahan sing digawe (QualityGate) lan mung nganalisa cabang sing sampeyan upload lan mbandhingake.

Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Saiki kita isih nggunakake review kode sing rada primitif. Wigati dicathet yen SonarQube ora kompatibel karo sawetara basa pamrograman, kalebu Delphi. Saiki, kita mung nganalisa kode PLSql kanggo sistem kita.

Kerjane kaya iki:

  • Kita mung nganalisa kode PL/SQL kanggo proyek kita.
  • SonarQube wis QualityGate diatur supaya nomer kasalahan ora nambah karo commit a.
  • Jumlah kesalahan nalika diluncurake pisanan yaiku 229. Yen ana kesalahan liyane sajrone komitmen, mula ora diidini gabung.
  • Salajengipun, yen kesalahan didandani, bakal bisa ngatur ulang QualityGate.
  • Sampeyan uga bisa nambah TCTerms anyar kanggo analisis, contone, jangkoan kode karo tes, etc.

Skema kerja:

Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Komentar skrip nuduhake yen jumlah kesalahan ing cabang fitur durung tambah. Dadi kabeh iku OK.

Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Tombol Gabung kasedhiya.

Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Ing komentar saka script, sampeyan bisa ndeleng sing nomer kasalahan ing cabang fitur wis dadi luwih saka ditrima. Dadi kabeh BAD.

Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Tombol Gabung abang. Saiki, ora ana larangan kanggo ngunggah owah-owahan adhedhasar kode sing salah, nanging iki ditindakake miturut kawicaksanan pangembang sing tanggung jawab. Ing mangsa ngarep, sampeyan bisa nyegah komit kasebut ditambahake menyang cabang utama.

Kepiye carane kita ngetrapake SonarQube lan ngerteni potensial sing gedhe

Karya independen babagan kesalahan

Sabanjure, sampeyan kudu mriksa kabeh kesalahan sing dideteksi dening sistem, amarga SonarQube nganalisa miturut standar sing ketat. Apa sing dianggep minangka kesalahan bisa uga ora ana ing kode kita. Mula, sampeyan kudu mriksa lan nyathet manawa iki pancen salah, utawa ora perlu nyunting ing kahanan kita. Kanthi cara iki kita nyuda jumlah kesalahan. Sajrone wektu, sistem bakal sinau kanggo mangerteni nuansa kasebut.

Apa kita teka

Tujuan kita yaiku kanggo mangerteni apa luwih becik yen kita nransfer kode review menyang otomatisasi. Lan asil urip nganti pangarepan. SonarQube ngidini kita nggarap basa sing kita butuhake, nindakake analisis sing cukup kompeten, lan duweni potensi kanggo sinau saka tips pangembang. Sakabèhé, kita seneng karo pengalaman pisanan kita nggunakake SonarQube lan rencana kanggo berkembang luwih ing arah iki. Kita ngarepake yen ing mangsa ngarep kita bakal bisa ngirit luwih akeh wektu lan gaweyan ing review kode lan nggawe luwih apik kanthi ngilangi faktor manungsa. Mbok menawa ing proses kasebut, kita bakal nemokake kekurangan platform kasebut utawa, kosok balene, kita bakal yakin maneh yen iki minangka perkara sing apik banget kanthi potensial.

Ing artikel review iki kita ngomong babagan kenalan karo penganalisa statis SonarQube. Yen sampeyan duwe pitakon, tulis ing komentar. Yen sampeyan kasengsem ing topik iki, ing publikasi anyar kita bakal njlèntrèhaké luwih rinci carane nyetel kabeh munggah bener lan nulis kode kanggo nindakake mriksa kuwi.

Penulis teks: atanya

Source: www.habr.com

Add a comment