Dev macros - za ili protiv?
1 отговора
50 прегледа
Dev macros - za ili protiv?
Predi vreme Malkia spomena che w tehnia ekip wseki programist si ima makros kojto e definiran na negowia computer - naprimer
#define AZ_SUM_MALKIA
i moze da si go polzwa za debugging i t.n.:
#ifdef AZ_SUM_MALKIA
// do something
#endif
Kakwo mislite za tozi podhod? Az lichno smjatam che ne e za preporychwane po slednite prichini:
1) Code ownership: Kakwo shte stane ako Malkia si trygne ot firmata? Ami ako Malkia pochne da pishe po razlichni chasti ot koda?
2) Build quality: Izliza che koda na produkta se opredelja ot nahwyrljani tuk-tame makrosi i ne moze da se garantira ednakyw kompiliran kod da izleze ot razlichni computri.
3) Debugging: Kakwo stawa ako trjabwa da debug-wam neshto ne na moja computer, a na drug, kydeto e kompilirano s na Pencho makrosa i moite gi njama?
Sigurno moze da se izmisljat i oshte.
#define AZ_SUM_MALKIA
i moze da si go polzwa za debugging i t.n.:
#ifdef AZ_SUM_MALKIA
// do something
#endif
Kakwo mislite za tozi podhod? Az lichno smjatam che ne e za preporychwane po slednite prichini:
1) Code ownership: Kakwo shte stane ako Malkia si trygne ot firmata? Ami ako Malkia pochne da pishe po razlichni chasti ot koda?
2) Build quality: Izliza che koda na produkta se opredelja ot nahwyrljani tuk-tame makrosi i ne moze da se garantira ednakyw kompiliran kod da izleze ot razlichni computri.
3) Debugging: Kakwo stawa ako trjabwa da debug-wam neshto ne na moja computer, a na drug, kydeto e kompilirano s na Pencho makrosa i moite gi njama?
Sigurno moze da se izmisljat i oshte.
Re: Dev macros - za ili protiv?
ami nie go pravim tova s tzel - raznite suobshtenia ili debug-screens, neshta na ekrana koito izlizat da ne prechat na ostanalite programisti.
Nie sme 22 (kum kraja bjahme 26) programista.
i eto chast ot koda ni
DrawString i speech... sa fiktiwni - no ideata e che texta izkarwan na ekrana shte se wzihda samo za mene i Lydon (drugia audio chovek). Informatziata kojato izliza na ekrana e dosta goljama - i shte prechi na ostanalite. Naprimer AI choveka ni puk si ima drug tip informatzia... Gledame da ne si mursim.
ili
Tuka puk sus Thad - drug programist ot nashite - sme reshili che samo nas ni interesuwa ako faila ne e pravilno generiran, ili sus stara data - za ostanalite - prosto ako imat takuv sluchai - njama da slushat nishto ot speech-a - i njama da im izwezhda greshka (no za nas dvamata sus Thad tova e wazhno)... Po sushtia nachin razni suobshtenia wuw konsolata (ala OutputDebugString wuw MSVC-to) mozhe da izlizat samo za opredeli hora...
wsushnost imame si napravo macrosi za tova - zashtoto ponjakoga #ifdef USER_xxxx #endif zagrozjawa dosta koda
1) Code ownership: Kakwo shte stane ako Malkia si trygne ot firmata? Ami ako Malkia pochne da pishe po razlichni chasti ot koda?
1. Ako az si trugna ot firmata - prosto choveka kojto mu se nalozhi da raboti po koda - shte doide i shte smeni USER_MALKIA na negovoto ime - chisto i prosto.
2) Build quality: Izliza che koda na produkta se opredelja ot nahwyrljani tuk-tame makrosi i ne moze da se garantira ednakyw kompiliran kod da izleze ot razlichni computri.
2. Ne mozhe da se garantira naistina poslednoto - no pri nas poslednite njakolko sedmitzi sled kato sme minali Alpha-ta, i pochti betata - sme zadulzheni da testwame igrata wuw RETAIL (ili FINAL/bootable) - kudeto njama nito edin USER_xxxx definiran, nito edin ASSERT, nito edin red otpechatan. Networking coda iziskwa dori dobra sinchornizatzia.
3) Debugging: Kakwo stawa ako trjabwa da debug-wam neshto ne na moja computer, a na drug, kydeto e kompilirano s na Pencho makrosa i moite gi njama?
3. Ako pri tebe e kompilirano po-drug nachin - togava prekompilirame sus moite optzii, ili se opitwam da reproducna bug-a i na moja komputar. Wsushnost ima fail kojto ne se namira wuw CVS - i se kazwa local_user.h w nego sa definirani USER_MALKIA, i razni drugi spechifichi za usera... Naprimer ako lead-programera znae che sum dopusnal tup bug zaradi kojto ni krashwa igrata i se muchim ot njakolko dena da go namerim - to toj sus sigurnost si e definiral USER_MALKIA pri nego i se opitwa da go opravi.
Sigurno moze da se izmisljat i oshte.
Razbira se che mozhe da izmislish sumati - reshenieto koeto polzwame ne e bez problemi - no ni wursheshe idealna rabota - za tolkova goljam ekip. Az realno znam samo 10-15% ot celia sors - ima mesta kudeto wuobshte ne sum stupwal i ne znam za kakvo stava duma. Chesto mi se nalaga obache da debugwam chuzhd kod, budejki obvinen che moja ne raboti - audio-coda mozhe da trashne pametta, ili da napravi DMA-to ludo, cheteneto ot CD/DVD da failne za drugi chasti ot programata i prochie... I tova che znam samo 10-15% ne mi prechi - zashtoto prosto moga da se prestorja na drug user i da namerja problema.
Nie sme 22 (kum kraja bjahme 26) programista.
i eto chast ot koda ni
#if defined(USER_MALKIA) || defined(USER_LYDON)
DrawString( x, y, "%s %s %d", speechText[k], speechCaption[k], speechSample[k] );
DrawString( x, y+16, "%d %d", speechSize[k], speechLimit[k]);
#endif
DrawString i speech... sa fiktiwni - no ideata e che texta izkarwan na ekrana shte se wzihda samo za mene i Lydon (drugia audio chovek). Informatziata kojato izliza na ekrana e dosta goljama - i shte prechi na ostanalite. Naprimer AI choveka ni puk si ima drug tip informatzia... Gledame da ne si mursim.
ili
#if defined(USER_MALKIA) || defined(USER_THAD)
bAssert( speechSourceFileDate == speechBinaryFileData && "The generated speech"
"source file is different than exisiting speech binary file - run \"m update_speech\" from the"
"command-line to fix it"
#endif
Tuka puk sus Thad - drug programist ot nashite - sme reshili che samo nas ni interesuwa ako faila ne e pravilno generiran, ili sus stara data - za ostanalite - prosto ako imat takuv sluchai - njama da slushat nishto ot speech-a - i njama da im izwezhda greshka (no za nas dvamata sus Thad tova e wazhno)... Po sushtia nachin razni suobshtenia wuw konsolata (ala OutputDebugString wuw MSVC-to) mozhe da izlizat samo za opredeli hora...
wsushnost imame si napravo macrosi za tova - zashtoto ponjakoga #ifdef USER_xxxx #endif zagrozjawa dosta koda
MALKIA_PRINT( eDC_SPEECH, "Number of samples=%d, size occupied=%p", numSamples, numBytes );
1) Code ownership: Kakwo shte stane ako Malkia si trygne ot firmata? Ami ako Malkia pochne da pishe po razlichni chasti ot koda?
1. Ako az si trugna ot firmata - prosto choveka kojto mu se nalozhi da raboti po koda - shte doide i shte smeni USER_MALKIA na negovoto ime - chisto i prosto.
2) Build quality: Izliza che koda na produkta se opredelja ot nahwyrljani tuk-tame makrosi i ne moze da se garantira ednakyw kompiliran kod da izleze ot razlichni computri.
2. Ne mozhe da se garantira naistina poslednoto - no pri nas poslednite njakolko sedmitzi sled kato sme minali Alpha-ta, i pochti betata - sme zadulzheni da testwame igrata wuw RETAIL (ili FINAL/bootable) - kudeto njama nito edin USER_xxxx definiran, nito edin ASSERT, nito edin red otpechatan. Networking coda iziskwa dori dobra sinchornizatzia.
3) Debugging: Kakwo stawa ako trjabwa da debug-wam neshto ne na moja computer, a na drug, kydeto e kompilirano s na Pencho makrosa i moite gi njama?
3. Ako pri tebe e kompilirano po-drug nachin - togava prekompilirame sus moite optzii, ili se opitwam da reproducna bug-a i na moja komputar. Wsushnost ima fail kojto ne se namira wuw CVS - i se kazwa local_user.h w nego sa definirani USER_MALKIA, i razni drugi spechifichi za usera... Naprimer ako lead-programera znae che sum dopusnal tup bug zaradi kojto ni krashwa igrata i se muchim ot njakolko dena da go namerim - to toj sus sigurnost si e definiral USER_MALKIA pri nego i se opitwa da go opravi.
Sigurno moze da se izmisljat i oshte.
Razbira se che mozhe da izmislish sumati - reshenieto koeto polzwame ne e bez problemi - no ni wursheshe idealna rabota - za tolkova goljam ekip. Az realno znam samo 10-15% ot celia sors - ima mesta kudeto wuobshte ne sum stupwal i ne znam za kakvo stava duma. Chesto mi se nalaga obache da debugwam chuzhd kod, budejki obvinen che moja ne raboti - audio-coda mozhe da trashne pametta, ili da napravi DMA-to ludo, cheteneto ot CD/DVD da failne za drugi chasti ot programata i prochie... I tova che znam samo 10-15% ne mi prechi - zashtoto prosto moga da se prestorja na drug user i da namerja problema.
Редактирано от malkia на