
Hardhat ve Foundry arasında seçim yaparken göz önünde bulundurulması gereken bazı noktalar.

Dapp geliştirme süreciniz için doğru araçları seçmek yalnızca verimliliği etkilemekle kalmaz, aynı zamanda akıllı sözleşmelerin test edilmesi, dağıtılması ve bakımının etkinliğini de doğrudan etkiler. Bu blog yazısında, Ethereum dapp geliştiricileri arasında popüler iki seçeneği karşılaştırıyoruz: Foundry ve Hardhat. Kurulum gereksinimleri, test ve dağıtım iş akışları ile belirli teknik özellikler ve sınırlamalar açısından her ikisini de inceliyoruz.
Hardhat, geliştiricilerin akıllı sözleşme geliştirme sürecindeki görevleri yönetmesine ve otomatikleştirmesine yardımcı olmak için tasarlanmış, köklü bir geliştirme ortamıdır. Esnek ve uyarlanabilir yapısıyla tanınır. Hardhat, geliştirme amacıyla tasarlanmış yerel bir Ethereum ağı olan Hardhat Network'ü bünyesinde barındırır; bu ağ sayesinde test etme, dağıtım ve hata ayıklama işlemleri kolaylıkla gerçekleştirilebilir.
Geliştiriciler, etkileşimli bir konsol aracılığıyla Hardhat Network üzerinde dağıtılan akıllı sözleşmelerle doğrudan etkileşime girebilir; bu da geliştirme görevlerine özel kapsamlı bir yerel ortam sunar. Hardhat ayrıca güçlü bir eklenti ekosistemine sahip olup geliştiricilerin yeteneklerini kolayca genişletmesine olanak tanır. Ancak bazı kullanıcılar, Hardhat'ın ilk kurulum ve yapılandırma sürecini karmaşık bulabilir.
Öte yandan Foundry, hız ve güvenilirliği ön plana çıkaran görece yeni bir geliştirme araç setidir. Geliştiricilerin akıllı sözleşmeleri verimli biçimde yazmasına, derlemesine ve test etmesine olanak tanıyan güçlü bir test çerçevesi olan Forge üzerine inşa edilmiştir. Foundry'nin öne çıkan özelliklerinden biri, hızlı test kapasitesidir; Forge test çerçevesi, test yürütme sürelerini önemli ölçüde kısaltarak geliştiricilerin daha hızlı iterasyon yapmasını sağlar.
Bunun yanı sıra Foundry, geliştiricilerin sorunları doğrudan ortam içinde tespit edip çözmesine yardımcı olan yerel hata ayıklama araçlarını da içerir. Foundry, Ethereum ekosistemindeki diğer araçlarla sorunsuz biçimde entegre olarak daha akıcı bir geliştirme süreci sunar. Ancak görece yeni bir araç olması nedeniyle Foundry, daha köklü araçların sahip olduğu kapsamlı topluluk desteğinden yoksun kalabilir.
Bu bölümde temel bir rastgele toplam akıllı sözleşmesi kullanacağız. Bu akıllı sözleşme hem Hardhat hem de Foundry için aynı kalacak; ancak proje kurulumu iki çerçeve arasında küçük farklılıklar gösterecektir.
Hardhat'ı kullanmaya başlamak için makinenizde Node.js'in kurulu olması gerekir. Kurulum tamamlandıktan sonra aşağıdaki adımları izleyerek yeni bir Hardhat projesi oluşturabilirsiniz:
Yeni bir Node.js projesi başlatın:
Hardhat'ı yükleyin:
npm install --save-dev hardhatBir Hardhat projesi oluşturun:
npx hardhatTemel bir proje oluşturmak için yönergeleri izleyin. Sade bir kurulum için "Create an empty hardhat.config.js" seçeneğini belirleyin. Örnek bir proje oluşturmayı seçin. Bu işlem, gerekli tüm yapılandırmaları içeren bir Hardhat ortamı kurar.
Sözleşme: RandomSum sözleşmenizi contracts klasörüne yerleştirin.
Foundry, Rust kullandığından sisteminizde Rust'ın kurulu olması gerekir. Rust hazır olduğunda aşağıdaki komutu çalıştırarak Foundry'yi yükleyebilirsiniz:
Foundry'yi yükleyin:
Yeni bir Foundry projesi başlatın:
Sözleşme: RandomSum sözleşmenizi src dizinine yerleştirin.
Yerel blockchain: Test veya sözleşme dağıtımı gibi görevleri gerçekleştirdiğinizde otomatik olarak çalışan Hardhat Network'ü kullanın.
Dağıtım betiği: scripts/deploy.js altında bir betik oluşturun:
Dağıtımı çalıştırın: Dağıtımı şu komutla gerçekleştirin:
npx hardhat run scripts/deploy.js --network localhostYerel blockchain: Foundry, yerel bir Ethereum düğümü olan anvil'i kullanır. Yerel düğümünüzü başlatmak için bunu ayrı bir terminalde çalıştırın.
anvilDağıtım betiği: forge create komutunu doğrudan kullanın:
forge create RandomSum --private-key YOUR_PRIVATE_KEY --rpc-url Ağ yapılandırması: İstediğiniz ağı hardhat.config.js dosyasında yapılandırın; ağ ayarları için bir bölüm ekleyin (örn. Sepolia).
Dağıtım: Ağ seçeneğini Sepolia olarak değiştirerek aynı dağıtım betiğini çalıştırın.
Ağ yapılandırması: Ek bir yapılandırma dosyasına gerek yoktur; ağı doğrudan komutta belirtin.
Dağıtım: Şunu kullanın:
forge create RandomSum --private-key YOUR_PRIVATE_KEY --rpc-url Test yazın: JavaScript kullanarak test/randomSum.js dosyasında bir test dosyası oluşturun:
Testleri çalıştırın: Şu komutla çalıştırın:
npx hardhat testTest sırasında sorunlarla karşılaşırsanız @nomicfoundation/hardhat-toolbox/network-helpers paketinden loadFixture fonksiyonunu eklemeniz yeterlidir.
loadFixture kullanmanın temel avantajları şunlardır:
Bir anlık görüntüye geri dönerek her test için temiz bir ortam oluşturur.
Her test için sözleşmeleri yeniden dağıtmaktan daha verimlidir.
Kurulum kodunu birden fazla test arasında paylaşmanıza olanak tanır.
Test yazın: Solidity kullanarak test/RandomSum.t.sol dosyasına bir test dosyası ekleyin:
Testleri çalıştırın: Şunu kullanın:
forge testHardhat ile Foundry arasındaki tercih çoğunlukla ekibin yetkinliklerine ve projenin özel gereksinimlerine bağlıdır. Ekip JavaScript konusunda deneyimliyse ve web teknolojileriyle kapsamlı entegrasyon gerektiriyorsa Hardhat daha uygun bir seçenek olabilir. Güçlü eklenti ekosistemi ve esnek ortamı sayesinde yüksek düzeyde özelleştirme ve çeşitli web teknolojileriyle etkileşim gerektiren projeler için idealdir.
Öte yandan proje, yalnızca akıllı sözleşmelere odaklanan hızlı geliştirme döngüleri gerektiriyorsa Foundry, her şeyi Solidity ekosistemi içinde tutan cazip ve verimli bir seçenek sunar. Hızı ve Solidity için yerel desteği, akıllı sözleşme geliştirmeye odaklanan ekiplerin verimliliğini önemli ölçüde artırabilir.
Sonuç olarak her iki aracın da güçlü yönleri bulunmaktadır; doğru seçim, projenizin özgün gereksinimlerine ve ekibinizin uzmanlığına bağlıdır.
Yapay zeka tarafından çevrildi. Hatalar içerebilir. Lütfen her zaman bilgileri doğrulayın.