Jump to content
php.lv forumi

jurchiks

Reģistrētie lietotāji
  • Posts

    1,649
  • Joined

  • Last visited

Posts posted by jurchiks

  1. WTF tauta?

     

    function foo()

    {

        $data = db->getQuery('select data for some record limit 1')->fetchRow();

        
        if (empty($data))

        {

            return null;

        }

     

        return new Bar($data);

    }

    Kam tu te neuzticies? Vienkārša pārbaude "$bar = foo(); if ($bar === null) { return;/*guard clause*/ }". Kur jūs te redzat kaut kādu problēmu??

  2. Nu pagaidi, ja tu raksti metodi, kura atgriež konkrētās klases instanci vai null, tad tur nekas cits nedrīkst būt. Tur pēc būtības nekas nedrīkst mainīties, un ja mainītos, tad uzreiz visa sistēma aizietu pa pieskari anyway.

    Strikti kodēt nenozīmē visur izmantot instenceof, nesāc te tagad murgot.

  3. Lietot !== null nedrīkst, jo tas negarantē konkrētu tipu, bet gan tikai izslēdz null.

     

    Es sāku, ka pilnīgi bezjēdzīgi visur piekopt ===, tīri lai "drošāk justos".

    Kā tas ir jāsaprot - negarantē? Vai ir pierādīti gadījumi, kad atgriež ko citu?

  4. >No frontenda tev tāpat nāk stringi, arī skaitļiem. Tad ko, tu katru skaitli salīdzini ar (int)$_POST['id'] === $id ?

    $request->getData->getInt('foo'/*, $default = 0*/);

     

    >Vai arī tu noselektē no db datus, un arī vienmēr casto tos uz int pirms salīdzināšanas?

    Ja izmanto mysqlnd un PDO::ATTR_EMULATE_PREPARES => false, tad int arī atgriežas kā int, nevis string.

     

    >Tad if`ā tu arī salīdzini if($obj === null) vai tomēr if($obj)? Es ceru, ka === null, jo if($obj) tomēr casto uz boolean, kas basically ir double equals.

    Kas tas par stulbu jautājumu? Tikko taču teicu, ka vienmēr salīdzinu ar ===.

     

    >nav jādrukā vienkārši lieki simboli...

    Ja tie liekie simboli nozīmē, ka es 100% zinu, kā darbojas mans kods, nevis paļaujos uz "PHP magic", tad jā, es drukāšu tos "liekos" simbolus.

  5. No Jums jau kuro reizi nevienus darbus redzēt nevar, tikai kā mazu css style akmeni mest virsū. :)

    http://rotermannsquare.lv/(izņemot to daļu, kur zīmējas tie SVG)

    http://balticbrandconference.com/(izņemot MEDIA SUPPORT bloku, tas ir jauns)

    http://samsungdigipass.ee/(bik tur sačakarējuši partneru bloku, menu item vairs neaktivējas uz 1080p ekrāna, ja aizskrullē līdz apakšai)

    http://cipsi.lv/akcija/(te arī pēc manas aiziešanas čalis visādu huiņu sabāzis... Par šito saitu mēs padaudz strīdējāmies) JS @ http://cipsi.lv/akcija/js/app.js

    http://www.latvijasbuvnieki.lv/

     

    Šie ir praktiski vienīgie projekti, kurus esmu taisījis, kuri ir almost exclusively frontend-only.

  6. Es pats esmu uz tiem grābekļiem karjeras sākumā uzkāpis, un esmu redzējis pieredzējušus programmētājus pieļaujam to pašu kļūdu ("strpos($a, $b) == false" - šādu lietu esmu pārsteidzoši bieži redzējis).

  7. Labi - funkcijas/metodes, kas atgriež NULL objekta vietā, ja kaut kas nav pareizi, bet exception īsti nav jēgas mest. Piemēram, kaut kādi optional dati, kas var būt un var nebūt.

    Optional parametri ar default value NULL/FALSE.

    Un tās special case funkcijas PHP nebūt nav tikai 0.001% gadījumu, ja vien tu neesi visu PHP API pārrakstījis pa savam.

  8. Ja izsaukums toties izskatās "doShit($with_this_stuff, YES_MORE, NOT_SURE, YES_PLS)", nevis "doStuff($with_this_stuff, true, false, true)", tad viss ir ok.

    Kā tas ir ok, ja tu tāpat nezini, ko pieprasa YES_MORE, NOT_SURE, YES_PLS? Atšķirība tikai nosaukumā.

    Vismaz izdomā meaningful nosaukumus piemēriem, ja gribi, lai tos uztver nopietni...

     

    Javā var darīt šādi:

    Ir links uz dokumentāciju? Google nespēj pēc keywordiem ' java constructor "{{" ' neko jēdzīgu atgriezt.

     

    Edit: nvm, found it - double-brace initialization.

    Bet skatoties pēc stackoverflow komentāriem, izskatās, ka diezgan dārgs/slikti optimizēts pasākums...

×
×
  • Create New...