Jump to content
php.lv forumi

daGrevis

Reģistrētie lietotāji
  • Posts

    4,824
  • Joined

  • Last visited

Posts posted by daGrevis

  1. > Ko darīt ar datubāzi, palaižot integrācijas testus? Ja tiek spaidītas kaut kādas pogas, tad dati iekš DB mainās. Pirms tam jāpalaiž kaut kāds DB seed refrešs?

     

    Mēs pilnīgi visu vidi, kas ir balstīta uz Docker containers, pilnīgi nonesam un palaižam no jauna pirms testu pildīšanas. Tas ietver sevī Postgres, RabbitMQ un Redis containers.

     

    Vienkāršā gadījumā palaid FLUSH ALL or smth un datubāzes migrācijas, lai būtu tukša bāze sākumā.

     

    > cik bieži būtu normāli palaist integrācijas testus? Izskatās, ka tie varētu aizņemt kādas 3min..

     

    Mēs laižam pie katra pusha iekš master. Integrācijas testi (īstenībā saucās funckionālie testi) ir ilgi un var būt pat desmitiem minūšu.

  2. Mkdir, move_upload_file un tamlīzdīgs bullshit ir kkas, ko tev uzspiež glabāšana filesistēmā un ir incidental complexity.

     

    Ja mēs pieņemam, ka viena rindiņa ir **jebkurā valodā**, uz **jebkura backenda** (filesistēma, datubāze utml.), kādi ir plusi un mīnusi katram?

  3. Da jebkas, kas ir baltīts uz Selenium (mēs izmantojam Robot Framework, bet jautājums ir vai jums vajag Gherkin). PhantomJS un viss, kas ir baltīts uz to, kā CasperJS, ir galīgi garām, jo PhantomJS ir balstīts uz aizvēsturiska WebKit.

  4. Es par to S3 tikai tāpēc, ka datubāzē nevajadzētu glabāt video vai lelus failus. Bet kad es saku, glabāt avatarus un whatnot iekš datubāzes ir OK.

     

    No otras puses, atļauj lietotājam augšupielādēt failus, kas tiek mesti tur pat blakus tajā failsistēmā, kur atrodas kods un paroles, vienkārši ir uzprasīšanās uz lielām problēmām.

  5. > Nē, zini, speciāli ņems atsevišķu serveri lietotāju avatariem.

     

    Mazus avatarus un citus štruntus maucam datubāzē. Lielākiem failiem izmantojam S3 vai alike.

     

    Izmantot vienu un to pašu failsistēmu gan kodam, gan static ir kkas tāds, par ko vajadzētu griezt pirkstus nost.

  6. Kad cilvēki nezināja kas ir ritenis un domāja, ka vienīgais veids kā pārnest priekšmetus ir tos nest ar rokām — arī viņi domāja, ka viss ir kārtībā un tas ir pats efektīvākais un labākais veids. Ja tu neesi iedziļinājies un strādajis ar programmēšanas valodām, kurās mainīgais ir immutable, tu nezini, vai mutable values rada bagus, jo neko citu neesi redzējis.

  7. Tas nav JavaScript specific un saucas passing by reference (otrs ir passing by value). Galvenokārt tiek darīts performancei — nav jākopē un jātaisa pilnīgi jauns objekts.

     

    Daļa no jaunajām valodām (salīdzinoši jaunajām) no šī antipatterna un feila dizainā virzās prom ar konceptu sauktu par immutable variables. Tas strādā tā, ka tu nekādīgi nevari izmainīt vērtību mainīgajam — tu vienmēr veido jaunu mainīgo ar kopētu saturu. Varbūt tas ir nedaudz lēnāk (bet tas visticamāk nebūs bottleneck), taču tas atrisina 100 un vienu heisenbagu un ir tā vērts. Kā piemērus šādai pieejai varu minēt Haskell un Clojure.

  8. > Tipa šitā UPDATE topics SET comments=comments+1 WHERE topicid=:id

     

    Un tad ņemties, ka kkur nav pareizs skaits, jo kkur, ļoti sen, bija aizmirsta tranzakcija un programma izlidoja kkur pa vidu. Jebkurā gadījumā, to count nevarētu uztvert kā kko nopietnu un vajadzētu kkādu smuku mehānismu kas pārskrien pāri visiem rakstiem un sarēķina count no esošajiem komentāriem šim rakstam.

×
×
  • Create New...