Jump to content
php.lv forumi

Леший

Reģistrētie lietotāji
  • Posts

    666
  • Joined

  • Last visited

Posts posted by Леший

  1. On 3/10/2020 at 10:26 AM, mad182 said:

    Jā, bet man nav nekādu problēmu turpināt lietot un attīstīt pirms 6, 8 vai 10 gadiem iesāktu projektu.

    Es uzskatu, ka šādi programmētāji ir lielākais ļaunums. Kurš tev teica, ka kāds cits sapratīs tavu 10gv govnokodu? 99.9999% varbūtība, ka tavu kodu pēc tam uzturēs kāds cits. Un man savā pieredzē ar tādiem "brīnumbērnu" projektiem nācas saskarties diezgan bieži. Hell, es varu par to uzrakstīt grāmatu!

    On 3/10/2020 at 10:26 AM, mad182 said:

    Drusku triggeroja kā te visi Grey_Wolf metās virsū jo viņš atļāvās paziņot ka neizmanto ietvaru :D

    Viņam metas virsū tāpēc, ka viņš atļāvās paziņot, ka ietvars nekad nav vajadzīgs un ir sūds pilns ar bugiem un bremzē.

    On 3/10/2020 at 8:09 AM, mad182 said:

    Uz ietvariem būvētās lapas ir lielāka sāpe upgreidot ilgtermiņā.

    Tas man liekas ir atkarīgs no programmētāja. Ja rokas no pakaļas, tad jā, tā ir sāpe. Bet tavs arguments ir apgāžams ar elementāru faktu, ka ietvaru izstrādātāji parasti seko līdzi tendencēm un zina par topošām izmaiņām PHP versijās pirms visiem pārējiem PHP programmētājiem. Un paredz to savos ietvaros.

    Esmu taisījis ietvaru upgrade projektiem uz tādiem ietvariem, ka CI, Fuel, Laravel. Sliktākajā gadījumā tas bija dažu stundu jautājums, piemēram, kad kaut kādam akmens laikmeta serverim ar vecu *buntu un php 5.3 vajag upgreidot ietvaru un uzlikt php 7.*. Pārējos gadījumos viss notiek ļoti gludi. Un galvenais, ka praktiski vienmēr kods ir saprotams un maintainojams. Ko praktiski nekad nevar pateikt par projektiem, kurus kāds taisīja uz "sava koda".

  2. 2 hours ago, briedis said:

    Tas ir tā kā labi vai slikti? Jo nepārāk sen: "How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript" https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/

    Tā kā sava taisnība @Grey_Wolf ir, lai kā negribētos piekrist :)

    Manu tekstu bija jāsaprot, ka grey_wolf nezin pat par npm. Un izmantot kādu package manager 2020. gadā ir nevis labi vai slikti, bet obligāti.

  3. 4 hours ago, Grey_Wolf said:

    - nu nafig vilkt milzu JS "ietvaru" , ja lapā izmanto vienu JS funkciju.. 

    JS ietvari parasti netiek veidoti, lai izmantotu vienu JS funkciju. Tu jauc ar bibliotēkām.

    4 hours ago, Grey_Wolf said:

    - un jā, JS ietvari, agri vai vēlu var sagādāt pārsteigumus- tko to izstrādātāji pārtrauks tos uzturēt (teiksim likvidēs lapu, no kuras tie tiek ielādēti) .. 

    Tu droši vien pat neesi dzirdējis par npm.

    4 hours ago, Grey_Wolf said:

    P.S. slikts ir programmētājs, kas nedomā par koda optimizāciju, bet domā- ai lietotājs nopirks labāku "dzelzi" ... 

    Nē, slikts programmētājs ir tas, kas taisa "elementāras lietas" pats, neizmantojot instrumentus, kuri tam ir domāti. Jo tāds programmētājs iztērēs laiku, izgudrojot divriteni, kuram noteikti būs drošības caurumi un nebūs normāla composer atbalsta utt.

    Runājot par ātrumiem - ar opcache to pašu laravel var paātrināt diezgan pamatīgi. Tavs self-made kods varēs sacensties ātrumā?

  4. 1 hour ago, mad182 said:

    Man ir bijusi darīšana ar vairākām uzlauztām lapām, gan senos laikos savām, gan daudz vairāk reižu sakopjot citu nelaimes, un praktiski vienmēr, kad problēma ir bijusi kodā, tā ir nākusi no "tūkstošiem cilvēku review-ota open source" CMS/frameworka/liba nevis sava koda..

    Vienīgais skaidrojums šim varētu būt, ka lapa uz "sava" koda nevienam nav vajadzīga :)

    Bet nopietni runājot - vari nosaukt konkrētus piemērus? Un aprakstīt konkrēta OS FW ievainojamību.

  5. 3 hours ago, codez said:

    ja tev kaut kas liekas nepareizi, norādi kā tavuprāt labāk

    Labāk būtu stāstīt cilvēkiem nevis kā izvairīties no nodokļu maksāšanas diezgan apšaubamā ceļā, bet variantus, kā var likuma robežās optimizēt nodokļus un kā tos atgriezt. Tavi teksti a-la "visu var pirkt uz firmu un par to nekas nebūs" ir diezgan naīvi un ir tālu no patiesības. Unless, tu strādā valdībā/domē, vai esi ušakova čoms.

  6. Tu uzskati, ka, ja grozā ieliek ābolus un bumbierus, tad grozā nav ne ābolu, ne bumbieru.

    Nē, es uzskatu, ka ja grozā ir gan āboli gan bumbieri, tad tas nav ābolu grozs, bet grozs, kurā ir arī āboli. Augstāk es rakstīju par tīri funkcionālām valodām. Tādās valodās ir konkrēts pilnvērtīgs koncepts bez liekām lietām. Scala nav no tādām valodām.

  7. Neizrādi savu nekompetenci.

    Objekts nepadara valodu par tīri ne funkcionālu, bet tas, vai ir iespējams mutēt stāvokli.

    Nemutēšana nepadara valodu par funkcionālu, lūdzu neraksti muļķības un neizrādi savu nekompetenci šajā jautājumā.

     

    Izklausās, ka tu nezini, kas ir tail recursion. Tail recursion ir tad, kad funkcija tiek atkārtoti regulāri izsaukta un

    atsevišķos gadījumos iespējams uz katru funkcijas izsaukumu nebūvēt steka ierakstu, bet to visu pārveidot parastā ciklā.

    Tas ir, tur raksti funkcionālo, bet kompilātors pārvērš par ciklu.

    Nu prasīju tikko, neraksti muļķības. Es lieliski zinu, kā strādā tail recursion un kā strādā funkcijas izsaukumi CPU līmenī (call = push IP + jump) un kā var mainīt to adresi, uz kuru ret'ojas funkcija. Es tev teicu, ka nefunkcionālās valodās var izveidot tail ar ciklēšanu, un ES6 tail ir realizēts natīvi.
  8. OOP un funkcionāls programmēšanas stils nav pretstati - tās ir divas lietas, kuras var izmantot vienlaicīgi.

    Ja runa ir par pseido-funkcionālo programmēšanas valodu, piemēram Scala, tad jā. Bet tīri funkcionālās valodās objekti nevar pastāvēt. Tuvākais objektiem var būt ieraksti.

     

    Scalā un vismas ir tail recursion, kas ļauj daļu šādu algoritmu rakstīt funkcionāli ar rekursiju un pietiekami efektīvi, bet javascriptā nekā tāda nav.

    Bez problēmām var īstenot tail recursion jebkurā imperatīvā valodā, it īpaši JS. Funkcionālās valodās tail biežāk ir iebūvēts pateicoties laziness.
  9. A jēga uzdevumam jebšu kam tas domāts/plānots?

    For fun. Nekādas jēgas nav. Varbūt tikai parādīt, cik labi cilvēks prot valodu un visādus valodas knifiņus.

     

    Mans variants:

    import Data.Char
    import System.Environment
    
    fib = 1 : scanl (+) 1 fib
    
    foo = map (chr . fromIntegral . (*3)) $ f : replicate 2 (f + 3)
        where
            f  = fib !! ((>>= id) (.) (fromIntegral . (!!) fib) 4)
    
    output = mapM_ print . reverse . map ((>> foo) . e1) . e1
        where
            e1 = enumFromTo 1
    
    main = getArgs >>= output . read . head
    

    usage:

    ./foo 3
    
  10. Uzdevums ir sekojošs:

     

    Ir vārds "foo". Vajag uzrakstīt programmu, kas saņem uz input (vai kā argumentu, vienalga) integer skaitli n > 1. Programmai vajag izvadīt n rindas, pirmā no kurām ir jābūt n reizes vārdam "foo", otrā rindā n-1 reizes utt, pēdējā rindā vārdam foo ir jābūt tikai vienu reizi.

     

    Piemērs:
    > foo 3
    foofoofoo

    foofoo

    foo

     

    Svarīgākais nosacījums programmai: tai ir jābūt pēc iespējas obfuscētai. Bez koda aizkodēšanas un ievērojot koda standartus (indents utt) ir jāpanāk to, lai kods izskatītos maksimāli sarežģīti, lai cilvēks no malas ar lielām grūtībām varētu saprast, ko programma dara.

     

    Izmantot var conventional, lasāmas valodas, nevar izmantot brainf**k vai līdzīgus.

×
×
  • Create New...