Bubble, kod yazmadan tam işlevli web uygulamaları geliştirmenize olanak tanıyan güçlü bir no-code platformdur. Bir CRUD (Create, Read, Update, Delete) uygulaması, veritabanı işlemlerinin temelini oluşturur. Ancak doğru yapılandırılmazsa performans ve güvenlik sorunları yaşayabilirsiniz. Bu yazıda, Bubble ile CRUD uygulaması oluşturma sürecinde dikkat etmeniz gereken pratik ipuçlarını ve adım adım kontrol listesini bulacaksınız.
Veritabanı Tasarımında İlk Adımlar
CRUD işlemlerinin temeli veritabanı modelidir. Bubble'da her şey "Data Types" (Veri Türleri) ve "Fields" (Alanlar) etrafında döner. Aşağıdaki ipuçlarıyla sağlam bir veri modeli oluşturabilirsiniz:
- Veri türlerini ihtiyaca göre tanımlayın: Örneğin bir blog uygulaması için "Post" ve "User" gibi ayrı veri türleri oluşturun.
- Alan türlerini doğru seçin: Bubble, metin, sayı, tarih, dosya gibi birçok alan türü sunar. Verinin doğasına uygun olanı seçin (örneğin tarih için "date" alanı).
- İlişkileri (Relationships) kullanın: Kullanıcı ile yazı arasındaki bağ gibi çoktan bire veya çoktan çoğa ilişkiler kurun. Örneğin bir "Post" veri türüne "Creator (User)" alanı ekleyin.
- Varsayılan değerler atayın: Yeni kayıt oluştururken otomatik dolmasını istediğiniz alanlar (örneğin oluşturulma tarihi) için varsayılan değer belirleyin.
İş Akışları (Workflows) ile CRUD Operasyonları
Bubble'da kullanıcı etkileşimlerini iş akışlarına bağlarsınız. Her bir CRUD işlemi için ayrı bir workflow oluşturmanız gerekir. İşte dikkat edilmesi gerekenler:
- Oluşturma (Create): Form gönderimi sonrası "Create a new thing" adımını ekleyin. Gerekli alanların doğrulamasını yapın. Örneğin kullanıcı kaydı sırasında e-posta benzersizliğini kontrol edin.
- Okuma (Read): Bubble'ın "Search" ifadesiyle veritabanından kayıtları listeleyin. Performans için sayfalama kullanın. Daha fazla bilgi için REST API'lerde Sayfalama (Pagination) İçin Pratik İpuçları ve Kontrol Listesi yazısını inceleyebilirsiniz.
- Güncelleme (Update): "Make changes to a thing" adımını kullanın. Değişiklik yapacak kullanıcının yetkisini kontrol edin.
- Silme (Delete): "Delete a thing" adımını eklemeden önce bir onay mesajı gösterin. Kullanıcıya geri alma seçeneği sunmak için "soft delete" yöntemini düşünün.
Input Validation ve Hata Yönetimi
Kullanıcı girdilerini doğrulamak, uygulamanızın güvenliği ve veri bütünlüğü için kritiktir. Bubble'ın doğrulama araçlarını kullanarak şu kontrolleri uygulayın:
- Gerekli alanları işaretleyin: Form elementlerinde "Required" özelliğini aktif edin.
- Regex desenleri kullanın: E-posta, telefon gibi alanlar için regex doğrulaması ekleyin.
- Benzersizlik kontrolü: Kullanıcı adı veya e-posta gibi alanlarda kayıt öncesi veritabanında arama yaparak benzersizliği sağlayın.
- Hata mesajlarını kullanıcıya gösterin: Workflow'larda "Error" durumuna karşılık gelen bir mesaj elementi ekleyin. Detaylı bir rehber için REST API'lerde Input Validation: Doğrulama için Pratik İpuçları ve Kontrol Listesi makalesine göz atabilirsiniz.
Güvenlik ve Yetkilendirme
Bubble uygulamalarında veri erişimini kontrol etmek için Privacy Rules (Gizlilik Kuralları) kullanılır. CRUD işlemlerinde şu noktalara dikkat edin:
- Her veri türü için privacy rule tanımlayın: Varsayılan olarak herkesin her şeyi görmesine izin vermeyin.
- Kullanıcı rollerine göre kısıtlama yapın: Örneğin yalnızca "admin" rolündeki kullanıcıların silebilmesini sağlayın.
- API endpoint'lerini koruyun: Bubble'ın backend workflow'larını kullanırken API anahtarlarını gizleyin.
Performans Optimizasyonu
Uygulamanız büyüdükçe performans düşebilir. CRUD işlemlerinde şu ipuçlarını uygulayın:
- Sayfalama ve filtreleme: Liste sayfalarında tüm kayıtları yüklemek yerine sayfalama yapın.
- Ön bellek (caching) kullanın: Bubble'ın "Cache" özelliği ile sık kullanılan verileri depolayın.
- Gereksiz iş akışlarından kaçının: Veritabanı işlemlerini minimumda tutun.
Kontrol Listesi
CRUD uygulamanızı yayına almadan önce aşağıdaki maddeleri kontrol edin:
- Veritabanı şeması doğru tanımlandı mı? (İlişkiler, alan türleri, varsayılan değerler)
- Her CRUD işlemi için ayrı bir workflow var mı? (Oluşturma, okuma, güncelleme, silme)
- Input validation tüm form alanlarında uygulandı mı? (Gerekli, regex, benzersizlik)
- Hata durumları kullanıcıya anlaşılır mesajlarla iletilmiyor mu?
- Privacy Rules (gizlilik kuralları) doğru yapılandırıldı mı?
- Kullanıcı yetkilendirmesi (roller, izinler) test edildi mi?
- Sayfalama ve filtreleme çalışıyor mu?
- API versiyonlama stratejisi belirlendi mi? Backend entegrasyonlarınız varsa, REST API'lerde Versiyonlama Stratejileri yazısından faydalanabilirsiniz.
Sık Yapılan Hatalar
Bubble ile CRUD uygulaması geliştirirken karşılaşılan yaygın hataları ve çözümlerini sıralayalım:
- Veri türünde gereksiz alanlar: Sonradan eklemek yerine baştan planlı olun, performans sorunu yaşayabilirsiniz.
- Güvenlik kurallarını unutmak: Varsayılan olarak herkes veri okuyup yazabilir; mutlaka privacy rule ekleyin.
- Backend workflow vs frontend workflow karışıklığı: Hassas işlemler için backend workflow kullanın, böylece API anahtarları gizli kalır.
- Büyük veri kümelerinde sayfalama yapmamak: Binlerce kaydı aynı anda yüklemek uygulamayı yavaşlatır.
Bu ipuçları ve kontrol listesi sayesinde Bubble'da sağlam ve güvenli bir CRUD uygulaması oluşturabilirsiniz. Unutmayın, no-code araçlar da yazılım mühendisliği prensiplerine ihtiyaç duyar. Planlama ve test süreçlerine yeterli zaman ayırarak profesyonel sonuçlar elde edebilirsiniz.
Sık Sorulan Sorular
Bubble'da CRUD işlemleri için kaç tane workflow gerekir?
Her bir CRUD işlemi (Oluşturma, Okuma, Güncelleme, Silme) için ayrı bir workflow oluşturmanız önerilir. Okuma işlemi genellikle sayfa yüklenirken otomatik çalışır, ancak filtreleme için ek workflow'lar ekleyebilirsiniz.
Bubble'da veritabanı tabloları arasında ilişki nasıl kurulur?
Veri türü düzenleyicisinde "Create a new field" seçeneğini kullanarak türü "User" veya başka bir veri türü olan bir alan ekleyin. Bubble, çoktan bire veya çoktan çoğa ilişkileri otomatik olarak yönetir.
Bubble uygulamasında kullanıcı girişlerini nasıl doğrulayabilirim?
Form elementlerinde "Required" özelliğini kullanın ve gerekirse regex desenleri ekleyin. Ayrıca workflow adımlarında "Do a conditional" ile veritabanında arama yaparak benzersizlik kontrolü yapabilirsiniz.
Bubble'da performans için sayfalama nasıl yapılır?
Tekrarlayan Grup (Repeating Group) özelliğinde "Type of content" seçeneğiyle veri kaynağı belirleyin ve "Limit" (limit) ile "Offset" (atlama) değerlerini kullanarak sayfalama uygulayın.
CRUD uygulamamda kullanıcı yetkilendirmesi nasıl sağlanır?
Bubble'ın Privacy Rules (Gizlilik Kuralları) bölümünden her veri türü için kurallar belirleyin. Örneğin yalnızca kaydın sahibi olan kullanıcının güncelleme yapmasına izin verebilirsiniz.






