Silver Bullet

Message
Author
User avatar
douche
Posts: 33
Joined: 03 Jan 2011, 01:30

Re: Silver Bullet

#51 Post by douche » 07 Feb 2012, 15:54

snauts wrote:Sneikam taisnība, jo viņš ir piedalījies BRSD, bet es nē.
Tā ir viena no interpretācijām, jā.
Nu, tikai pasaki, ka tā nav vienkāršāk. :lol:

snauts
Posts: 63
Joined: 30 Mar 2011, 11:15

Re: Silver Bullet

#52 Post by snauts » 07 Feb 2012, 16:17

douche wrote:Nu, tikai pasaki, ka tā nav vienkāršāk. :lol:
Sneiks var atrisināt halting problēmu, bet es nē, jo viņš ir piedalījies BRSD, bet es nē.

bubu
Guru
Guru
Posts: 398
Joined: 07 Dec 2010, 11:54

Re: Silver Bullet

#53 Post by bubu » 08 Feb 2012, 03:06

atis wrote:
Ne tikai. Tipus ar konkrētu izmēru sadefinēt noder jebkurā gadījumā (lai nebūtu šaubu par to, cik daudz vietas tips aizņems). Pārējo var lietot konsistences pēc.
Negribu ar sneiku strīdēties, bet, runājot konkrēti par tipu izmēriem -- šī lieta jau arī ir sen atrisināta (kopš C99):
http://en.wikipedia.org/wiki/C_data_typ ... eger_types
+1
Gluži manas domas.
Bet nē, divritenis taču krutāks. Jo tā lielās enžīnes darot!
- katru reizi jāpielāgojas cita cilvēka stilam
Un tas nebūtu jādara jebkurā gadījumā? Viena no mana darba īpatnībām ir tāda, ka man jāprot lasīt praktiski jebkādā stilā rakstīts kods. Ja tas šķiet pārāk biedējoši, iesaku pamest programmētāja darbu un pamēģināt profesora darbu.
Nu sorry, bet tu var teikt tikai nepieredzējis programmētājs. Jebkurā sakarīgā programmēšanas kopienā/darbā/projektā tev daudz nedomājot pateiks uz-redzēšanos, ja ko tādu gribēsi teikt ("jāprot lasīt praktiski jebkādā stilā rakstīs kods"). Kodu jāraksta, lai to viegli būtu lasīt. Nevis jālasa sarežģīti rakstīts kods. Gribētos redzēts kā sneiks uzvedīsies Google vai Microsoft darba intervijās - iedos sneikam nepareizi/sliktu/nesmuku kodu, par kuru jāpastāsta ko viņš par to domā. Sneiks paskatīsies - o, cik skaists kods, es tādu mājās rakstu.
- Kādos stāvokļos ir augstāk scope esošie objekti. ... Kas notiks (ar destruktoriem) izejot no tekošā scope, ja uz šejieni ir atnākts ar goto?
Ja tu būtu kārtīgi apskatījies kodu, redzētu, ka neviens no šiem jautājumiem te nav jāuzdod. Ne destruktori tiek aiztikti, objektu stāvoklis arī skaidrs.
Tu visu kontekstu izlaidi, un piesējies vienam teikumam. Runa ir par koda skaidrību. Stilu. Vieglu lasāmību un saprotamību. Bet nevis par to, ka man viss tavs kods jālasa uz augšu/leju, lai saprast, kur no kura skopa var ielekt/izlekt, un kādi objekti tur ir (vai nav).
snake5 wrote:- Vajag lasīt starp rindiņām, un palasīt kautvai grāmatas (Bjarne Straustrup, Herb Sutter, Andrei Alexandrescu).
Bībeles fani arī saka, ka vajag lasīt starp rindiņām. Traki cilvēki. Bet tās grāmatas apskatīšos, varbūt būs kaut kas vērtīgs.
Pareizi. Grāmatas vajag dedzināt. Tās raksta traki cilvēki un lasa muļķi. Kamon. Srlsy? Par bībeli gribi tagad runāt? A man šķita ka tu <sarcasm>prātīgs</sarcasm> cilvēks esi un par C++ runā...

snake5
Posts: 361
Joined: 07 Dec 2010, 03:54
Contact:

Re: Silver Bullet

#54 Post by snake5 » 08 Feb 2012, 07:35

-Bet nē, divritenis taču krutāks. Jo tā lielās enžīnes darot!
Kāds vēl divritenis? Nevajag ziepju operu no typedefiem taisīt.

-Jebkurā sakarīgā programmēšanas kopienā/darbā/projektā tev daudz nedomājot pateiks uz-redzēšanos, ja ko tādu gribēsi teikt ("jāprot lasīt praktiski jebkādā stilā rakstīs kods"). Kodu jāraksta, lai to viegli būtu lasīt.
Nezinu, ar kādu kodu tu esi strādājis, tomēr man ir gadījies redzēt tādu situāciju, ka ar parastām funkcijām koda struktūra ir sajāta neizmērāmi šausmīgāk nekā ar maniem goto. Ja es skatos notepadā kodu un nespēju saprast, kur iegrūsta konkrētā funkcija, tas neskaitās slikts kods, un goto, kur ~10 rindu robežās atrodas viss, ko vajag - skaitās? Bullshits. Neatkarīgi no standartiem, ir vienmēr bijusi iespēja lasāmību padarīt šausmīgu.

-Bet nevis par to, ka man viss tavs kods jālasa uz augšu/leju, lai saprast, kur no kura skopa var ielekt/izlekt, un kādi objekti tur ir (vai nav).
Kā jau teicu, tādu goto tur nav. Un kā jau minēju piemērā par funkcijām, ar ko atšķirtos kods, ja es kāda goto vietā ieliktu funkciju? Būtu "jālasa uz augšu/leju" (ak, kādas šausmas!), lai atrastu, ko tas kods vispār dara un kā ietekmē stāvokli, citiem vārdiem sakot - atkal nebūtu labi.

-Pareizi. Grāmatas vajag dedzināt. Tās raksta traki cilvēki un lasa muļķi. Kamon. Srlsy? Par bībeli gribi tagad runāt? A man šķita ka tu <sarcasm>prātīgs</sarcasm> cilvēks esi un par C++ runā...
Tava prasme pārprast uzrakstīto un attiekties saprast to, kas nepatīk, ir nepārspējama. Palasīju es vienu no tām grāmatām - C++ Coding Standards. Sorry, neatradu, ka kāds sāktu tur liekuļot par pārdefinētiem tipiem vai goto lietojumu.. :D

snauts
Posts: 63
Joined: 30 Mar 2011, 11:15

Re: Silver Bullet

#55 Post by snauts » 08 Feb 2012, 10:28

Code: Select all

                if( E.LifeState != 0 )
                {
                        // respawn after 5
                        if( E.LifeState >= 5 )
                        {
                                E.Health = 4;
                                E.AlertState = 0;
                                E.Pos = Enemies[ gRand() % Enemies.Size() ].OrigPos;
                                E.LifeState = -1;
                        }
                        goto enemy_crashed;
                }

                // misc actions
                // - crash recovery
                if( E.CrashAmount > 0 )
                {
                        E.CrashAmount -= delta;
enemy_crashed:
                        // just a bit of it
                        E.Angle += E.AVel * delta;
                        E.Angle = gMod( E.Angle, PI * 2 );
                        E.Pos += E.Vel * delta;
                        continue;
                }
Tu apgalvo, ka tu šeit no viena if-a lec iekšā citā, jo tu negribi koda gabaliņu

Code: Select all

                        E.Angle += E.AVel * delta;
                        E.Angle = gMod( E.Angle, PI * 2 );
                        E.Pos += E.Vel * delta;
ienest funkcijā, jo tad tev vajadzēs meklēt to funkciju kaut kur (tu pats man pārmeti 'Par "replace" fīču teksta redaktoros neesi dzirdējis?', un tu pats par "search" fīču neesi?).
Patinot uz leju var sameklēt vēl tādu pašu identisku:

Code: Select all

                        E.Angle += E.AVel * delta;
                        E.Angle = gMod( E.Angle, PI * 2 );
                        // Šeit pa vidu ir milzīgs koda blāķis,
                        // bet tajā netiek mainīts nedz AVel nedz Angle
                        E.Pos += E.Vel * delta;
Savukārt ja patin to kodu uz augšu, tad tur var atrast kaut ko tādu:

Code: Select all

                Player.Pos += Player.Vel * delta;
                // te pa vidu ir divas galīgi nerelavantas rindiņas,
                // kur netiek aiztikts nedz Pos, nedz Vel
                Player.Angle += Player.AVel * delta;
                Player.Angle = gMod( Player.Angle, PI * 2 );
tava goto lietošana (un nevēlēšanās izmantot funkcijas) traucē tev pamanīt, ka tu močī duplicētu kodu.

snake5
Posts: 361
Joined: 07 Dec 2010, 03:54
Contact:

Re: Silver Bullet

#56 Post by snake5 » 08 Feb 2012, 11:03

- un tu pats par "search" fīču neesi?
Visātrākais search ir tas, kuru nevajag izmantot.

- ka tu močī duplicētu kodu
Trīs rindas, ne 20+. Kods tika rakstīts pirms fizikas datu izņemšanas un pārnešanas uz vienu structu un mani galīgi neinteresēja, ka 8 (6 + goto + label) rindu vietā varēja būt ...9 (funkcijas definīcija/deklarācija/izsaukumi=6+1+1*2) un prātā neienāca, ka kāds piekasītos par to, ka rakstu kodu atkārtoti, ja tā sanāk vienkāršāk. Sīkumainība FTW.

atis
Posts: 57
Joined: 30 Nov 2011, 01:08

Re: Silver Bullet

#57 Post by atis » 08 Feb 2012, 11:11

Tikai gribēju piebilst, ka, ja kāds gamedev foruma viesis lasa šo saraksti, tad nevajag domāt, ka publicēt kodu ir slikti un tas taps izķidāts un izlamāts tā kā Sneika kods. :D

Ja atceramies, tad tas viss sākās ar bubu norādi, ka no šī koda nevajadzētu mācīties.. un viņam ir taisnība, jo Sneiks ir unikāls programmētājs, kas izmainīs software development nākotni.

snauts
Posts: 63
Joined: 30 Mar 2011, 11:15

Re: Silver Bullet

#58 Post by snauts » 08 Feb 2012, 11:26

snake5 wrote:ka 8 (6 + goto + label) rindu vietā varēja būt ...9 (funkcijas definīcija/deklarācija/izsaukumi=6+1+1*2)
Ja esam pavisam sīkumaini, tad tā trīsrinde ir trīs vietās (kuras pamanīju), tātad 11 rindu vietā paliktu 10, bet es veicu šo aizrādījumu ne jau tāpēc, lai tu ieekonēmētu vienu koda rindu, bet gan tāpēc, ka "duplicēts kods ir == duplicēts bugu skaits" un man kā cilvēkam kas lasa tavu kodu ir trīsreiz jācenšas saprast vienu un to pašu lietu. Ja tā trīsrinde būtu funkcijā ar izsmeļošu nosaukumu es to izlasītu vienreiz.

BTW sneik, kur tu strādā un kādi ir tavi darba pienākumi?

atis
Posts: 57
Joined: 30 Nov 2011, 01:08

Re: Silver Bullet

#59 Post by atis » 08 Feb 2012, 11:34

Spriežot pēc šī:
http://forums.gamedev.lv/viewtopic.php? ... t=10#p1756

varu minēt, ka Sneiks strādā par web developeri.

snake5
Posts: 361
Joined: 07 Dec 2010, 03:54
Contact:

Re: Silver Bullet

#60 Post by snake5 » 08 Feb 2012, 11:59

trīsreiz jācenšas saprast vienu un to pašu lietu
Trīs rindas tik grūti saprast? Bugus var ielaist? Es šādu kodu jau esmu 10x rakstījis, tās būtu mazākās lietas, par kurām vajadzētu uztraukties.
BTW sneik, kur tu strādā un kādi ir tavi darba pienākumi?
DI, darba pienākumos ietilpst viss, ko vajag izdarīt, lai kaut ko dabūtu iekšā web lapā. Vajag gan piemērot gatavus risinājumus (jāatšifrē supersūdīgs kods un tas jā[uz]labo), gan veidot savus, dažreiz pat dizains jāzīmē un jātulko. Programmēšanas valodu ziņā darbojos ar PHP, JS, VB.NET, MySQL, C#, PL/pgSQL.

Post Reply

Return to “Dalībnieki”