Mühendislik ilkeleri

Bizi neyle ölçe­bi­lir­si­niz.

Yazılım geliştirirken bağlı kaldığımız on iki ilke — her biri bu web sitesinde okunabilecek bir kaynağa yönlendiriyor.

Yazılım ya iyi yaşlanır ya hiç.

Teslim günü için değil, yıllar boyunca her değişikliğin maliyeti için tasarlıyoruz. Uzun ömür bir yan etki değil, amacın kendisidir.

Kaynak: On yıl sonra da çalışan yazılım →

Öngörü yerine geri alınabilirlik.

Geleceği tahmin etmiyoruz; değişikliği ucuz tutuyoruz. Geri alınamaz kararları yavaş alır ve gerekçesini yazıya dökeriz.

Kaynak: Öngörüden önce geri alınabilirlik →

Karmaşıklık ihtiyacı izler.

Sadelik tasarlanmalıdır; karmaşıklık kendiliğinden oluşur. Somut bir sorun gerektirmedikçe yapı eklemeyiz.

Kaynak: Bakış açısı: Erken soyutlama →

İş mantığı domain katmanına aittir.

İşi tanımlayan kurallar framework'ten bağımsız kalır — framework altyapıdır, kuralların yeri değildir.

Kaynak: İş mantığı controller'lara ait değildir →

Her öneri bedelini söyler.

Ödünleşimi, maliyeti ve farklı karar vereceğimiz durumu belirtilmemiş hiçbir öneri yoktur. Karşı durumu adlandıramayan, öneriyi anlamamıştır.

Kaynak: Tüm Referans Rehberleri →

Hataların pahalı olduğu yerde test ederiz.

Bir testin değeri, güvenli hale getirdiği değişikliktir — bir kapsam oranı değil. Önemsiz olanı değil, pahalı çekirdeği test ederiz.

Kaynak: Testler gerçekten ne zaman değerlidir →

Gözlemlenebilirlik tasarımın parçasıdır.

Yalnızca görebildiğinizi işletebilirsiniz. Gözlemlenebilirlik, ilk olaydan sonra eklenen bir ek değil, ilk günden itibaren bir tasarım özelliğidir.

Kaynak: Bakış açısı: Mimari olarak gözlemlenebilirlik →

Modüler monolitle başlarız.

Net sınırlara sahip tek bir dağıtım birimi, geri alınabilir varsayılan seçenektir. Servisleri ancak adı konmuş somut bir etken gerektirdiğinde ayırırız.

Kaynak: Modüler monolit mi, mikroservisler mi? →

Moda yerine olgun teknoloji.

Popülerliğe göre değil, bağlama ve ömre göre seçeriz — çünkü olgun teknolojinin sınırları bilinir ve beş yıl sonra da onu anlayan biri bulunur.

Kaynak: Laravel mi, Symfony mi? →

Geliştirdiğimizi işletiriz.

Yazılım yayına alınmakla bitmez. Hata durumu için tasarlar, küçük ve geri alınabilir adımlarla teslim eder ve sistemin başında kalırız.

Kaynak: Yazılım bakımı ve işletimi →

Kodunuz size aittir.

Projeye özel kaynak kod ve üzerinde anlaşılan proje çıktıları, onları işletmek için gereken bilgiyle birlikte devredilir. Teknik olarak bağımsız kalırsınız — her sağlayıcıdan, bizden bile.

Kaynak: Batunet hakkında →

Tek muhatap: şirket yönetimi.

Proje boyunca iletişimi ve teknik kararları şirket yönetimi koordine eder; geliştirme ekip olarak yapılır.

Kaynak: İletişim →

İlkeler sınanmak içindir.

Farklı düşünüyorsanız — ya da somut bir sorununuz varsa — doğrudan şirket yönetimiyle konuşun.