Jump to content
php.lv forumi

Mr.Key

Reģistrētie lietotāji
  • Posts

    1,332
  • Joined

  • Last visited

Posts posted by Mr.Key

  1. Tas raksts ir ļoti labs, taču, manuprāt, runa ir vairāk par teorētiski drošāko modeli, nevis praksi. Praksē, kā jau minēts, svarīgi ir nepieļaut datu noplūdi pirmkārt, nepieļaut muļķīgas kļūdas kodā un pēc vairākām nesekmīgām paroles ievadēm uz laiku bloķēt iespēju pieslēgties.

     

    Man pašam patīk šī metode:

    return $salt . hash($salt . $plainText);
    

     

    Kur $salt ir random salts (tā, kā tajā rakstā) un hash() ir "sha kaut kas", atkarībā no paranojas līmeņa.

  2. nu bet duh, paskaties savu kodu nedaudz cītīgāk:

     

    include($_GET['file_to_inc'])   .    '.php';

     

    Saproti, kas tur notiek? Tu iekļauj failu no $_GET, un veic include() funkcijas atgrieztās vērtības konkatenāciju ar '.php'.

    Ne gluži. "Because include is a special language construct, parentheses are not needed around its argument. Take care when comparing return value. " (http://lv.php.net/manual/en/function.include.php) Tātad, tiek izpildīts include ar iekavu vērtību, kas savienota ar tekstu '.php'.

    Tāpēc vienmēr vajadzētu operatoriem likt priekšā/pakaļā atstarpes, lai neveidojas šādas muļķīgas kļūdas.

    Pievienojos

     

    p.s. Ko tik jaunu neizdodas uzzināt katru dienu...

  3. Vai šis izdod tādu pašu rezultātu?

     

    include $_GET['file_to_inc'] . '.php';
    

     

    Edit: Nupat pamēģināju, strādā gan tā, gan tā. Droši vien nevar atrast failu, skaties, vai tas ir novietots tajos ceļos, kas minēti kļūdas ziņojumā.

  4. Programmētāja darba valoda *pasaulē* ir angļu valoda. Ja sagādā grūtības izteikties, tad der iemācīties angļu valodu. Piemēram, artikulu pareiza lietošana var nest daudzas atziņas, kā ar mazliet atšķirīgiem teikumiem var izteikt pilnīgi atšķirīgas domas. Un latv. valodas aizstāvjiem, ko teiksiet par komentāriem "Fiksēta problēma X" (vai problēma ir izlabota, jeb, tieši otrādi, fiksēta tā, ka nevar izlabot?), "Uzsetoti opciju parametri" (uz-se-kas? teniss?), utml.? Tie vēl tādi maigi piemēri...

     

    Es komentārus veidoju angliski, jo, papildus tam, ka rakstot angliski nav jātērē enerģija terminoloģijas tulkošanai, tas arī palīdz sagatavoties situācijām kad jastrādā EN projektā vai projektā tiek iesaistīti !LV cilvēki. Starp citu, tas var izskatīties arī tā, ka jums lūdz parādīt koda piemēru un lūdzēji ir, piemēram, Skype Igaunijā u.tml.

     

    Protams, ka tas neliedz rakstīt komentārus un dokumentāciju latviešu valodā, ja ilgtermiņā tas sevi attaisno *un* ja tas tiek darīts gramatiski pareizi, lietojot pareizus LV terminus (termini.lza.lv, termini.lv). Ja dokuments vai komentārs atgādina rasolu, kur LV sarunvaloda sajaukta kopā ar EN terminiem ar pielīmētām latviešu val. galotnēm, tad tas patiesībā iedarbojas pretēji - vismaz es tādu latviešu valodu nevēlos redzēt.

     

    P.S. Šobrīd lasu labu, programmēšanas TOP grāmatu,.kurā skaisti pateikts - cilvēks spēj izteikt savu domu tad, ja pārzin vārdus, ar kuriem to izteikt. Pretējā gadījumā nekāda domu izteikšana nesanāk, jo vienkārši to nevar salikt saprotamā valodā. Tas attiecas gan uz angļu valodu kā komentāru valodu, gan programmēšanu vispār.

  5. Tam ir error logi :)

    Man šķiet, Tu par daudz piesienies lietām, par kurām galīgi nav jāsatraucās. Tāpat tas fraktāļ džeks.

    Tas ir apmēram tā pat, kā cilvēkam stāsta, ka Eiropas laukos var (varēja) aizbraukt 2 nedēļu atvaļinājumā, neaizslēdzot māju ar vērtīgām mantām iekšā, bet viņš priecīgs izsaucas "bet tam taču ir atslēga un videokamera!". Nu ja, kur gan problēma? Bet vai Tu maz esi strādājis ar "stack trace" un exceptioniem? Neviens jau nesatraucās pārāk, visdrīzāk, tos, kurus šī vide satrauc vai satrauca, var sastapt tajā "Eiropā", uz kuru tie dodas uz neatgriešanos, bet varbūt arī daļa vnk pastāsta, kā ir "tur" un "šeit".

  6. Visus exceptionus tāpat neparedzēsi, katram apstrādi neuzrakstīsi. Pārītim uzrakstīsi, bet būs neparedzēts exceptions un jāsprāgst nost gribot negribot.

    Pareizi un nepareizi. Pareizi, jo apgalvojums patiešām ir patiess - neparedzētas problēmas gadījumā jābeidz attiecīgā līmeņa process (bet ne vienmēr - visa aplikācija). Nepareizi, jo nav tādas īstas izpratnes par to, kā tas viss ir domāts. Būs grūti pārliecinātu PHP programmētāju pielauzt skatīties uz lietām savādāk. Un te ja ir tas, why PHP sux - iemetīs veselīgu, tīru galvu iekš kāda PHP ģēniju projekta, ātri vien sāks kūkot uz debesīm un sarunāties ar kaķiem. Vai kaijām. No pieredzes - PHP frontē ir augsta pašpārliecinošo visvaru un visdaru koncentrācija, kuriem nav iekšējas vēlmes pēc tādām lietām, kā problēmu abstrakcijas, sistemātiskums, standarti, dokumentācija. Jo tas viss taču ir traucēklis dinamiskajā ikdienā, kur katra diena nes jaunu uzvaru - safiksētu problēmu ar uzsetotiem parametriem, utml.

  7. Nu pārliecība bija balstīta uz vienkāršu pieņēmumu:

    Ir jāielasa XML par katru cenu,tāpēc pēc internal_errors uzsetošanas exceptions kļūst nevajadzīgs jo try būs pozitīvs jebkurā gadījumā. Kļūdos?

     

    Kas gan tā par situāciju, ka XML jāielasa par katru cenu? Ja XML ir kļūdains, tad par katru cenu ielasīsi to? Reizēm tas nozīmē pilnīgi pretējo, ka šāds XML NAV jāielasa, jo kāpēc gan ielasīt kļūdainu XMLu? Vai tu gribētu, ka tavā bankas kontā tiktu ielasīts kļūdains XML? :) Bet tas nav jāuztver burtiski, vairāk tas tā, priekš pārdomām...

     

    Bet, ja tas patiešām ir tā, ka jāielasa par katru cenu, arī tad, ja aplikācija izmet Exception, tad ir jālabo aplikācija, nevis jāizslēdz Exception. Jo Exception nozīmē to, ka ir izņēmumsituācija. Respektīvi, situācija nav normāla! Daļu izņēmumsituāciju programmētājs parasti paredz, tādēļ, izmantojot to, ka Exception ir dažādu tipu, programmētājs tad šīs paredzētās izņēmusituācijas var apstrādāt savā programmā. Tas neizslēdz to, ka daļā situāciju darbs tiek turpināts. Pseidokodā:

     

    for xmlNode in xmlNodes:
    try:
       	doSomethingWithNode(xmlNode); // throws NumberFormatException
    catch NodeEmtpyFriendlyException e:
       	// Mēs zinām, ka šitā var gadīties, turpinām darboties
       	// nothing
    catch NumberFormatException e:
       	// Atkal zināma situācija, taču neprasa apturēšanu
       	warn "Kļūda " + e.getTraceAsString();
       	xmlNode->numurs = 0; // patiesībā pat varam sagremot
    catch Exception
       	// Nezināms, neparedzēts Exception, sūtam epastu
       	email "Slikti";
       	// un, pieņemsim, ka mums jātaisa rollback...
       	rollback();
       	throw new AppException('Application encountered an unexpected XML, rolled back'); // šito uzķers augstāka līmeņa objekts un, piemēram, attēlos lietotājam draudzīgu error lapu (vai lodziņu) bez Stack traces, ierakstīs kļūdu logā utt.
    end;
    end;
    

     

    Kas attiecas uz šo te:

    tāpēc pēc internal_errors uzsetošanas exceptions kļūst nevajadzīgs jo try būs pozitīvs jebkurā gadījumā.
    Kā jau skaidroju, Exceptions nevar būt nevajadzīgs. Exceptions ir neatņemama OOP sastāvdaļa (tāda, kādu to pazīst JAVA, C# u.c.). edgarsj jau norādīja, PHP pusē tā ir liela problēma, ka tas nav tīrs OOP un grūti ir ar to kļūdu apstrādi. Piemēram, ja JAVĀ augstākā līmeņa objekts uzķers visus Exception (bubble up princips), tos visus šajā objektā var logot ar pilnu stack trace un vēlāk debugot, tad PHP pusē aplikācija var vienkārši nomirt ar Erroru un ej nu saproti, kas un kā, un kapēc.
  8. .. un neuztraukties par nekādiem exceptioniem. Neesmu nekad mēģinājis XML lietas iekš Python,bet tāpēc jautājums tīri interesei: kas tur notiks identiskā gadījumā? Ielasam XML,izrādās ka tas ir nevalīds,noķeram exceptionu un ....? Izvadam glītu paziņojumu ka XML diemžēl nevar tikt apstrādāts un viss beidzas?

    Rodas iespaids, ka tā īsti nav sapratnes par to, kas ir Exception un kā tos pareizi lieto. Programmētājs, kas saprot, ko dara, par Exceptioniem neuztraucas. Pat otrādi, viņš tos lieto, tā ir daļa no aplikācijas projektējuma.

     

    P.s.: http://php.lv/f/topic/20520-ka-panakt-lai-loop-turpinas-pec-fatal-error/page__view__findpost__p__160015

  9. Tas, ko daGrevis iecitēja, ir iemesls, kas lika izvēlēties PHP, jo tādas šķita pārējās alternatīvas. Tieši priekš Web PHP ir īstais āmurs, īstās knaibles, utt. Vispār, visi šie argumenti man šķiet tādi pašķidri, katrs ir to deķi krietni pavilcis uz savu pusi. Pirms PHP esmu apguvis citas valodas un varbūt tādēļ arī šo cepšanos vairāk uztveru nevis kā cepšanos par PHP kā izstrādes instrumentu, bet kā vidi, cilvēkus. PHP nav ne ģeniāls, ne sux, tas vienkārši ir ērts rīks web lapām.. Tāpat kā JavaScript ar vai bez jQuery utml. abstrakcijām - web lapas dinamiskumam un MySQL nemaz nebūtu zināms, ja tajā laikā Oracle/IBM/MS būtu devušas pa brīvu savas datubāzes.

     

    Un kāpēc gan lai Java nebūtu "random collection of arbitrary stuff"? Novelc bibliotēkas un lieto, par katru tēmu varēs atrast vairākas.

     

    Viena lieta, kuru gan var pamanīt - šajās diskusijās var redzēt, ka programmēšanas jomā krītas zināšanu līmenis. Viedokļi ir vairāk emocionāli, vienpusīgi, personīgās iedomas pasniegtas kā fakts.. Ja mediķim jāmācās 10 gadus, es teiktu, ka programmētājam arī tik pat, un ar to es domāju mācīšanos intensīvi, katru dienu, par dažādām tēmām.

     

    Esiet kritiski!

  10. Viss jau ir relatīvi, grūti pateikt, kas ir slikts un kas ir labs, taču piekritīšu šim viedoklim:

    ..piemeeram, malinens neizlasiitu, ka katru funkciju nevajag wrap'ot ieksh function_exists() (to vajag dariit tikai ljoti retos gadiijumos un arii tad tas visticamaak noziimee, ka aplikaacija ir kreisi uzbuuveeta).

    Tā grūti īsumā pamatot, lietojumi ir dažādi. PHP versijas ir tikai "viens no" (t.i., realizējot funkciju, kas varētu nebūt zemākā versijā). Bet ir arī, piemēram, gadījies redzēt, ka tas ir izmantots include_once vietā.

  11. Paga paga, es teicu, ka LV gov projekti nav lieli, Tu teici, ka ir. Es prasīju, lai parādi vienu un Tu man prasi lai es definēju lielizmēra projektu lai Tu to varētu man piemeklēt? Are you being serious?

    Nu ja jau bez tā nevar, piemeklē man LV gov projektu, kura izstrādei (loģiski, ka sīki labojumi pēc publikācijas neskaitās, tā pat, kā saskaņošana un vispārēja plānošana) līdz pašreizējam stāvokli būtu patērētas vairāk kā 30k programmētāju darba stundas. Lai rastos asociācijas, tas ir aptuveni tik daudz, cik vidēja 10 cilvēku komanda izdara 18 mēnešu laikā. Aprēķinā pieņemam, ka devi nesēž un tupa neurbina degunu, un projektā piedalās tikai staffs ar vismaz 2-5 gadu pieredzi. Jeb man vēl precīzāk Tev definēt?

    Domāju, ka te ir problēmas ar vēlmi saskatīt reālo situāciju un izkāpt no savas pieņēmumu pasaules. Lielu valsts IT sistēmu ir pietiekoši un par lielāko daļu tu pat nenojaut. Ar to, ka izsaki, vai, pareizāk sakot, izvirzi diletantiskus, jo patvaļīgus, nosacījumus, par profesionāli nekļūsi...

  12. Topiks ir noderīgs kaut vai tāpēc, ka dažiem ir iespēja (tikai iespēja), ka šeit kāds pieredzējis profiņš pastāstīs kaut ko ievērības cienīgu. Vai pateiks kādu joku, kura saprašanai jums vajadzēs dažu gadu pieredzi. Ja tas nešķiet noderīgi, tad šāda noskaņojuma periodus var pārlaist spoki.lv vai 9gag.com, vai te pat citos topikos, risinot iesācēju problēmas.

  13. da nepiesienies vārdiem, neesmu daildirsējs :D Nop, vienkārši ir vajadzība nočekot un viss.

    Uzraksti to savu vajadzību uz papīra, vēlams, mīksta, un atceries paņemt līdzi, kad rodas lielāka vajadzība.

  14. Jēga tāda, ka malware/vīrusi skanē izplatītāko ftp klientu paroļu glabāšanas direktorijas un tur iegūst info, ko izmanto, lai slēgtos no sava gala. Ja ir draza, kas sēž uz tīkla trafika, tad tas protams nelīdzēs.

  15. Tieši to jau arī saku.. top pārlūkprogrammas ir dažas, mājaslapu ir miljoniem. Varētu pārlūkiem ielikt, ka pēc updeita paprasa, vai esi Eiropā, un ja esi, tad vismaz sākumā ir ieslēgti cookies brīdinājumi (kuri jau ir šobrīd visos, tikai deaktivizēti by default.)

     

    Vai nu likuma mērķis ir cits, vai arī to likumu pieņēmuši pilnīgi saspiedušies "tiesību" fanāti... Es tomēr sliecos domāt, ka tas ir lai pakustinātu IT nozari un pabarotu juristu armiju.

×
×
  • Create New...