- Samsung Galaxy A54 - türelemjáték
- Apple iPhone 15 - a bevált módszer
- Yettel topik
- Google Pixel 10 és 10 Pro összehasonlító gyorsteszt
- Milyen okostelefont vegyek?
- Apple iPhone 17 - alap
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
- Apple iPhone 16 Pro - rutinvizsga
-
Mobilarena
Ú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!
- BESZÁMÍTÁS! ASUS H510M i7 10700K 16GB DDR4 512GB SSD RTX 3070 8GB ZALMAN S2 TG Chieftec 750W
- BESZÁMÍTÁS! Gigabyte GA-H610M i3 12100F 16GB DDR4 512GB SSD RX 6600 8GB Rampage SHIVA CM 600W
- BESZÁMÍTÁS! Gigabyte H610M i3 12100F 16GB DDR4 500GB SSD RTX 2060 Super 8GB Rampage SHIVA 500W
- Otthoni PC Komplett Szett Akár játékra is! Monitorral, Billentyűzettel, Egérrel
- Apple iPhone X 64 GB fekete - kártya független, tökéletes állapot - eredeti Apple szilikon tok
- Apple Watch Ultra 2 GPS, LTE, 49mm // Számla+Garancia //
- HIBÁTLAN iPhone 14 Pro Max 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3523
- Xiaomi 12T Pro 5G 256GB // Számla+Garancia//
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5500 / RX 6600XT / 32GB DDR4 / 512GB SSD
- GYÖNYÖRŰ iPhone 11 Pro Max 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3268, 100% Akkumulátor
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest