<aside>
🎯
Bir web3 projesi hangi parçalardan oluşur ve bu parçalar birbirleriyle nasıl konuşur? ~30 dakika
</aside>
Restoran benzetmesi
| Parça |
Restoranda karşılığı |
Ne yapar? |
| Frontend |
Salon, menü, garson |
Kullanıcının gördüğü ve tıkladığı her şey |
| Backend |
Mutfak |
Kullanıcının görmediği işleri yapar, veriyi işler ve saklar |
| Smart contract |
Noter ve kasa |
Kuralları herkesin görebildiği, kimsenin gizlice değiştiremediği bir program. Parayı ve sahipliği o yönetir |
Frontend
- Nedir: Tarayıcıda açılan kısım. Butonlar, formlar, sayfalar.
- Nerede çalışır: Kullanıcının tarayıcısında.
- Bizim kullandıklarımız: Next.js (React tabanlı framework), TypeScript, Tailwind CSS, shadcn/ui (hazır bileşenler).
- Web3'te ekstra görevi: Kullanıcının cüzdanına bağlanmak ve kontrata işlem göndermek.
Backend
- Nedir: Sunucuda çalışan kısım. Veritabanı, e-posta, dış servislerle konuşma gibi işleri yapar.
- Nerede çalışır: Bir sunucuda (bulutta).
- Bizim kullandıklarımız: Node.js, Next.js API route'ları, bir veritabanı (örn. PostgreSQL).
- Web3'te ne zaman gerekir: Her projede yoktur! Birçok dApp sadece frontend ve kontrattan oluşur. Backend genelde şunlar için gelir: zincirdeki olayları dinleyip hızlı arama için veritabanına yazmak (indexer), zincire yazılması pahalı olan verileri saklamak, bildirim göndermek, AI servisleriyle konuşmak.
Smart contract (akıllı sözleşme)
- Nedir: Blockchain'e yüklenmiş bir program. Bir kere deploy edilince kuralları kimse tek başına değiştiremez.
- Nerede çalışır: Blockchain üzerinde, binlerce bilgisayarda aynı anda.
- Bizim kullandıklarımız: Solidity (dil), Foundry (geliştirme ve test aracı).
- Neden dikkat ister: Deploy edilen kontrat genelde geri alınamaz. Bir hata, kullanıcıların parasının kaybolması demek olabilir. Bu yüzden kontratlarda test yazmak zorunludur.
Örnek: NFT mint sitesi
Bir kullanıcı sitede "Mint" butonuna bastığında arka planda ne olur?