- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: Agglegénykonyha 1 – rizseshús másképp
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
- BMWFan: Akasztófa
- Gergosz2: Emlékezzünk!
-
LOGOUT
Új hozzászólás Aktív témák
-
Akkor pseudo-kodoljuk le.
Van valami business logikad, aminek hivnia kell a system(valami fajta string) fuggvenyt.
Ezt tudod csinalni ugy, hogy:void MyClass::myShit(std::string& lofasz)
{
...csinalom a dolgom, amit kell, akarhany sorban...
#ifdef OS_LINUX
system(lofasz.c_str()); //ha a szignatura system(const char*)
#endif
#ifdef OS_MAC
system(valami_stringkonverzio(lofasz));
#endif
}
Vagy:
#ifdef OS_LINUX
void MyClass::callSystem(std::string& lofasz)
{
system(lofasz.c_str());
}
#endif
#ifdef OS_MAC
void MyClass::callSystem(std::string& lofasz)
{
system(valami_stringkonverzio(lofasz));
}
#endif
Es akkor a fo kod az nezhet ki ugy, hogy:
void MyClass::myShit(std::string& lofasz)
{
...csinalom a dolgom, amit kell, akarhany sorban...
callSystem(lofasz);
}
Ami sokkal tisztabb, atlathatobb, egyszerubb tesztelni, modositani, uj OS-t hozzaadni/elvenni, akarmi. Alternativanak lehet olyat is, hogy a cpp-n beluli fuggvenydeklaraciot csak egyszer csinalod meg, es azon belul ifdef-elsz, de szerintem a kulon deklaracio tisztabb, szebb, es ami sokkal fontosabb: Eltorik, ha valamit elbaszol, nem egy sima ures fuggveny lesz a vege, mert a headerben OS-tul fuggetlenul ott a szignatura, amit a fordito keresni fog, es uvolt, mint a faba szorult fereg, ha nem talalja.
A config/props: Visual Studiot hasznalsz? Ha igen, arra jo, hogy siman kivalasztod fent a configurations-nel a legordulo menuben, hogy MAC, vagy WIN, vagy LINUX, es:
- Lecserelodik a fordito arra, amit beallitottal az adott platformhoz
- "Definialodik" (pre-processor directive) az OS_VALAMI macro (mindig az, amelyik eppen kell)Igy egyszeru valtani a platformok kozott, egyszeru a CI integracio es az automata teszteles is, hiszen (mondjuk Jenkinsben) annyi a dolgod, hogy lebuildeled mind a harom konfiguraciot, aztan az artefact (a kimenet/build eredmenye) sikeres build eseten mar mehet is a celgepre, ami futtathatja is rajta az automatikus teszteket. Unit/egyeb tesztek termeszetesen lefutnak, barhol barmi error van mar jelez is, hogy szar kerult a palacsintaba. Ez mehet minden egyes git push utan akar, es akkor nincs stressz amikor deploy van (ok, de van stressz, deploy elott mindig van stressz, de kevesebb
), mert tudod jol, hogy nincs olyan commit, ami eltort barmit, aminek nem kellett volna.
Persze ezt karbantartani munka, osszerakni plane, meg normalis teszteket kell csinalni hozza, de egy nagyobb lelegzetvetelu projektnel nagyon megeri mar kozeptavon is.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
- Bezámítás! Gigabyte G5 KC Gamer notebook - i5 10500H 16GB DDR4 512GB SSD RTX 3060 6GB WIN10
- LG 27GR95UM - 27" MiniLED - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 1000
- 0% THM 6 havi részlet, beszámítás! Gamer PC, notebook, konzol, Apple termék, hardver KAMATMENTESEN!
Állásajánlatok
Cég: FOTC
Város: Budapest