Dev macros - za ili protiv?

1 отговора 50 прегледа
#1

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.

Отговор
в отговор на Gonzu #2

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


#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 на

Отговор