TypeScript

TypeScript ile sürdürülebilir kod tabanı

On bir canlı ürünümüz TypeScript ile yazıldı. Bu bizim için tercih değil, varsayılan. Yapay zeka destekli geliştirmede tip sistemi ayrıca önem kazanıyor.

Sebebi basit: üretilen kodun doğruluğunu gözle kontrol etmek ölçeklenmiyor, derleyici kontrol ediyor. Bu sayfada tip sisteminden gerçekte ne beklediğimizi yazdık.

01

Yapay zeka çağında tipin işlevi

Yapay zeka bir fonksiyonu saniyeler içinde yazıyor, ancak çağıran tarafın beklentisini bilmiyor. Tip tanımları bu beklentiyi makinenin kontrol edebileceği bir sözleşmeye çeviriyor. Üretilen kod sözleşmeyi bozarsa derleme aşamasında düşüyor, üretimde değil. Bu yüzden yeni bir projede ilk yazdığımız şey genelde arayüz tanımları ve veri şemaları oluyor.

02

Tip güvenliğinin bittiği yer

TypeScript yalnızca derleme zamanında çalışıyor. Ağdan gelen veri, form girdisi ve üçüncü parti yanıtlar çalışma zamanında her şey olabilir. Bu sınırlarda şema doğrulaması yapmazsanız tip sistemi size yanlış bir güven veriyor. Uygulamaya giren her dış veriyi doğruluyoruz, geri kalan yerlerde tiplere güveniyoruz.

03

Aşırı tiplemenin maliyeti

Karmaşık genel tipler ve zekice tip hilesi, kod tabanını okunmaz hale getirebiliyor. Bir yıl sonra o tipi çözmeye çalışan kişi, korunmak istenen hatadan daha fazla zaman kaybediyor. Basit ve okunur tipleri tercih ediyoruz. Amaç tip sistemiyle gösteriş yapmak değil, sizden sonra gelen geliştiricinin kod tabanına güvenle dokunabilmesi.

04

Uçtan uca tip paylaşımı

Sunucu ile istemcinin aynı tipleri paylaşması, ekipler arası en yaygın hata kaynağını ortadan kaldırıyor. Reveal Software'de web uygulaması, tarayıcı eklentisi ve yönetim paneli aynı tek depo içinde ortak tipleri kullanıyor. Bir alan adı değiştiğinde etkilenen her yer derlemede görünüyor, üç ayrı yerde elle aramak gerekmiyor.

Kanıt

Tam olarak bununla yayına aldığımız ürünler.

Sorular

Başlamadan önce en çok sorulanlar.

Mevcut JavaScript projemizi TypeScript'e taşımalı mıyız?

Proje aktif olarak geliştiriliyorsa genellikle evet, ama tek seferde değil. Kademeli taşıma yapıp önce veri modeline ve dış sınırlara tip veriyoruz. Donmuş bir projede taşımanın getirisi düşük.

Tip yazmak geliştirmeyi yavaşlatmıyor mu?

İlk gün biraz yavaşlatıyor, ilk büyük değişiklikte fazlasıyla geri veriyor. Yapay zeka destekli geliştirmede tipler ayrıca üretilen kodu doğrulayan otomatik bir kontrol katmanı sağlıyor.

Kod incelemesini kim yapıyor?

Her değişiklik birleştirilmeden önce bir mühendis tarafından okunuyor. Derleyici tip hatalarını yakalıyor, insan ise mantığın ve yetkilendirmenin doğruluğunu kontrol ediyor.

Devir sonrası ekibimiz kodu sürdürebilir mi?

Amacımız bu. Tip tanımları ve belgelerle birlikte teslim ediyoruz, böylece işi devralan geliştirici kodun ne beklediğini okuyarak anlayabiliyor.

İletişim

Uzun vadeli bir mühendislik ortağı mı arıyorsunuz?

Ürünü, zaman çizelgesini ve kimin için olduğunu anlatan kısa bir not başlamak için yeterli. Size bir satış ekibi değil, işi yapacak mühendis dönecek.

Ankara / Türkiye · Avrupa ve ABD saat dilimlerinde çalışıyoruz