Mai bine rubin

În primul rând rubinate.
În al doilea rând, un exemplu din viață este bijuteria. Cu o duzină de clase, toți se folosesc reciproc.
A existat nevoia de a schimba ușor comportamentul unei perechi de metode din una dintre clase - se întâmplă.






Ce veți face în cazul php? Faceți o copie locală a bibliotecii, rupeți metodele după cum aveți nevoie.
În cazul rubinului, puteți:
1. Modificați complet implementarea unei metode pentru o anumită clasă
2. Înfășurați implementarea existentă cu codul dvs., salvând metoda veche cu un nume nou folosind metoda alias_method
În al treilea rând, metaprogramarea. Deși a meritat, în primul rând. Prin metaprogramare, codul Ruby este laconic și ușor de citit.






În al patrulea rând, sunt doar încântat să pot scrie construcții precum 2.hours.ago - ghici ce face?

krasaUchik, chiar și fără holivara, despre imaginile din capul meu în general zahăr, zalyusoval

Limba @Kaaboeld în sine (Sunt doar despre limba, nu despre ecosistemul, nu despre biblioteca, nu despre piața forței de muncă) este foarte flexibil, vă permite să introduceți propriul nivel de abstractizare pentru propriile sale probleme. Aceasta este ceea ce se numește eDSL. Acest lucru se realizează datorită mai multor caracteristici lingvistice, de exemplu datorită blocurilor. Un bloc este o bucată de cod care poate fi trecut ca un argument undeva și executat în contextul în care a fost definit (!). Datorită blocurilor puteți face aceste lucruri:

O altă caracteristică este că orice cod întoarce întotdeauna o valoare. De câte ori ați vrut să faceți acest lucru
a = dacă (.) altceva
sau

Aceasta este o formă simplă și naturală de scriere, în loc de toate sarcinile de naștere în fiecare caz. Adică, în rubin puteți lucra mult mai aproape de stilul declarativ, fără a folosi chiar posibilitățile metaprogramării. Încă o dată, subliniez faptul că aceste caracteristici nu sunt legate de ecosistem sau de piața forței de muncă, ci caracterizează rubinul ca instrument independent.







Articole similare

Trimiteți-le prietenilor: