Intrebare pentru programatorii de JS

Ma uitam printre dependintele uinui proiect in vuejs (nu ca ar conta framework-ul) si am vazut ca sunt suficiente pachete care au doar cateva linii.
De ce ai trage o librarile externa pentru ceva de genul (asta este tot codul):

module.exports = function (filepath, prefix, uniq) {
  return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq))
}
2 Likes

poate-s librarii proprii, or fi vrut sa structureze proiectul in felul ala / sa le refoloseasca / sa le extinda mai tarziu? :grinning:

1 Like

LOC is pretty much irrelevant.

Asta pana cand userul trebuie sa downloadeze 1-2MB de JS ca sa vada o pagina simpla.

Si inteleg ideea de small modules dar … 1 liners?

Conexiunea la baza de date ia, de cele mai multe ori, o linie. O extragi într-un modul separat? O rescrii iar și iar?

Unde tragi linia dintre „codul ăsta de o linie îl rescriu în 27 locuri” și „codul ăsta de o linie îl extrag”?

In cazul meu mai fac asta cand simt ca exista posibilitatea sa extind continutul unui fisier.

Pai conexiunea la baza de date am o clasa pentru asta, iar ca sa fac un pachet pentru composer, as face o librarie intreaga pentru interactiunea cu baza date ex: conexiune, statement etc.

Iar daca sa zicem ca extrag o metoda de o linie sau ceva de genul atunci este un modul in proiectul meu nu fac push npm

E testat, poate ai și type definition, nu mai trebuie să scrii un test. One liner, dar testul e de 10 linii.

Eu nu folosesc pachete așa mici, dar dacă ești la inceput te poate ajuta.

related ontopic meme :smiley:

3 Likes

De cate ori ai cautat pe stackoverflow cum se genereaza un numar natural aleator dintr-un interval definit cu JavaScript? E o linie de cod. Niciodata nu am putut sa o retin. Chiar si asa, ce fac, o rescriu de fiecare data doar pentru ca e o linie?

daca nu retii solutia este sa cauti pe SO sau in NPM pentru o librarie, iar pentru variatna a doua orice proiect de js fie react/angular/vue etc are peste 1000 de dependinte din care de obicei cel putin 50 deprecated si nu poti sa faci nimic pentru ca nu sunt directe.

Daca nu poti tine minte macar vag de ceva in gen Math.random si sa poti deduce de acolo, e vai si amar.
Aici ma refer la distributie uniforma, cu ceva minim efort ar trebui sa poti implementa si alt hal de distributii.