Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Kami hoyong bagikeun pangalaman urang pikeun ngalaksanakeun platform pikeun analisa kontinyu sareng pangukuran kualitas kode SonarQube kana prosés anu aya pikeun ngembangkeun sistem DPO (tambahan tina sistem akuntansi deposit sareng clearing Alameda) tina National Settlement Depository.

National Settlement Depository (Moscow Exchange Group of Companies) mangrupikeun salah sahiji perusahaan infrastruktur finansial konci anu nyimpen sareng ngarékam sekuritas penerbit Rusia sareng asing bernilai langkung ti 50 triliun rubles. Ngaronjatkeun volume operasi anu dilaksanakeun ku sistem, ogé paningkatan kontinyu dina fungsionalitas, peryogi ngajaga kualitas luhur kode sumber sistem. Salah sahiji alat pikeun ngahontal tujuan ieu nyaéta analisa statik SonarQube. Dina artikel ieu, urang ngajelaskeun pangalaman sukses seamlessly ngalaksanakeun analis statik SonarQube kana prosés ngembangkeun aya di departemen urang.

Sakeudeung ngeunaan jurusan

Kompetensi kami kalebet modul-modul ieu: pamayaran ka klien NSD, manajemén dokumén éléktronik (EDF), ngolah pesen gudang dagang (pendaptaran transaksi luar bursa), saluran interaksi éléktronik antara klien sareng NSD, sareng seueur deui. Sacara umum, lapisan badag gawé di sisi teknis operasi. Kami damel dumasar kana aplikasi. Aplikasi teller diolah ku analis: aranjeunna ngumpulkeun sarat palanggan sareng nampilkeun kami visi ngeunaan kumaha éta kedah cocog kana program éta. Salajengna, skéma standar: ngembangkeun kode - nguji - operasi percobaan - pangiriman kode ka sirkuit produktif ka konsumén langsung.

Naha SonarQube?

Ieu mangrupikeun pangalaman mimiti departemén kami dina ngalaksanakeun platform pikeun kontrol kualitas kode - sateuacana urang ngalakukeun éta sacara manual, ngan ukur ulasan kode. Tapi volume tumuwuhna gawé merlukeun automation tina prosés ieu. Sajaba ti éta, aya ogé pagawé inexperienced dina tim anu teu sagemblengna wawuh jeung peraturan ngembangkeun internal tur condong nyieun leuwih kasalahan. Pikeun ngadalikeun kualitas kode, éta mutuskeun pikeun nerapkeun hiji analyzer statik. Kusabab SonarQube parantos dianggo dina sababaraha sistem NSD, éta henteu lami milih. Saméméhna, kolega ti divisi séjén dipaké pikeun nganalisis kodeu microservices dina sistem Alameda (sistem akuntansi depository jeung clearing NSD sorangan), dina CFT (sistem informasi akuntansi, kasaimbangan, persiapan laporan wajib jeung internal), dina sababaraha séjén. sistem. Pikeun ékspérimén, kami mutuskeun pikeun ngamimitian sareng versi SonarQube gratis. Ku kituna hayu urang ngaléngkah ka kasus urang.

Prosés palaksanaan

Kami gaduh:

  • assembly otomatis tina sistem dina TeamCity;
  • nyetél prosés unggah kode via MergeRequest tina cabang fitur ka cabang master di GitLab (prosés pamekaran nurutkeun GitHub Flow);
  • SonarQube ngonpigurasi pikeun nganalisis kodeu pikeun sistem DPO on jadwal.

Tujuan urang: ngalaksanakeun analisis kode otomatis dina CI / prosés CD of AVE.

Perlu ngaropéa: prosés mariksa kodeu otomatis ku analyzer statik kalawan unggal MergeRequest ka cabang utama.

Jelema. gambar udagan nyaéta kieu: pas pamekar unggah parobahan cabang fitur, hiji dipariksa otomatis pikeun kasalahan anyar dina kode dimimitian. Upami teu aya kasalahan, maka parobihan diidinan ditampi, upami henteu kasalahanna kedah dilereskeun. Parantos dina tahap awal, kami tiasa ngaidentipikasi sababaraha kasalahan dina kode. Sistim nu boga setélan pisan fléksibel: eta bisa ngonpigurasi dina cara sapertos nu gawéna pikeun tugas husus tina pamekar, pikeun tiap sistem na gaya programming.

Ngonpigurasikeun QualityGate di SonarQube

Analisis QualityGate mangrupikeun hal anu urang baca dina jero Internét. Mimitina, kami nganggo pendekatan anu béda, langkung rumit sareng, dina sababaraha cara, henteu leres-leres leres. Kahiji, urang ngajalankeun scan ngaliwatan SonarQube dua kali: urang nyeken cabang fitur sarta cabang dimana urang bade ngagabung cabang fitur, lajeng urang ngabandingkeun jumlah kasalahan. Metoda ieu henteu stabil sareng henteu salawasna masihan hasil anu leres. Teras urang diajar yén tinimbang ngajalankeun SonarQube dua kali, anjeun tiasa nyetél wates jumlah kasalahan anu dilakukeun (QualityGate) sareng ngan ukur analisa cabang anu anjeun unggah sareng ngabandingkeun.

Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Pikeun ayeuna mah, urang masih ngagunakeun cek kode rada primitif. Ieu kudu dicatet yén SonarQube teu cocog sareng sababaraha basa programming, kaasup Delphi. Di momen, pikeun sistem urang, urang ngan analisa kode PLSql.

Gawéna sapertos kieu:

  • Urang nganalisis ngan PL / kode SQL pikeun proyék urang.
  • QualityGate dikonpigurasi dina SonarQube supados jumlah kasalahan henteu ningkat kalayan komitmen.
  • Jumlah kasalahan dina ngajalankeun kahiji éta 229. Lamun aya leuwih kasalahan salila commit, lajeng ngagabung teu diwenangkeun.
  • Salajengna, tunduk kana koreksi kasalahan, éta bakal tiasa ngonpigurasikeun QualityGate.
  • Anjeun oge bisa nambahkeun item anyar pikeun analisis, contona, sinyalna kode jeung tés, jsb.

Skéma gawé:

Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Dina koméntar naskah, anjeun tiasa ningali yén jumlah kasalahan dina cabang fitur henteu ningkat. Jadi sagalana OK.

Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Tombol Gabung janten sayogi.

Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Dina koméntar naskah, anjeun tiasa ningali yén jumlah kasalahan dina cabang fitur parantos langkung ti anu diidinan. Jadi sagalana BED.

Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Tombol Ngagabung beureum. Di momen, euweuh larangan unggah parobahan kode erroneous, tapi ieu dipigawé dina kawijaksanaan developer jawab. Dina mangsa nu bakal datang, anjeun bisa nyegah commits misalna tina dijieun kana cabang utama.

Kumaha urang ngalaksanakeun SonarQube sarta sadar poténsi hébat na

Ngurus diri ku bug

Salajengna, anjeun kedah mariksa sadaya kasalahan anu dideteksi ku sistem, sabab SonarQube nganalisa dumasar kana standar anu ketat. Naon anu anjeunna anggap kasalahan tiasa henteu janten salah dina kode urang. Ku alatan éta, anjeun kedah pariksa sareng perhatikeun naha ieu leres-leres kasalahan, atanapi naha henteu kedah diédit dina kaayaan urang. Ku kituna, urang ngurangan jumlah kasalahan. Kana waktu, sistem bakal diajar ngartos nuances ieu.

Naon geus kami datang ka

Tujuan kami nyaéta pikeun ngartos naha éta pantes dina kasus urang pikeun mindahkeun verifikasi kode ka otomatis. Jeung hasilna hirup nepi ka ekspektasi. SonarQube ngamungkinkeun urang damel sareng basa anu urang peryogikeun, ngalakukeun analisa anu cukup kompeten, sareng gaduh poténsi pikeun diajar tina tip pamekar. Sacara umum, kami gumbira sareng pangalaman munggaran urang sareng SonarQube sareng ngarencanakeun pikeun ngembangkeun langkung seueur arah ieu. Urang ngaharepkeun yén dina mangsa nu bakal datang urang bakal bisa ngahemat leuwih waktos jeung usaha dina review kode jeung nyieun hadé ku ngaleungitkeun faktor manusa. Panginten dina prosésna urang bakal mendakan kakurangan platform, atanapi, sabalikna, urang bakal mastikeun sakali deui yén ieu mangrupikeun hal anu saé kalayan poténsi anu hébat.

Dina artikel tinjauan ieu, urang ngobrol ngeunaan kenalan urang jeung analis statik SonarQube. Upami anjeun gaduh patarosan, mangga nyerat dina koméntar. Upami anjeun kabetot dina topik ieu, dina publikasi énggal kami bakal ngajelaskeun langkung rinci kumaha nyetél sadayana leres sareng nyerat kode pikeun ngalakukeun cek sapertos kitu.

Pangarang téks: atanya

sumber: www.habr.com

Tambahkeun komentar