Architecture Decision Record

Active theme: Light

← Karar kaydı örnekleri

Mimari Karar Kaydı: Rust programlama dili

Karar Numarası: AR-001

Karar Başlığı: Rust programlama dilinin benimsenmesi

Tarih: 1 Aralık 2021

Durum: Kabul Edildi

Sorun Tanımı

Yazılım uygulamaları geliştirmeye devam ettikçe, olası güvenlik açıklarını azaltmanın ve çalışma zamanı hatalarını önlemenin giderek zorlaştığını gözlemledik. C ve C++ gibi mevcut programlama dilleriyle arabellek taşmaları, bellek sızıntıları ve uygulamaların çökmesine yol açan tanımsız davranışlar gibi sorunlar yaşamaya devam ediyoruz. Bellek güvenliği garantileri sağlayan ve performans açısından kritik uygulamaları destekleyecek kadar verimli bir programlama diline ihtiyacımız var.

Değerlendirmeler

Birçok programlama dili, mevcut sorunları çözmek üzere tasarlanmıştır. Bunlar arasında Rust programlama dili, kendine özgü tasarım özellikleri nedeniyle geliştirici topluluğunun dikkatini önemli ölçüde çekmiştir. Değerlendirmeler şunları içerir:

  1. Bellek güvenliği ve emniyeti

  2. Performans ve verimlilik

  3. Topluluk desteği ve benimsenme

  4. Öğrenme eğrisi

  5. Araçlar ve ekosistem

  6. Mevcut yazılım sistemleriyle uyumluluk.

Kısıtlar

Yeni bir programlama dilini benimsemek, geliştiricilerin yeniden eğitilmesini gerektirir; bu da zaman ve kaynak ister. Dilin mevcut geliştirme iş akışına entegre edilmesi bir zorluk olabilir. Sürekliliği korumak için mevcut sistemlerle uyumluluğu sağlamalı ve uyumu bozan değişikliklerden kaçınmalıyız.

Uygulama

  1. Geliştirme ekibimiz, Rust programlama dilini öğrenmek ve tanımak için eğitim alacaktır.

  2. Geliştirme amaçlarımıza uyumunu ve uygunluğunu değerlendirmek için deneme amaçlı olarak Rust ile yeni bir proje oluşturacağız.

  3. C ve C++ ile yazılmış mevcut sistemleri kademeli olarak Rust'a taşıyacağız.

  4. Geliştirme iş akışımızı iyileştirebilecek mevcut araçları ve kütüphaneleri keşfetmek için Rust topluluğuyla iş birliği yapacağız.

  5. Rust'ın performansını izleyecek ve düzenli olarak mevcut programlama dillerinin performansıyla karşılaştıracağız.

  6. Eğitim, entegrasyon maliyetleri ile Rust kullanımının olası faydaları arasında denge kuran uzun vadeli bir yaklaşım benimseyeceğiz.

Gerekçe

Rust'ı; performansı ve verimliliği korurken bellek güvenliği ve emniyet garantileri sağlamak üzere tasarlanmış benzersiz özellikleri nedeniyle benimsedik. Rust'ın sağlam tür sistemi, ödünç alma denetleyicisi (borrow checker) ve bellek güvenliği kavramları, onu performans açısından kritik ve güvenlik açısından kritik uygulamalar geliştirmek için son derece uygun kılar. Ayrıca Rust, geliştirme iş akışımızı destekleyen çok çeşitli araçlara, kütüphanelere ve ekosisteme erişmemizi sağlayan geniş bir geliştirici topluluğuna sahiptir. Rust bir öğrenme eğrisi getirse de, Rust'ı benimsemenin faydalarının maliyetlerinden ağır bastığına ve sürekli büyüme ile yenilik için mükemmel bir fırsat sunduğuna inanıyoruz.

Sonuçlar

  1. Rust'ın benimsenmesi, geliştiricileri eğitmek ve dili mevcut geliştirme iş akışına entegre etmek için zaman ve kaynak açısından önemli bir yatırım gerektirecektir.

  2. Rust'ı benimsemek, mevcut sistemlerle bir miktar uyumluluk sorununa yol açabilir; bu da yeniden düzenleme ve değişiklik gerektirir.

  3. Rust'ın benimsenmesi, heyecan verici projelerde çalışmak isteyen Rust geliştiricilerini çekerek projemize katkıda bulunabilecek geliştirici sayısını artırabilir.

  4. Benimseme, mevcut dillere kıyasla daha iyi performansa, verimliliğe ve güvenliğe yol açabilir.

  5. Son olarak, Rust'ı benimsemek uygulamalarımızdaki güvenlik açıklarını azaltma potansiyeli de taşır.

Kredi: Bu sayfa ChatGPT tarafından oluşturulmuş, ardından netlik ve biçim için düzenlenmiştir.