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/
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