Lodash Kullanmanın Doğru Yolu

Lodash Kullanmanın Doğru Yolu

2019-02-13    

Lodash Kütüphanesini Doğru Kullanmak

Projelerinizde çeşitli 3. parti kütüphaneler kullandığınızda bazen hoş olmayan durumlarla karşılaşabiliriz.

Örnek olarak;

  • Build time ve karmaşıklığın artması
  • Paket büyüklüğümüzün katlanarak artması
  • Sunucu yanıt süremizin artması
  • Kullanıcıların sunucu yanıtı beklerken daha fazla zaman harcaması

Bu tip sorunları gidermenin bir çok yolu vardır. Bunlardan en önemlisi ihtiyacımız olan kütüphaneyi kullanım optimizasyonudur. Bu yazıda Lodash kütüphanesini kullanırken ihtiyacımız olan kullanım optimizasyonlarından bahsedeceğiz.

Lodash dokümanlarına görmek için https://lodash.com sitesini ziyaret edebilirsiniz. Diziler, nesneler, karakter katarları ve diğerleri ile çalışmak için bir çok fonksiyona sahiptir. Projemizde bir çok zaman bu fonksiyonların bir kaç tanesini kullandığımız durumlar oluyor. Bu durumda sadece ihtiyacımız olan kısmını kullanmamız mümkün mü?

The Lodash documentation can be found at https://lodash.com/. It has dozens of useful functions for working with arrays, objects, strings and many others. But when developing, we only need to use a part of them. So maybe there is a possibility to import only the particular functions we need, and thus make our code lighter?

Lodash Fonksiyonlarını Kullanmanın 3 Yolu

Harici eklentiler kullanmadan projemizde Lodash kullanmanın üç yolu vardır.

  1. Tüm kütüphaneyi dahil etme

    import _ from 'lodash';

    Avantajları:

    • Tek satırda dahil etme

    Dezavantajları:

    • Paket büyüklüğüne ek 72.5 Kb
    • Bütün kütüphanenin dahil edilmesi en büyük paket boyutuna ulaşması
    • Javascript kodunun daha az okunabilir olması
  2. Süslü parantezler ile belirli methodları dahil etme

    import { map, tail, times, uniq } from 'lodash';

    Avantajları:

    • Tek satırda dahil etme (belirlenen metodlar için)
    • Daha iyi okunabilir bir kullanım (direkt olarak method kullanım örn;map())

    Dezavantajları:

    • Paket büyüklüğüne ek 72.5 Kb
    • Yeni method kullanımı eklemek veya vazgeçmek için yönetilmesi zor
  3. Belirlen metodları birer birer dahil etme

    import map from 'lodash/map';
    import tail from 'lodash/tail';
    import times from 'lodash/times';
    import uniq from 'lodash/uniq';

    Avantajları:

    • Paket büyüklüğüne ek 20 Kb
    • Hemen hemen en küçük paket boyutu
    • Daha iyi okunabilir bir kullanım (direkt olarak method kullanım örn;map())

    Dezavantajları:

    • Dahil etme diğer seçeneklere göre daha karmaşık
    • Dosyanın en üstünde bir çok dahil etme satırı pek hoş görünmemesi

Sonuç

Her bir yönetimi gördükten sonra en iyi yönetimin birer birer dahil etme olduğunu düşünüyorum. Bu yöntemin eksileri bu kütüphaneyi kullanmak istediğimizde her bir fonksiyonu ayrı ayrı dahil etmem gerekiyor. Bu durum javascript dosyamızın en üstünde fazla satır olmasına sebep olur. Bu tür dahil etmek görsel olarak hoş görünmüyor ve bakımı daha zor olsa da performans açısında etkisi en fazla olan yöntemdir.

Babel & Webpack eklentileri ile performans olarak çok daha fazla kazançlar sağlayabiliriz. Bunun için internete çeşitli makaleleri incelemenizi tavsiye ederim.

Tavsiye

  • Çok az sayıda method kullanıyorsanız birer birer dahil etmeniz.
  • Çok fazla sayıda method kullanıyorsanız ve tüm Lodash paketiniz kullanmak istemiyorsanız Babel & WebPack eklentilerini kullanın. Ancak build süreleri büyük projeler için muhtemelen çok fazla zaman alacaktır.
  • Lodash ile çok fazla zincir sekansı methodlar kullanıyorsanız yeniden yapılandırma veya alternatif kullanma maliyetini göz önünde bulundurun. Bazı durumlarda büyük projeleri yeniden düzenlemek yerine tüm Lodash'ı dahil etmeyi tercih edebilirsiniz.