Jump to content
php.lv forumi

daGrevis

Reģistrētie lietotāji
  • Posts

    4,824
  • Joined

  • Last visited

Posts posted by daGrevis

  1. > Jūs nerakstāt klāt, ka tas int ir, teiksim, reāli dzēsto ierakstu skaits?

     

    Es nerakstītu ka tas ir integers (es runāju tieši par tipu rakstīšanu). Es raktītu ka tas ir ierakstu skaits kas tiks izdzēsts.

  2. Neatmaksājas.

     

    https://github.com/laravel/framework/blob/5.2/src/Illuminate/Validation/Factory.php

     

    Šausmīgs noise un ieguvumi ir apšaubāmi. Parasti jau ir skaidrs ko funkcija saņem un atgriež tikai paskatoties uz funckijas nosaukumu un argumentu nosaukumiem. Ja tomēr nav skaidrs, lietderīgāk būtu salabot kodu, nevis pielikt hintus par to kas tur notiek. Comments being out of sync noteikti ir problēma. Iemesls, kāpēc lietot, daudziem varētu būtu autocomplete no IDEs.

  3. > Tāda "tikai vim / notepad" lietošana ir raksturīga iesācējiem, kas vēl nav saskārušies ar situāciju, ka tas, ko viņi iemācījās no galvas, nevienam nav vajadzīgs jau trešo reizi.

     

    > jo cilvēki tomēr raksta ar melnu tinti uz balta papīra, bet krāsaini burtiņi uz melnas tāfeles parasti ir ēdienkarte hipsterīgās kafejnīcās

     

    Nice opinions!

  4. > Teikšu godīgi, bez paniskas gūglēšanas es to nevarētu, un arī tad pasvīstu.

     

    Nevajag baidīties, Google ir programmētāja draugs! Par svīšanu - atkarīgs no attiecīgā uzdevuma. Augstāk minētais bija vienkārši piemērs un ne jau no vieglākajiem.

     

    > Kaut kā neizprotu līdz galam tos branchus, mērdžus, pul requestus... saprotu, ka tas viss labi un gudri, bet nu man tas šķiet sarežģīti.

     

    Iesaku mēģināt savā galvā vizualizēt commitus kā koku, padomāt kā diff maina tavu kodu (datus) starp commitiem un kā tas tiek saglabāts, apstrādāts. Nekas tur tāds _ļoti_ sarežģīts nav.

     

    > kur jāliek vien lietā SQL (konsole), jo query builderis (GUI) ir par īsu.

     

    Exactly my point.

     

    > Kas tas tāds par flowu? Sūtat zip failā patchus caur e-pastu arī? :))

     

    Nekādus patchus pa e-pastiem, lūdzu! :D Augstāk minētais bija tikai ilustratīvs piemērs kaut kam custom, pirmais kas iešāvās prātā. :)

  5. > Also - so pro, much cli. Except we don't need it.

     

    Nu gan...

     

    Kad saskarsies ar kaut cik custom problēmu, uzraksti!

     

    Piemēram,

     

    * izfiltrē man Git branchus, ne vecākus par trim dienām,

    * kuros ir bijuši jauni commiti salīdzinot pret master branch,

    * tad saglabā šos commitu messages pa Markdown failiem un šos failus atsūti man uz e-pastu.

     

    Šādu problēmu tu vari sabakastīt neizmantojot termināli? Nez vai.

     

    Daudz vieglāk būtu uzrakstīt dažas rindiņas Bash. Nevajag apgalvot, ka jums nevajag shellu; tas ir tikai vēl viens toolis ko ir ļoti labi zināt un izmantot, kad nepieciešams.

  6. > daGrevi, es vēl gaidu, kad pastāstīsi sīkāk par saviem fona procesiem, interesantos aspektus! :)

     

    Bijām uztaisījuši tādu abstrakciju, ka ir bāzes klases ar nosaukumu `BaseService`, kuru manto visi

    servisi. Tad bija noteikta failu un direktoriju struktūra kurai vajadzēja sekot kad taisi servisu.

    Tālāk jau Docker mācēja no tā uzbūvēt image un pēc tam uzspawnot containeri. Katram servisam arī

    bija klienta klase. Ar servisu tu sazinies izmantojot klientu.

     

    Šeit ir pseudo-kods ar diviem servisiem:

     

    ~~~

    class UserService(BaseService):

     

    def create_user(...):

    # ...

     

    def delete_user(...):

    # ...

    ~~~

     

    ~~~

    class PaymentService(BaseService):

     

    def deposit(...):

    # ...

     

    def withdrawal(...):

    # ...

    ~~~

     

    Klientu klases nebija jāraksta — tās tika auto-uzģenerētas runtimā. Same ar worker kodu, tas arī nav

    service-specific.

     

    Nākotnē bija doma rakstīt klientus arī PHP, jo mums ir cita aplikācija, rakstīta PHP, kurai arī

    vajadzētu runāt ar servisiem.

     

    Tad ir, piemēram, web node kura, izmantojot klientu, runā ar servisiem kuri atrodas, iespējams, uz

    cita datora. Smukā lieta te ir tur, ka programmētājs, most of the time, var aizmirst, ka

    `UserService` atrodas uz cita datora. Tas kas notika under the hood, pateicoties RabbitMQ, bija

    taska ielikšana message queue. Tālāk jau `UserService` workers to paņēma uz izpildīja.

     

    ~~~

    def sign_up(request):

    form = SignUpForm(request.data)

    if form.is_valid():

    UserClient.create_user(form.data) # UserClient, nevis UserService.

    ~~~

     

    By default visi taski pildās asinhroni. Metode `create_user` atgriezīsies instanti. Bija iespēja

    pateikt, ka gribi gaidīt rezultātu no vienas vai vairākiem calliem. Te jau parādās tas aync nature

    on backend, ko briedis noliedza. Redzi ka tomēr var būt. :)

     

    Arī patīkami ka šis viss scalojas horizonāli.

     

    > Cik līmeņos viņi sarunājās, cik tādi procesi vienlaicīgi gaidīja (cik viņi bija saistīti)?

     

    Procesi vispār nav saistīti. Viss kas viņiem ir kopīgs ir runāšana caur RabbitMQ.

     

    Ko tu biji domājis ar tiem līmeņiem?

×
×
  • Create New...