Jump to content
php.lv forumi

cilveks

Reģistrētie lietotāji
  • Posts

    136
  • Joined

  • Last visited

Posts posted by cilveks

  1. Nu jā, standarti un noteikta kārtība jāievēro, lai citiem būtu vieglāk.

    Bet ja nevienam manis skripti nav jāredz/jārāda,

    tad jau nu gan - pie malas standartus. Daru kā man vieglāk un ērtāk => "Каждый дрочит, как он хочет, я дрочу, как я хочу" :))

     

    P.S.

    Tomēr kā ir pareizāk šajā gadijumā? Vai arī pilnīgi vienalga?

    1.

    $sel_user = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE user=tralala"));
    

     

    2.

    $sql = "SELECT * FROM users WHERE user=tralala";
    $query = mysql_query($sql);
    $sel_user = mysql_fetch_array($query);
    

     

    Man personīgi patīk pirmais variants, taču bieži redzu, ka citi piekopj otro. Ta ir nozīme, vai atkal lomu spēlē tas teiciens ?

     

    Otrais variants ir labāks tāpēc ka ērtāk debuggot. Bet man labāk patīk šāds variants:

    $sql = "SELECT * FROM users WHERE user=tralala";
    $sel_user = mysql_fetch_array(mysql_query($sql););
    

    SQL vaicājums tomēr ir viena no "lietām", kuru visbiežāk "jādebugo", jo ir nepieciešams redzēt tīrā veidā, kādus datus atlasa SQL vaicājums.

     

    Ir redzēti koda fragmenti, kur cilvēks raksta šādā veidā:

    mysql_fetch_array(mysql_query("select cofee from mug where sugar = 2"));
    write_output("select cofee from mug where sugar = 2");
    

    Pats redzi cik tas ir neerti un cik viegli ir nokļūdīties šeit.

     

    Ir cilvēki, kuri nemēdz "capitalizēt" keywordus SQL vaicājumos. Redzu ka tu to dari, tas arī atvieglo koda lasīšanu.

     

     

    Ja domā, ka nākotnē varētu programmēt arī ne priekš sevis un ir interese uzlabot koda lasāmību, tad ieteiktu palasīt koda formatēšanas standartus. Tur ir daudz knifiņu. Tas viss gan pašam noderēs lasot citu cilvēku rakstītu korekti strukturētu kodu, kā arī citiem būs vieglāk tavu kodu uztvert.

     

     

    Ar koda komentēšanu ieteiktu nepārcensties. Piemēram:

    // tiek inicializēts $q mainīgais
    $q = 432
    

    Raksti komentārus pie sarežģītākām vietām un raksti paškomentējošu kodu (nepārspīlējot ar to).

    $a = 14; $b = 2;
    
    
    $timeInSecodsBeforeCodeExpiresIfUserIsNotVIP = 14;
    
    
    $timeInSeconds = 14;
    $dateOffset = 2;
    

  2. Pakomentējot šo:

    2) Darbinieki pārsvarā strādā slikti:

    1. - viņiem maz interesē cik labi darbosies tas, ko viņi uzkodē;

    2. - viņi reti saprot biznesa loģiku, visus biznesa procesus utt;

    3. - viņi pie pirmās izdevības aizbēgs pie cita darba devēja, kurš piedāvās par 10% lielāku algu;

    4. - viņi darba laikā sēž dragos, dzenā kārtis u.tml.

     

    1. Diemžēl ir tāda suga, nenopietna attieksme. Darba devējs pat īsti nemanīs atšķirību (jo kā runātāji/muldētāji viņi parasti ir labi), toties attiecīgās jomas specs uzreiz pamanīs tādu cilvēku. Arī 3. punkts attiecas uz viņiem.

     

    2. Tāpēc vajag ieviest projektu vadītāju, kurš pārzin minētos procesus utt.

     

    4. Iespējams tam par iemeslu ir maz darāmā. Un ar laiku tas iet plašumā, tobiš, pierod pie ikdienas spēļu/draugošananās devas. Es personīgi, ja jūtu ka tiešām ilgu laiku ir maz darāmā, labāk meklēju citu darbu, nepatīk man atsēdēt laiku.

  3. Tas patiesībā arī var būt viens no nopietniem iemesliem, kāpēc programmētāji nav ieineteresēti, vismaz pieredzējušāki, jo viņiem ir no kā izvēlēties. Tas ka tiek prasīts arī HTML, CSS - tas ka programmētājs to visu zina tā ir viena lieta, bet otra lieta ir tāda, ka reti kuram programmētājam patīk ķēpāties ar dizainu. Kaut gan, zinu arī tādus "programmētājus", kurus programmēšana īsti neinteresē, kaut ko salipina kodā un po ka pilns ar kļūdām, pieliks tak priekšā @, lai klientam nerādās kļūda.

  4. Es jau ieteiktu nedaudz pamainīt loģiku, kamēr vēl tas ir iespējams un datu nav daudz. Man personīgi ne visai patīk ka šādā vietā izmanto GROUP BY. Jāuztaisa tāds risinājums, lai nebūtu šādi jāmudās. Ja pareizi saprotu tavu domu, tad tu pirmo postu glabā tabulā "topics"?

     

    CREATE TABLE topics (
     id NUMERIC(1,0),
     time TIME
    );
    
    CREATE TABLE posts (
     topic_id NUMERIC(1,0) REFERENCES topics(id),
     time TIME
    );
    
    INSERT INTO topics VALUES(1, now());
    INSERT INTO topics VALUES(2, now()+1);
    INSERT INTO posts VALUES(2, now()+2);
    INSERT INTO topics VALUES(3, now()+3);
    INSERT INTO posts VALUES(2, now()+4);
    INSERT INTO posts VALUES(1, now()+5);
    INSERT INTO topics VALUES(4, now()+6);
    
    SELECT id, t.time AS topic_time, MAX(p.time) AS post_time FROM topics t LEFT JOIN posts p ON t.id=p.topic_id GROUP BY t.id ORDER BY CASE WHEN (MAX(p.time) IS NOT NULL AND MAX(p.time)>t.time) THEN MAX(p.time) ELSE t.time END DESC;

  5. Lūk paraugs ar diviem browseriem, saliec papildus vēl nosacījumus. Bet brīdinu, šis ir overkills, it sevišķi ja daudz datu un bieži izpildīsi. Neuzņemos nekādu atbildību par nelietderīgu resursu izmantošanu :)

    Regulārai izpildīšanai, iepriekš tika ieteikti tie prātīgākie varianti. Bet ja vajag vienai reizei, tad būs ok variants.

    SELECT (CASE WHEN (user_agent LIKE '%Firefox%') THEN 'Firefox' WHEN (user_agent LIKE '%Chrome%') THEN 'Chrome' ELSE 'Other' END) AS browser, count(*) FROM tabula GROUP BY browser ORDER BY count(*) DESC

×
×
  • Create New...