3.6 KiB
Hobetsi jatorrizko JS metodoak Lodash bezalako erabiltzailearen baliabideak baino
Azalpen paragrafoa
Batzuetan, jatorrizko funtzioak erabiltzea lodash edo underscore bezalako liburutegien erabilera behartzea baino hobea da, hauek errendimendu galera bat ekar baitezakete eta beharrezko baino memoria gehiago hartu
Jatorrizko funtzioak erabiltzeak %50 inguruko erabateko irabazia suposa dezake, funtzio hauek kontutan hartzen direlarik: Array.concat, Array.fill, Array.filter, Array.map, (Array|String).indexOf, Object.find, ...
Abididea: konparaketa frogak: Lodash versus V8 (jatorrizkoa)
Azpiko grafikoak Lodashen funtzio anitzentzako frogen esanahia erakusten du, batazbeste Lodashen 146 funtzio hartzen ditu kontutan. 23% denbora gehiago behar da ataza berak V8 funtzioekin egiteko.
Kodearen adibidea: _.concat/Array.concaten froga
const _ = require("lodash");
const __ = require("underscore");
const Suite = require("benchmark").Suite;
const opts = require("./utils"); //cf. https://github.com/Berkmann18/NativeVsUtils/blob/master/utils.js
const concatSuite = new Suite("concat", opts);
const array = [0, 1, 2];
concatSuite
.add("lodash", () => _.concat(array, 3, 4, 5))
.add("underscore", () => __.concat(array, 3, 4, 5))
.add("native", () => array.concat(3, 4, 5))
.run({ async: true });
Non hau bueltatzen duen:
Hemen froga zerrenda luzeago bat aurki zenezake edo bestela exekutatu hau, berdina erakutsiko du baina koloretan.
Blogeko aipua: "(baliteke) Ez duzu Lodash/Underscoreren beharrik (ez izatea)"
Lodash eta Underscoren beharrean zentratutako biltegitik.
Lodash eta Underscore JavaScripten erabilgarritasun liburutegi moderno bikainak dira, eta Front-end garatzaileen artean oso erabiliak dira. Hala ere, nabigatzaile modernoak jomugatzat dituzunean, pentsa dezakezu funtzio hauetako asko jatorriz ECMAScript5ek [ES5] and ECMAScript2015ek [ES6] badituztela. Zure proiektuak menpekotasun gutxiago edukitzea nahi baduzu, eta argi badaukazu zein nabilgatzaile duzun helburutzat, baliteke Lodash/Underscore behar ez izatea.
Adibidea: jatorrizko funtzioak ez direnak garbitzen
Badago ESLint plugin bat behar ez dituzun liburutegiak detektatzen dituena eta honen inguruan aholkuak ematen dizkizuna (adibide bat behean).
Hau martxan jartzeko modua zure ESLint ezarpen fitxategian eslint-plugin-you-dont-need-lodash-underscore plugina gehitzea da:
{
"extends": ["plugin:you-dont-need-lodash-underscore/compatible"]
}
Adibidea: linter bat erabiliz, beharrezko ez diren v8 funtzionalitateen erabilera detektatu
Eman begirada bat azpiko fitxategiari:
const _ = require("lodash");
// ESLintek azpiko lerroa markatuko du iradokizun batekin
console.log(_.map([0, 1, 2, 4, 8, 16], (x) => `d${x}`));
Hementxe dago ESLintek bistaratuko lukeena YDNLU plugina erabiliz.

Noski, adibide honek ez du errealista ematen, egungo kodeek dutena kontutan hartuz, baina ideia bat egin zenezake.

