NPM ve Yarn arasındaki farklar nelerdir?

JavaScript dünyasında paket yöneticileri, bağımlılıkları yönetmek ve iş akışlarını basitleştirmek için en önemli araçlardan biridir. En popüler paket yöneticilerinden biri Node Package Manager (NPM), diğeri ise Yarn’dır. İkisi de aynı şeyi yapıyor ancak farklı özelliklere, performansa ve topluluk desteğine sahipler. Bu yazıda, JavaScript projeleriniz için doğru olanı seçmenize yardımcı olmak amacıyla NPM ile Yarn arasındaki temel farklara bakacağız.

Zaman Çizelgesi: npm ve yarn

2009: Ryan Dahl, JavaScript kodunu tarayıcı dışında çalıştırmak için bir çalışma zamanı ortamı olan Node.js’yi tanıttı.

2010: npm, Node.js programlama dili için paket yöneticisinin adıdır. İlk olarak geliştirici Bay Schlueter tarafından geliştirildi ve kısa sürede JavaScript geliştiricilerinin kod paketlerini paylaşması ve yönetmesi için en önemli araçlardan biri haline geldi.

2016: Yarn, Facebook tarafından npm’nin yerini alacak bağımsız bir paket yöneticisi olarak oluşturuldu. Yarn’ın amacı, geliştiricilerin karşılaştığı performans sorunlarını ve bağımlılık yönetimi sorunlarını çözmekti.

Npm’nin karşılaştığı en dikkate değer olaylardan biri, bir geliştiricinin popüler bir paket olan “left-pad”i yayınlamasıydı; bu, Node.js topluluğu içinde çok fazla kafa karışıklığına neden oldu. Bu, bağımlılık yönetimi ve paket sahipliği hakkında birçok tartışmaya neden oldu.

2017: Performansı, kararlılığı ve güvenliği artıran Yarn 1.0 sürümünün piyasaya sürülmesiyle JavaScript topluluğu arasında popüler hale geldi.

2018: Yarn, daha hızlı kurulum süreleri ve gelişmiş önbellekleme yetenekleri vaat eden 2.0 sürümüne yükseltildi. Yarn 2.0 aynı zamanda Tak ve Çalıştır (PnP), sıfır kurulum ve performansı ve verimliliği artıran diğer özellikleri de tanıttı.

2020: npm daha sonra GitHub tarafından satın alındı. Bu, npm’nin artık JavaScript geliştirme topluluğunun bir parçası olduğu ve geliştiricilere daha fazla işbirliği fırsatı sunduğu anlamına geliyor.

Yarn, hayatın her kesiminden geliştiricilerin yardımıyla kendi kendini idame ettiren bir projeye dönüştü. Performans, güvenilirlik ve geliştirici deneyimini göz önünde bulundurarak büyümeye devam ediyor.

ÖzellikNPMYarn
KurulumDüz yapı, kopyalanmaya neden olabilir.Deterministiktir, tutarlılığı sağlar.
PerformansÖzellikle büyük projelerde daha yavaş.Paralel indirmeyle daha hızlı.
Kilitleme mekanizmasıpackage-lock.json’u kullanır.Açık sürüm kontrolü olan yarn.lock’u kullanır.
EşzamanlılıkKurulum sırasında sınırlıdır.Geliştirilmiş hız için paralel indirmeler sunar.
Kayıt EntegrasyonuNpm kayıt defteri ile etkileşime girer.Npm ve Yarn kayıtlarını destekler.
Güvenlik özellikleriPaket imzalama ve taramayı uygular.Bütünlük kontrolüne odaklanır.
Topluluk DesteğiYaygın olarak benimsenmiş, kapsamlı destek.Güçlü destekle popülerlik kazanıyor.


JavaScript geliştirme dünyasında, projenin sorunsuz yürütülmesi için iyi paket yönetimi şarttır. Node.js bağımlılık yönetimi, Node Paket Yöneticisi (Node.js) ve Yarn’ın yardımıyla yapılır.

Node.js, büyük bir paket deposu sağlayan, uzun süredir devam eden varsayılan paket yöneticisidir. Yarn ise Facebook tarafından geliştirildi ve performans iyileştirmelerine odaklanıyor.

Geliştiricilere, geliştirme iş akışlarını basitleştirmek için çok çeşitli komutlar sunulur. Bu komutlar arasındaki farkları belirleyerek geliştirme sürecinizi optimize edebilir, projenizi daha verimli ve ölçeklenebilir hale getirebilirsiniz.

Aşağıdaki tablo, npm ve yarn için en sık kullanılan komutları, işlevlerini ve sözdizimlerini vurgulayarak gösterir.

Komutlar

KomutNPMYarn
Paketleri Yüklemenpm install <paket-adı>yarn add <paket-adı>
Paketleri global olarak yüklemenpm install -g <paket adı>yarn global add<paket-adı>
Paketleri Kaldırmanpm uninstall<paket-adı>yarn remove <paket-adı>
Bağımlılıkları package.json’dan yüklemenpm installyarn
Güncelleme npm update<paket-adı>yarn upgrade <paket-adı>
Güncel Olmayan Paketleri Kontrol Etmenpm outdatedyarn outdated
package.json’da Tanımlanan Komut Dosyalarını Çalıştırmanpm run <komut dosyası adı>yarn<script-name>
Paketleri Tam Sürümle Yüklemenpm install <paket-adı>@<sürüm>yarn add <paket-adı>@<sürüm>

Özetle

Özetlemek gerekirse, Yarn ile npm arasındaki karar proje ihtiyaçlarınıza, performansınıza ve topluluğunuza bağlıdır. Yarn yaygın olarak benimsenme ve sağlamlık avantajına sahipken, Yarn daha hızlı, daha tutarlı ve daha iyi güvenlik sağlar. Daha hızlı dağıtımlara, deterministik bağımlılık yönetimine veya güçlü güvenliğe öncelik veriyorsanız, Yarn ve npm, JavaScript bağımlılıklarınızı verimli bir şekilde yönetmenize yardımcı olur.

En sık kullandığım/etkili docker eklentileri

Docker Uzantıları henüz oldukça yeni ve pek çok kişi bunu henüz keşfetmedi. Ancak ilerleyen zamanlarda oldukça konuşulacak diye düşünüyorum.

Önce Docker Extension veya Docker Desktop eklentileri nedir, bunu konuşalım.

Docker Uzantıları/Eklentileri, Docker Masaüstü için süper güçler gibidir ve daha harika şeyler yapmanıza olanak tanır. Bu makalede, geliştirme deneyiminizi geliştirebilecek beş harika eklentiye göz atacağız.

1) Livecycle Extension

Link: https://open.docker.com/extensions/marketplace?extensionId=livecycle/docker-extension

Bir proje üzerinde çalıştığınızı ve ekibinizin ne yaptığınızı görmesini istediğinizi düşünün. Livecycle uzantısı, çalışmanızı anında ekibinizle paylaşmanıza olanak tanıyan bir yapıdır. Hızlı geri bildirim ve kolay işbirliği, geliştirme yolculuğunuzu daha sorunsuz hale getirir.

2) Portainer

[Link: https://open.docker.com/extensions/marketplace?extensionId=portainer/portainer-docker-extension

Docker konteynerlerini yönetmek, özellikle de çok sayıda konteyner olduğunda biraz zor olabilir. Portainer yalnızca Docker konteynerlerini değil aynı zamanda Kubernetes kümelerini ve çok daha fazlasını tek bir yerden yönetmenize yardımcı olur.

3) Snyk

Link: https://open.docker.com/extensions/marketplace?extensionId=snyk/snyk-docker-desktop-extension

Docker dünyasında güvenlik çok önemlidir. Snyk bizim süper kahramanımız. Snyk, Docker imajlarınızı güvenlik açıklarına karşı kontrol eder ve bunları nasıl düzeltebileceğiniz konusunda size ipuçları verir.

4) Ddosify

Link: https://open.docker.com/extensions/marketplace?extensionId=ddosify/ddosify-docker-extension

Ddosify, uygulamanıza gerçek bir DDoS saldırısı gerçekleştiğinde, durumu nasıl idare edeceğinizi kontrol etmek için uygulamanızı yükleme testi yapmanıza olanak tanır. 

5) Excalidraw

Link: https://open.docker.com/extensions/marketplace?extensionId=ivancurkovic046/excalidraw-docker-extension

Bazen geliştiricilerin fikirlerini daha iyi açıklaması gerekebilir Excalidraw, fikirlerinizi çizmek için oldukça iyi bir eklenti. En büyük artısı, bazen internetinizin olmadığı durumlarda local olarak çalışabilmesidir.

İşte bu kadar! Geliştirme hayatınızı kolaylaştıracak beş harika Docker Uzantısı. 

Okuduğunuz için teşekkürler. Farklı makalelerde görüşmek üzere, kendinize iyi bakın.

Excel Dosya Upload & JSON Formatına Dönüştürmek – Javascript

Merhaba arkadaşlar, geçtiğimiz günlerde bir ihtiyacım olan yapıyı istediğim duruma getirdim ve sizlerle paylaşmak istedim.

Yapıda temel olarak elimizde bir excel dosyamızın olduğunu düşünelim. Bu dosya içerisindeki verileri belli bir formatta site üzerine upload etmek ve işlemek istiyoruz.  Böyle bir ihtiyacınız varsa doğru yerdesiniz. Belki 10’larca çeşitli kütüphane denedim ancak hiçbiri benim istediğimiz tam olarak sağlayamadı. Ancak geliştirdiğim bu kütüphane sizin işinizi çoğunlukla çözecektir diye düşünüyorum.

Çalışmanın github adresine buradan ulaşabilirsiniz: https://github.com/maxmanus16/excel-file-to-json

*Performans
Bu kütüphane büyük * .xlsx dosyalarını işleyememe konusunda biraz yavaş kalıyordu. Bu kütüphanenin ana noktasının, performans veya büyük veri kümelerini işleme yeteneği değil, kullanılabilirlik ve rahatlık olduğu açık. Ancak bir geliştirme sonrası şuan 2000 satır / 20 sütun dosyasını ayrıştırma süresi yaklaşık 3 saniye. Büyük veri kümelerini işlemek için lütfen .xlsx uzantısını kullanın.

Cookie Altyapısı ile Çalışan Pop-Up Yapımı – agreeToContent.js – Kullanıcı Sözleşmesi – Javascript

Merhaba, çok uzun zamandır blog gönderisi paylaşmadığımı farkettim. Malum karantina süreci devam ediyor 🙂 Bu süre zarfında sizler için yazmayı düşündüğüm makalelerin de bir listesini çıkardım. Bunları yavaş yavaş paylaşmayı düşünüyorum.  Bu makalemizde sizlerle Cookie Altyapısı ile Çalışan Pop-Up nasıl oluşturabiliriz? Bu sorunun cevabını öğreneceğiz.

Geçtiğimiz günlerde bununla alakalı bir ihtiyacım oldu. Ve araştırma yaparken çok güzel bir JS kütüphanesinin bunu bizim yerimize yaptığını gördüm. Test ettim ve kullandım. Sonuç: Başarılı.

AgreeToContent.js kütüphanesi, kullanıcının sözleşmesini kabul ettikten sonra kullanıcının web içeriğinize erişmesini sağlayan, çerez altyapısını kullanan Pop-up’ı oluşturmanıza olanak tanır.

  • Nasıl kullanılır?
    Sayfaya “agreeToContent.js” JavaScript dosyasını ekleyin.

Script dosyalarını buradan indirebilirsiniz.

  • Varsayılan Ayarlar

  • Hayır butonu ayarları

Pop-up içeriğini değiştirmek isterseniz agreeToContent.js dosyasını isteğinize göre düzenleyebilirsiniz.

  • Örnek kullanım

 

Sarp Yokuşlar

Hayatım boyunca hep bir şeylerin peşinden koştum durdum. Dizlerim kanıya kanıya koştum durdum. Bu bazen yırtık bir futbol topu oldu, bazen haftaya alacağım haftalığım, bazen öğrenmeye çalıştığım işim, bazen de hayat koşuşturmasında kaçırdığım derslerim.

Sanayinin yağ kokusunu da duydum, askıyı devirdiğimde çıkan bardak kırılma seslerini de. Barut kokusunu da duydum, kum çuvalına kum doldururken sızlayan avuç içlerimin acısını da. Hayat bana hep iyi tarafını gösterdi diyemem.

Hayatımda hep bir şeyler eksik oldu, eksik kaldı. Bir bardak çayım olduğunda, şekerim olmadı. Şekerim olduğunda karıştıracak kaşığım olmadı. (Bu arada çayı şekersiz içmeyi öğrendim.) Ama hiçbir yerde Van’da kapkara çaydanlıkta demlenen, ölümün gölgesinde korucularla içtiğim o çayın lezzetini bulamadım.

Okumaya devam et “Sarp Yokuşlar”

Sayfada Sadece Belirli Bir Bölümü Yazdırmak – jQuery Print Eklentisi

jQuery Print, ziyaretçinin web sayfanızın yalnızca belirli bir alanını yazdırmasına izin veren basit bir jQuery eklentisidir.

Özellikle navigasyon yönergeleri bulunan projelerde, yazdırılacak sayfanın yalın olabilmesi artık her zaman mümkün olamayabiliyor. Böyle durumlarda sayfanın sadece belirli bir bölümünün yazdırılması seçeneği önümüze çıkıyor. Bunun için kullandığım bir kütüphaneyi sizlerle paylaşmak istiyorum.

Nasıl kullanılır? (Örnek)

1. HTML öğenizin yazdırılabilir olmasını istediğiniz alana benzersiz bir ID belirtelim.

2. Belirtilen alanımızı yazdırmak için bir button oluşturalım.

3. jQuery kütüphanesini ve jQuery print eklentisini içeri aktaralım.

4. Yazdır butonunda yazdırmak istediğimiz alanı yazdıralım.

5. Yapılandırma ayarları (İsteğe bağlı)

 

 

Exit mobile version