Yazılım geliştiricilerin çoğu, yeni bir projeye başlarken aynı hataya düşer. Üç gün boyunca bir framework seçmekle, iki saat klasör yapısını tartışmakla ve ardından bir öğreticiden kopyala-yapıştır yaptığı kod parçacıklarıyla vakit harcarlar. Sonra da, neredeyse hiç anlamadıkları bir kod bloğunu yazmaya girişirler. Bu kod, altı ay sonra dokunulmaz hale gelecek ve geliştiricinin kendisini rahatsız hissedeceği bir hale bürünecektir.
İşte bu noktada, daha iyi bir yaklaşıma ihtiyaç duyulur. Daha hızlı ya da daha kolay değil — daha iyi. Çünkü her satır kodun sahibi siz olmalısınız. Her kararınızın arkasında durabilmeli ve altı ay sonra bile kodunuzu rahatça inceleyebilmelisiniz. Bu yaklaşım, Sahiplik Çerçevesi olarak adlandırılabilir. Bir metodoloji değil, bir disiplindir.
Kural 1 — Klavyeye dokunmadan önce sorunu netleştirin
Tek bir dosya oluşturulmadan önce, bir paragraf yazılmalıdır. Bu paragraf, "Bu uygulama ne işe yarar, kimin için tasarlanmıştır ve sorunsuz çalıştığında ne olur?" sorularına cevap vermelidir. Bu paragraf, görünür bir yere asılmalı ve gelecek aylar boyunca yapılacak tüm mimari kararlar bu paragrafa göre değerlendirilmelidir. Kararınız bu amaca hizmet etmiyorsa, kod tabanınıza girmemelidir.
Kural 2 — Veri modelini önce tasarlayın, uç noktaları sonra düşünün, arayüzü en son ele alın
Veri modeli, uygulamanızın iskeletidir. Yanlış tasarlanırsa, üzerine inşa edilen her şey birer geçici çözüme dönüşür. Varlıkları kağıt üzerinde çizerek başlayın. Alan adlarını, gece 02:00'de bir arıza sırasında bile kolayca okuyabilecek şekilde isimlendirin. Ardından, bu veriyi sunacak uç noktaları düşünün. Arayüz en sona bırakılmalıdır, çünkü arayüz en kalıcı olmayan bileşendir.
Kural 3 — Bir sonraki özelliğe başlamadan önce mevcut olanı tamamlayın
Tek bir dosya ya da katman değil — tamamlanmış, çalışan ve belki de ilk etapta çirkin görünen bir özellik. Örneğin, bir kayıt uç noktası: şifreyi hashler, kullanıcıyı kaydeder ve bir token döndürür. Bu bir özelliktir. Uçtan uca çalıştığında, neyin inşa edildiğini tam olarak anlarsınız. Her katmana bir kez dokunmuş olursunuz. Artık bir sonraki özelliği daha hızlı inşa edebilecek yetkinliğe sahip olursunuz.
Kural 4 — Satır satır açıklayamadığınız kodu asla kullanmayın
Bu kural, en zor olanıdır. Stack Overflow’dan ya da bir dokümantasyondan kod kopyalamadan önce durun. Her satırı okuyun. Eğer ne yaptığını açıklayamıyorsanız, kopyalamayın. Kendi versiyonunuzu yazın — hatta ilk etapta daha kötü olsa bile. Anladığınız kötü kod, anlamadığınız mükemmel koddan çok daha değerlidir. Kod tabanınızda açıklayamadığınız mantık barındırmaya başladığınız anda, artık kodunuz sizin değildir.
Kural 5 — Devam etmeden önce kodu kasten bozun
Bir özellik çalışır hale geldiğinde, on beş dakika ayırarak kodu kasten bozmaya çalışın. Geçersiz girdiler gönderin, gerekli alanları atlayın, uç noktaya aynı anda iki kez erişin. Bu, testler yazmak için değil — kullanıcıların üretimde karşılaşacağı boşlukları bulmak için. Bu boşluklar, şimdi yalnız başınıza ve sonuçsuz bir şekilde ortaya çıktığında, gelecekteki sorunların önüne geçilmiş olur.
Kural 6 — Acı hissettiğinizde yeniden yapılandırın
Yeniden yapılandırmayı zamana ya da görünüme göre değil, somut bir acıya yanıt olarak yapın. Yeni bir özellik eklerken beş dosyaya dokunmanız gerektiğinde, aynı mantığı üç farklı yerde yazdığınızda ya da kodunuzu okumanın bile zorlaştığında acı sinyaldir. Yeniden yapılandırma, estetiğe değil, sinyale yanıt olarak yapılmalıdır.
Kural 7 — Kodu değil, kararları belgeleyin
// kullanıcıları dolaşır gibi yorumlar gürültüdür. Bunun yerine, // bu sorguyu ORM desteklemediği için sıralama burada yapılıyor gibi yorumlar altın değerindedir. Gelecek sizin — altı ay sonra, uykusuz ve baskı altında — kodun ne yaptığını değil, neden o şekilde yapıldığını anlamaya ihtiyacı vardır. Duvarların neden yük taşıdığını anlamadan duvarları yıkmaya çalışmayın.
Tüm bu kuralların ardındaki ilke
Sahiplik, sıfırdan kod yazmakla ilgili değildir. Sahiplik, adını taşıyan kodun içindeki her kararı anlamaktır. Sahiplik Çerçevesi, sizi daha hızlı yapmaz. Sizi güvenilir kılar — takımınıza, kullanıcılarınıza ve en önemlisi, kendinize karşı. Çünkü kod tabanınızın her parçasını anladığınız anda, korku ortadan kalkar. Yeniden yapılandırmaktan, hata ayıklamaktan ve göndermekten korkmazsınız.
Kod sizindir. Ya tamamen sahiplenin ya da hiç yazmayın.
Yapay zeka özeti
Yeni projelerinize başlamadan önce mimari kararlarınızın sorumluluğunu üstlenin. Sahiplik Çerçevesi ile kodlarınızın her satırını anlayın, gelecekteki kendinizin de rahatça yönetebildiği bir temel oluşturun.