Sorbet, pergalek kontrolkirina celebê statîk ji bo Ruby, çavkaniyek vekirî ye.

Pargîdaniya Stripe, di pêşkeftina platformên ji bo dravdanên serhêl de pispor dibe, vekir kodên çavkaniya projeyê Sorbet, ku di nav de pergala kontrolkirina tîpên statîk ji bo zimanê Ruby hate amadekirin. Kod bi C++ û tê nivîsandin belav kirin ji hêla lîsansa di bin Apache 2.0.

Agahdariya li ser cûreyên di kodê de dikare bi dînamîkî were hesibandin, û hem jî dikare di forma sade de were destnîşankirin annotations, ku dikare di kodê de bi karanîna rêbaza sig-ê were destnîşan kirin (mînak, "sig {params(x: Integer).returns(String)}") an jî di pelên cûda yên bi dirêjkirina rbi de were danîn. Berdeste wek pêşîn analîza koda statîk bêyî pêkanîna wê, û kontrolkirina ku ew hatî darve kirin (vedibe bi lêdana "hewceyê 'sorbet-runtime' ji kodê.

Îhtîmal dayîn wergera gav bi gav projeyên ku Sorbet bikar bînin - kod dikare hem blokên tîpkirî yên şîrovekirî û hem jî deverên netîpkirî yên ku ji hêla verastkirinê ve nehatine vegirtin bi hev re bike. Taybetmendî di heman demê de performansa pir bilind û şiyana pîvandina bingehên kodê yên ku bi mîlyonan rêzikên kodê vedihewîne jî vedihewîne.

Proje ji bo kontrolkirina celebê statîkî, kernelek heye,
amûrek ji bo afirandina projeyên nû bi karanîna Sorbet, amûrek ji bo veguheztina gav-bi-gav a projeyên heyî ji bo karanîna Sorbet, dema xebitandinê bi zimanek domain-taybet ji bo nivîsandina şîroveyên li ser celeb û depo Bi nîşanên celebên amade yên ji bo pakêtên cûda yên Gems-ê yên amade.

Di destpêkê de, Sorbet ji bo kontrolkirina projeyên navxweyî yên pargîdaniya Stripe, ku piraniya pergalên dravdan û analîtîk ên wê bi zimanê Ruby hatine nivîsandin, hate pêşve xistin, û piştî sal û nîvek ji pêşkeftin û pêkanînê veguhest kategoriya çavkaniya vekirî. Berî vekirina kodê, ceribandina betayê hate kirin, ku tê de zêdetirî 30 pargîdanî beşdar bûn. Di qonaxa pêşkeftinê ya heyî de, Sorbet piştgirî dide destpêkirina piraniya projeyên standard di Ruby de, lê dibe ku hin nakokî hebin.

Source: opennet.ru

Add a comment