Savaş DoğanYapay zeka entegrasyonu · Yazılım mimarisi

Ürün ve yazılım geliştirme

Angular, Ionic/Capacitor ve Node.js ile çok kiracılı web ve mobil ürünler kuruyorum. İki tip iş alıyorum: sıfırdan kurulum ve devralma — yani dokümantasyonu eksik, geliştiricisi ayrılmış bir kod tabanını yaşatılabilir hale getirmek.

Hangi teknolojilerle çalışıyorum?

Önyüzde Angular ve mobil için Ionic/Capacitor, arka uçta Node.js ve Express ile Sequelize, veritabanında MySQL ve SQLite, kuyrukta Redis ve BullMQ, dosya tarafında MinIO kullanıyorum. Teslim Docker Compose ve GitHub Actions ile yapılır. Bu yığını seçme sebebim moda değil, aynı kod tabanının web ve mobilde tek elden yürütülebilmesi.

Önyüz
Angular · TypeScript
Mobil
Ionic · Capacitor · (geçmişte Flutter)
Arka uç
Node.js · Express · Sequelize
Veri
MySQL 8 · SQLite · Redis
Altyapı
Docker Compose · nginx · GitHub Actions
Masaüstü
Tauri 2 · Rust · gömülü SQLite

Çok kiracılı (multi-tenant) mimari neden ayrı bir uzmanlık?

Çok kiracılı bir sistemde tek bir kod tabanı ve tek bir veritabanı birden çok müşteriye hizmet eder. Zorluk ölçekte değil, izolasyondadır: her sorgunun, her dosya erişiminin, her arka plan işinin kiracı kimliğiyle sınırlanması gerekir. Bir tek yerde unutulduğunda sonuç performans sorunu değil, veri sızıntısıdır.

Bu disiplini teorik olarak değil, üretimdeki bir üründe uyguladım: 19 modül grubuna ayrılmış, 4.000’den fazla testle korunan çok kiracılı bir CRM. Teknik detayı burada.

Devralınan bir projeye nasıl başlıyorum?

Devralınan bir kod tabanında ilk iş kod yazmak değil, haritalamaktır. İlk 1–2 hafta bir denetime ayrılır: neyin çalıştığı, neyin çalışıyor göründüğü ve en riskli üç noktanın nerede olduğu dosya ve satır düzeyinde çıkarılır. Ancak bu haritadan sonra değişikliğe başlarım.

  1. Çalıştırma: proje yerel ortamda ayağa kalkıyor mu, kaldırmak ne kadar sürüyor.
  2. Sınırlar: veri modeli, yetki kuralları ve dış bağımlılıklar çıkarılır.
  3. Risk taraması: kimlik doğrulama, para hesabı, veri izolasyonu ve göç adımları ayrı ayrı incelenir.
  4. Test durumu: hangi bölüm test altında, hangisi değil. Testsiz ve riskli kesişim önce kapatılır.
  5. Sıralama: bulgular etkiye göre sıralanır ve ilk üç madde bir sonraki dilimin kapsamı olur.

Denetim tek başına da alınabilir. Kodu değiştirmeden, yalnızca bulgu raporu olarak. Devralma kararını vermeden önce ne satın aldığınızı bilmek, çoğu zaman en ucuz adımdır.

Yapay zeka destekli geliştirme ne değiştiriyor?

Yapay zeka destekli geliştirme, tek kişinin üretebileceği kod hacmini büyütüyor ama kalite tavanını yükseltmiyor. Ölçtüğüm kadarıyla asıl fark modelde değil: koşum ortamı ve görev tasarımı sonucu çok daha fazla etkiliyor. Pratikte bu, mimari kararların ve gözden geçirmenin öneminin azalmadığı, arttığı anlamına geliyor.

Kendi ölçümlerimde koşum ortamı değişikliği puanı ±11, görev ve komut tasarımı ±18, örnekleme parametreleri ise yalnızca ±2–3 puan oynattı. Yani “hangi model” sorusu, “işi nasıl tarif ettiğin” sorusunun yanında küçük kalıyor. Ölçümün ayrıntısı.

Ürün geliştirme hakkında sık sorulan sorular

Bir ürünü sıfırdan kurmak ne kadar sürer?

Kullanılabilir bir ilk sürüm 6 hafta ile 4 ay arasında çıkar; çok kiracılı, rol tabanlı yetkilendirmesi olan ve mobil eşleniği bulunan bir ürün 6–9 ayı bulur. Süreyi büyüten şey ekran sayısı değil, kural sayısıdır: fiyatlandırma, vergi, indirim ve yetki kuralları ne kadar çoksa süre o kadar uzar.

Mobil uygulama ayrı bir proje mi?

Ionic ve Capacitor kullanıldığında ayrı bir proje değil, aynı kod tabanının ikinci bir hedefidir. Webde yapılan değişiklik mobil tarafa da yansıtılır ve bu bir kural olarak takip edilir. Tamamen yerel (native) davranış gerektiren bir ihtiyaç varsa bu ayrıca değerlendirilir.

Kod bizde mi kalıyor?

Evet. Depo sizin hesabınızda durur, ben katkıda bulunurum. Teslimde kurulum betikleri, çalıştırma dokümanı ve ortam değişkenleri listesi birlikte verilir. Sizin ekibinizin devralamayacağı bir teslim, teslim sayılmaz.

Testsiz bir proje devralır mısınız?

Evet, ama ilk iş test yazmak olmaz. Önce en riskli üç alan belirlenir (kimlik doğrulama, para hesabı, veri izolasyonu genellikle ilk üçtür) ve testler oradan başlar. Tüm kod tabanını kapsamaya çalışmak, devralınan bir projede zamanın en kötü harcanma biçimidir.

Son güncelleme: