1/11 Šodien izbrīnīju PHP koderi ar stāžu, kad skaidrojot realizāciju, uzmetu pāris koda rindiņas ar lietām, no kurām dažas iekš PHP ir jau kopš 7.0 un viena no 5.6. Uzskaitīsim tās trīs un dažas citas, kuras redz reti
Sakarā ar to, ka Twitter ir slēdzis bezmaksas piekļuves savam API, šis projekts var tikt uzskatīts par mirušu sākot ar 2023. gada 15. jūniju.
Šis ir tvitera pavediens. No senākā uz svaigāko. Tvītu skaits: 32
1/11 Šodien izbrīnīju PHP koderi ar stāžu, kad skaidrojot realizāciju, uzmetu pāris koda rindiņas ar lietām, no kurām dažas iekš PHP ir jau kopš 7.0 un viena no 5.6. Uzskaitīsim tās trīs un dažas citas, kuras redz reti
2/11 declare(strict_types=1);, parametru/atgriežamo vērtību tipu hinti un variadic parametri (jau kopš 5.6!!). Muļķīgs, bet ilustratīvs piemērs.
3/11 Spaceship operators. Nav jau tā, ka ellīgi bieži vajag, tiesa. Bultiņfunkcijas ir nedaudz apgraizītas - drīkst būt tikai viena izteiksme, un tās vērtība tiek atgriezta. Gūzma ar tipu hintiem (skalārie, object,
4/11 Anonīmās klases. Nomm nomm mockotu klašu obfuskācijai un nelasāmībai iekš testiem.
5/11 Nullable parametri un atgriežamās vērtības.
6/11 Man šķiet, ka viņiem ir kaut kāds iekšējais konkurss par null coalesce pierakstiem.
7/11 Izklaides ar destrukturēšanu.
8/11 Šitā te tagad var ķert negaidītpēkšņizņēmumgadījumkļūdnes.
9/11 Un tāds nieks kā negatīvie indeksi stringiem (ne biksiņām). Darbojas arī visās str_* funkcijās, kur līdz šim nedarbojās.
10/11 Komati, Komatiem drīz būs vairāk tiesību kā pilsoņiem!
11/11 Nu, un tipi objektu propertijiem, jestrs skaitļu un beidzot lādzīgs unicode pieraksts.
@laacz Priekš kam isset() un vēl salīdzini, lai nav null? isset(null) === false.
@heremit Vainīgs, jā.
@laacz Redz reti, jo tos, kas klientiem raksta tādu kodu, atlaiž.
@hokamons Jo?
@laacz Manam darbam, protams, ir sava specifika, bet esmu neskaitāmas reizes dzirdējis gala klienta lamas par tiem, kas kodu raksta samudrītu vai šķiet lasa dokumentāciju un izmēģina visas valodas konstrukcijas produkcijā. #kādamtaspēctamirjāuztur
@hokamons Jaunākās?? 7.0 ir jau 5 gadus vecs un EOL.
@hokamons Un, ja darbs ir rakstīt tanī pašā php, tad vēl jo vairāk tev ir jazin un vajadzīgajā vietā jāprot izmantot to, kas ir pieejams. Nevis tikai to, ko esi apguvis jaunībā.
@laacz Es vārdu "jaunākās" nekur minēju.
@hokamons Tas bija neveikli izvēlēts vārds. Runa ir par to, ka, ja tavs darbs ir izstrādāt vai uzturēt kaut ko kādā valodā vai freimvorkā, jauno lietu ignorēšana tāpēc, ka nesaproti, ir slikti.
@laacz Nav man darbs rakstīt PHP 🤗 Es tik zinu, ka jebkuru konstrukciju var izrakstīt kādos 3 dažādos veidos. Tad nu vienmēr jāizvēlas vai raksti max ātrāko kodu, vai saprotamāko, vai fleksiblāko. Un vispār kādas ir klienta īpatnības, kas to vēlāk uzturēs.
@hokamons To biš - runa nav par "izmēģināt produkcijā". Runa ir par to, ka šīs konstrukcijas ir pilnīgi normāla valodas sastāvdaļa.
@hokamons Manuprāt pilnīgi visas lietas, kuras minēju, ir saprotamas. Labi, arrow funkcijas ir ar savu "jābet" un anonīmās klases var neveicināt labo praksi, bet pārējais viss ir forši.
@hokamons Piemēram, no visiem iespējamajiem viedokļiem šī konstrukcijas ir fuj: if (!isset($arr['kaka'])) { $arr['kaka'] = 'kaka'; } Šis ir skaisti, saprotami, ātri, ērti: $arr['kaka'] = $arr['kaka']??'kaka'; Šis ir vēl vienkāršāk: $arr['kaka'] ??= 'kaka';
@laacz @hokamons Nez, pirmais šķiet lasāmās, uzreiz saprotams jebkuram. Par ietaupītajiem tautsiņu spiedieniem es īpaši neuztraucos, programmējot rakstīšanai patērētais laiks tā pat ir niecīgs.
@Maadinsh @hokamons Pieraduma jautājums. array_key_exists arī pastāv. Vēl saprotamāk.
@laacz @hokamons Nu un ļoti labi ka pastāv, array_key_exists lieto tad, ja der arī null vērtība.
@Maadinsh @hokamons Protams. Bet te vairāk ir ilustrācija par to, ka kompakts un saprotams pieraksts ir daudz labāk, nekā lieks verbosity.
@laacz @hokamons Saprotu, bet es to "daudz labāk" īsti te neredzu. Man nekad nav patikuši visādi īsie vienrindas pieraksti tur, kur ir kaut kāda loģika no tā atkarīga. Vienkāršs if vai for vienmēr ir ātrāk saprotams pārskrienot ar acīm par visādiem ??, ??=, ?: vai bultiņfunkcijām un callbackiem.
@laacz Ir ir lietas, kas jālieto tāpēc, ka kārtīgi ietaupa vietu un kods neizskatās pēc #nekoptsmezs Un ja kāds nesaprot - jākomentē un jāpieradina. Tā es ar regex lēnām izglītoju klientu 😉
@hokamons Estētika no neprašas un estētika no profesionāļa ir divas dažādas lietas.