iToverDose/Yazılım· 5 TEMMUZ 2026 · 08:03

Rust ile AI Dokümantasyon Aracı Geliştirmek: Deneyimler ve Öğretiler

Sergio Tortosa, Rust dilinde geliştirdiği AI destekli dokümantasyon aracıyla startup deneyimini anlatıyor. Proje sürecinde karşılaştığı teknik zorluklar, async akışlarının karmaşıklığı ve pazarlama stratejilerinin önemini vurguluyor.

DEV Community3 dk okuma0 Yorumlar

Yaklaşık bir buçuk yıl önce Rust dilini kullanarak AI destekli dokümantasyon aracı Dokumentado'yu geliştirmeye başladım. O dönemde dil modelleri günümüzdeki kadar gelişmiş değildi, bu yüzden projem hem teknik bir öğrenme deneyimi hem de startup kurarken nelere dikkat edilmesi gerektiğine dair bir yol gösterici oldu. Rust dilinin seçim nedenlerinden bazıları ve projenin karşılaştığı zorluklar, belki de sizin için de ilham verici olabilir.

Neden Rust? Projeye Başlarkenki Motivasyonlar

Dokumentado, sadece bir Git deponuzu bağlayarak otomatik ve eksiksiz dokümantasyon oluşturmayı hedefleyen bir araç. Projeyi geliştirirken tercih ettiğim dil ise Rust oldu. Peki neden? Öncelikle, Rust’ın sunduğu hata toleransı ve performans avantajlarıydı. Rust’ta yazılan bir proje, genellikle daha az bakım gerektirir; çünkü derleyici, birçok olası hatayı derleme aşamasında yakalar ve bağımlılıkların bozulma olasılığı da oldukça düşüktür. Bu da uzun vadede projeyi daha güvenilir kılar.

Başlangıçta Rust’ı tercih etmemin bir diğer nedeni de kişisel bir tercihti. Rust diline olan sevgim, hatta 3D baskı projelerimi bile bu dille yapmamdan anlaşılabilir. Ancak projeye dair daha somut faydalar da vardı. Örneğin, Rust’ın bağımlılık güncellemeleri genellikle sorunsuz gerçekleşir ve hatta bazı durumlarda otomatik güncelleyici botlar bile yardımcı olur. Bu da geliştirme sürecini oldukça kolaylaştırır.

Teknik Zorluklar: Async Akışların Karmaşıklığı

Projenin geliştirilmesi sırasında karşılaştığım en büyük teknik zorluklardan biri, farklı platformların entegrasyonuydu. Özellikle Salesforce API’sinin dosya bazlı çalışması, diğer tüm sistemlerin proje bazlı çalışmasıyla çatışma yaratıyordu. Bu durum, Rust’ın async akışlarıyla birleşince ortaya oldukça karmaşık bir yapı çıktı.

Rust’ın async sistemi, bir fonksiyonun işlem sırasında askıya alındığında tüm değişkenlerin ve durumun kaydedilmesini sağlar. Örneğin, aşağıdaki kod parçası iki adet "save point" oluşturur:

async fn send_file_through_http(path: &Path) -> Result<()> {
    let file = tokio::fs::read(path).await?;
    if !verify_file(&file) {
        return Error::WrongFile;
    }
    my_http::send_file(file).await?;
    println!("Dosya başarıyla gönderildi");
    Ok(())
}

Bu sistem, programın kaynakları daha verimli kullanmasını sağlar; çünkü bir işlem askıya alındığında, aynı thread diğer görevlere devam edebilir. Ancak bu avantaj, AsyncStream gibi özellikler devreye girdiğinde karmaşaya dönüşebilir. AsyncStream, bir trait olduğu için elle uygulanması gerekiyor ve bu da Rust’ın sunduğu "zero-cost abstraction" illüzyonunu bozabiliyor. Özellikle hata ayıklamak, bu durumda oldukça zorlayıcı hale geliyor.

Projenin Gelişim Süreci: Entegrasyonların ve Mükemmeliyetçiliğin Zorluğu

Dokumentado’nun bir yıl gibi uzun bir sürede kullanıma hazır hale gelmesinin nedeni, sadece teknik zorluklar değil, aynı zamanda çok sayıda platformla entegrasyon yapmanın getirdiği karmaşıklardı. Rust’ın henüz tüm platformlar için API’lere sahip olmaması, geliştirme sürecini yavaşlatan bir faktördü. Ayrıca, kendi mükemmeliyetçiliğim de projenin tamamlanmasını geciktiren unsurlar arasında yer aldı.

Pazarlama ve Kullanıcı Geri Dönüşleri: Neden Sıfır Kullanıcıya Ulaştık?

Projeyi geliştirirken, gelecekteki kullanıcı sayısını yüzlerce olarak tahmin ediyordum. Ancak nihayetinde sadece sıfır kullanıcıya ulaştık. Bunun birçok nedeni olabilir, ancak en önemli faktörlerden biri, AI entegrasyonunun yaygınlaşmasıydı. O dönemde birçok kullanıcı, AI destekli bir araçtan ziyade başka bir AI ürünü olarak gördü projeyi. Bu durum, pazarlama stratejisinin ne kadar önemli olduğunu bir kez daha gösterdi.

Ayrıca, projeyi çok geç tamamladığım için AI’nın gelişimiyle birlikte birçok rakip ortaya çıkmıştı. Bu da projenin pazardaki konumunu zayıflattı. Bu deneyimden çıkarılan ders ise, bir fikrin değil, onun uygulanabilirliğinin ve pazarlama stratejisinin daha önemli olduğudur. Rust dilinin sunduğu avantajlar da pazarda rekabet avantajı sağlamaya yetmedi.

Rust, Startup’lar İçin İyi Bir Seçenek Mi?

Geçmişte Rust, startup’lar için zorlu bir seçenekti. Ancak günümüzde bu durum değişiyor. Dil modellerinin gelişmesiyle birlikte, Rust’ın sunduğu performans ve güvenilirlik avantajları, startup’lar için cazip hale geliyor. Özellikle AI entegrasyonlarında ve performans gerektiren uygulamalarda Rust, hala güçlü bir seçenek olmayı sürdürüyor.

Bugün Dokumentado’nun orijinal vizyonu, AI’nın gelişimiyle birlikte farklı bir boyut kazandı. Rust’ın sunduğu avantajlar ise artık daha erişilebilir ve uygulanabilir durumda. Bu deneyimden çıkardığım en önemli ders, sadece iyi bir fikir yeterli değil; bunun yanı sıra doğru zamanda, doğru stratejiyle hareket etmek ve sürekli olarak pazardaki değişimlere ayak uydurmak gerekiyor.

Yapay zeka özeti

Sergio Tortosa, Rust dilinde geliştirdiği AI destekli dokümantasyon aracıyla startup deneyimini anlatıyor. Teknik zorluklar, async akışları ve pazarlama stratejilerinin önemini vurguluyor.

Yorumlar

00
YORUM BIRAK
ID #YAIS1R

0 / 1200 KARAKTER

İnsan doğrulaması

5 + 8 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.