Autor: Filip Kulić, Senior Embedded Software Engineer u Spyrosoftu

Pozdrav svim C/C++ programerima!

C/C++ programiranje je popularno, ali je i među najzahtjevnijim načinima razvoja softvera. Ovi programski jezici koriste se u širokom rasponu aplikacija – od operativnih sustava, do igara i mobilnih aplikacija.

Ali čak i najiskusniji C/C++ programeri suočavaju se s izazovima koji otežavaju programiranje. Kako bi se olakšao ovaj proces, razvijeni su različiti alati i tehnologije koje pomažu programerima da pišu bolji, brži i sigurniji kod.

Stoga smo u Spyrosoftu razvili upravo takav alat za koji se nadamo da će biti koristan svim C/C++ programerima koji traže načine za olakšanje razvoja vašeg procesa i poboljšanje kvalitete svog koda.

Scargo omogućuje:

  • stvoriti novi projekt
  • izgraditi projekt
  • pokrenuti statičke analizatore koda
  • automatski popraviti odabrani problem na temelju analize kontrolora
  • pokrenuti jedine testove
  • generirati dokumentaciju iz izvornog koda
  • rad s predefiniranim docker okruženjem ovisno o odabranoj arhitekturi
  • Otklonite pogreške u svom softveru,
  • ja više…

Scargo je CLI (sučelje naredbenog retka) alat inspiriran rustovim teretom te olakšava C/C++ developerima upravljanje životnim ciklusom projekta.

Scargo je open source i napisan je u Piton. Konfiguracija projekta radi se na jednom mjestu, u ožiljak.toml datoteci, a scargo će sve ostalo učiniti za vas. Ažuriraj naredba radi Ažuriraj projekt pomoću konfiguracijske datoteke scargo.toml.

Kreirati projekt možete uz pomoć novi naredbe, a trenutno su podržane x86, stm32 ja esp32 arhitektura. Scargo će za vas stvoriti standardnu ​​strukturu imenika src ja test imenici i cmake, conan i druge datoteke za alate koje scargo koristi u pozadini. Zadana konfiguracija projekta takva je da scargo koristi docker u pozadini tako da nema potrebe instalirati dodatne alate na računalo.

Scargo izgraditi naredba će preuzeti potrebne pakete ovisnosti pomoću conana i izgraditi projekt pomoću cmake. Podržani su različiti profili izrade, a prema zadanim postavkama koristit će se scargo debug izgraditi profil. Moguće je izmijeniti datoteku scargo.toml i dodati novu izgradnju profila ako je potrebno. Binarne datoteke bit će smještene u direktoriju build/ /bin.

Međutim, nije potrebno samostalno pokretati ili ispravljati pogreške u binarnim datotekama. Scargo također omogućuje otklanjanje pogrešaka korištenjem debug naredbe koristeći gdb CLI, podrška za vscode i druge IDE također je planirana u budućnosti. Ako nije potrebno otklanjati pogreške, već samo pokrenite binarnu datoteku da biste to mogli učiniti pomoću trčanje naredbu.

Kvaliteta koda iznimno je važna, a scargo će pomoći u održavanju kvalitete koda ček naredba. U pozadini će se konfigurirati scargo zveket-uredno, clang-format, cppcheck ja gušter. Pri pozivu scargo check naredbe pozvat će se sve provjere već navedenih alata te neke od scargo provjera, za sad su to todo check, pragma i copyright check. Neke od grešaka moguće je i automatski ispraviti pomoću popraviti naredba, a trenutno su podržani popravci za pragma, autorsko pravo ja clang-format.

Testovi, jednostavniji jedini testovi i integracijski testovi, značajno doprinose visokoj kvaliteti koda. Test pokrenut će testove te generirati izvješće o prolaznosti testova te pokrivenost izvora koda testovima za jedinicu i integracijske testove.

Kako bi se ubrzao ponavljajući proces stvaranja datoteka, modificiranja cmake listova i drugih gnjavaža pri pisanju novih testova, pobrinut će se gen naredba. Gen naredba može generirati kostur unit testova, mockova. Osim navedenog gen naredba može generirati i neke esp32 određene datoteke kao što su azure certifikati, konfiguracijska datoteka podatkovnog sustava i pojedinačni binarni.

Pošto scargo podržava stm32 ja esp32 arhitekturu postoji i bljesak naredba koja omogućuje flashanje binarnih datoteka na stm32 ja esp32 pločice.

Prema zadanim postavkama, scargo projekti su dokerizirani, a ulazak u doker kontejnere, izgradnja doker kontejnera je olakšana korištenjem docker build, docker exec ja docker run naredbe. Sam Scargo je ugrađen u kontejnere, tako da se sve naredbe mogu koristiti unutar samih kontejnera.

objaviti naredba omogućuje objavljivanje knjižnica conan spremište pomoću conan u pozadini. Potrebno je samo definirati url repozitorija u scargo.toml datoteci te napraviti Ažuriraj.

Svaki projekt treba imati i pripadajuću dokumentaciju, a doc naredba omogućuje generiranje dokumentacije pomoću doxygena u pozadini.

Do developera je da jasno dokumentira kod doxygen komentarima, a doc naredba će učiniti ostalo.

Cilj scarga je olakšati developerima posao oko učenja ovih hrpe alata koje scargo koristi u pozadini. Konfiguracija projekta radi se na jednoj datoteci, a naredbe su samorazumljive iz samog imena naredbe. Ukoliko je potrebna dodatna pomoć uvijek je moguće pozvati –Pomozite argument za scargo i svaku od naredbi.

Scargo nije za svakog developera i za svaki projekt, barem ne trenutno. Početniku će vjerojatno značajno pomoći jednostavnošću naredbi i apstrakcijama koje skrivaju svo potrebno znanje mnoštva alata koji su potrebni za kvalitetan projekt. Naprednom korisniku koji je već poznat sa svim alatima možda će biti previše ograničavajući u ovom trenutku, ali i to bi željeli promijeniti, pa se slobodno javi ili podigni github problem.

Više na .debugu

Toliko za sada o scargu, vidimo se na nadolazećoj .debug konferenciji gdje će ekipa iz Spyrosofta i naš predavač Slavena Glumca slobodno zaustavite za više pitanja.

Sve informacije kako raditi sa scargo možete vidjeti u službenoj github web stranica. Do tada, zavirite na našu stranicu i upoznajte se sa svime što Spyrosoft radi, ne samo u Hrvatskoj nego iu svijetu.

Više o temiIzvor:Bug.hr