YAZILIM GELİŞTİRME
Web sitesi bitince,iş burada başlar.
Bir web sitesinin çözemediği işler için özel yazılım tasarlar ve kurarım.
Her iş bir web sitesiyle çözülmez. Bazen ihtiyaç, senin iş akışına özel çalışan bir araç; bazen birden çok kullanıcının aynı anda etkileşime girdiği gerçek zamanlı bir sistem; bazen de kimsenin hazır şablonunda olmayan bir kural bütünü. Bu sayfa, web'in ötesindeki o işleri nasıl kurduğumu anlatıyor.
WEB SİTESİ NE ZAMAN YETMEZ
Bir web sitesi çoğu şey için doğru araçtır. Ama bazı işler, bir sayfanın sunabileceğinden daha fazlasını ister:
Ürününü tanıtan bir web sitesi
Stoğu, siparişi, ekibi tek yerden yöneten bir yönetim paneli
Formdan gelen talebi e-postayla almak
O talebi otomatik işleyen, başka sistemlere ileten bir iş akışı
Tek kullanıcı, tek oturum, sayfa yenilenince güncellenen veri
Birden çok kullanıcının aynı veriyi aynı anda gördüğü, gerçek zamanlı bir deneyim
Genel bir CMS'in şablonlarıyla sınırlı içerik yönetimi
Senin işine özel kurallarla çalışan, kimsenin şablonunda olmayan bir mantık
NASIL KURARIM: KATMANLI MİMARİ
Her sistemi aynı disiplinle kurarım: sorumluluklar net katmanlara ayrılır, böylece bir katman değişince diğerleri yıkılmaz.
Arayüz
Kullanıcının dokunduğu katman: bir masaüstü uygulaması, bir yönetim paneli ya da bir oyun istemcisi. İşin görünen yüzü ama en kolay değiştirilebilen parçası.
Mantık / Kural Motoru
İşin gerçek kurallarının yaşadığı yer: hesaplamalar, doğrulamalar, hangi durumda ne olacağına dair kararlar. Arayüz değişse bile bu katman ayakta kalmalı.
Gerçek Zamanlı Katman
Birden çok kullanıcı ya da cihazın aynı durumu aynı anda görmesi gerektiğinde devreye girer: bağlantı yönetimi, durum senkronizasyonu, gecikmeyi hissettirmeyen aktarım.
Veri
Kalıcılık katmanı: veritabanı şeması, ilişkiler, yedekleme. Sistem büyüdükçe en pahalıya mal olan hata genelde burada, en baştaki tasarımda yapılır.
NEDEN BU ARAÇLAR
TypeScript
Arayüzden API'ye kadar aynı dilde ilerlemek, iki katman arasındaki veri sözleşmesini derleme anında doğrular. Tip güvenliği bir sistem büyüdükçe asıl değerini gösterir.
C#
.NET ekosistemi; performans gereken arka uç servislerinde ve masaüstü tarafında güçlü, olgun bir temel sunuyor. Ağır iş yükü taşıyan katmanlarda ilk tercihim.
Sistem Tasarımı
Dil bir araçtır, asıl iş değil. Asıl iş; veri modelini doğru kurmak, sorumlulukları katmanlara doğru dağıtmak ve sistem büyüyünce de anlaşılır kalmasını sağlamak.
GERÇEK BİR ÖRNEK
Okey Neşesi
Kural motorundan sunucu mimarisine, arayüzden yönetim paneline kadar her katmanı tek elden kurguluyorum. Oyun tasarımı dokümantasyonu, veritabanı ve API tasarımı, Unity istemcisi ve operasyon araçları aynı masada ilerliyor.
Yukarıdaki katmanların hepsi bu projede gerçek: oyunun kurallarını yöneten bir kural motoru, oyuncular arasında durumu senkronize eden gerçek zamanlı bir sunucu, ve operasyonu yönetmek için ayrı bir yönetim paneli.
Unity · Gerçek Zamanlı Sunucu · Yönetim Paneli
GELİŞTİRİLİYOR
Projeyi incele →ÖZEL YAZILIM
Bir web sitesinin sınırlarını mı zorluyorsun?
İş akışını, kurallarını ve neyin gerçek zamanlı olması gerektiğini anlat; birlikte doğru mimariyi kuralım.