Bu durumu çok iyi biliyorum. Bu şekilde sıkışıp kaldığımda projeye farklı bakış açıları koymaya çalışıyorum.
1.) Kullanıcı / müşteri bakış açısı - geri bildirimi kullanın
Maalesef kodumuza kendi kusurlarımızı göremeyeceğimiz şekilde yakalandık çünkü uygulamalarımızı kodladığımız şekilde kullanıyoruz. İnsanların onu nasıl kullandıklarına bakın ve en sezgisel kullanıcı rehberliğinin ne olacağını anlamaya çalışın. UI prototipleriyle oynayın. Bu eğlenceli gözüküyor, ancak kullanım mantığını yeniden tasarlamaya başlamanın zamanı geldiğinde değiştirerek kodunuzun büyük bölümlerini yeniden kodlamanız gerekeceğini öğrenirseniz.
2.) Kodunuzun işlevsel bir analizini yapın ve görselleştirin
Bazı IDE'ler ve çerçeveler sizi örneğin UI ve arka uç kodunu karıştırmaya zorlar. Bunun olmasına izin verirseniz, bir gün kod tabanınızın belirsiz ve kırılması zor bağımlılıklar nedeniyle zorlukla korunabileceği durumuyla karşı karşıya kalacaksınız. Özellikle UI kodunun diğer kodla karıştırılması, spagetti koduna ve gereksiz işlevlere yol açabilir. Kodunuzu, örneğin veritabanı sınıfları, iletişim sınıfları, UI sınıfları, temel sınıflar vb. Gibi işlevsel bloklara bölün ve fonksiyon bloklarına konuşma isimleri verin. Daha sonra, farklı projeler için devasa kod bloklarını yeniden kullanabileceğiniz ve bunları daha yeni sürümlerle değiştirebileceğinizden, mantıklı ve modüler olup olmadığını anlamak için işlevselliği grafiksel bir araçla görselleştirin (bir zihin haritalama aracı kullanıyorum). büyük acı.
Bunu benim deneyimlerime göre yapmanın en iyi yolu, sınıflarınız ile onların kodları arasındaki çağrıları arasındaki tüm bağımlılıkları görselleştiren bir belge oluşturmaktır. Sonuç, arayüz tasarımınızın görselleştirilmesidir. Bu kod haritası tam bir clusterf *** gibi görünüyorsa, hareket etme zamanından daha fazla. Henüz gerçekleşmediyse, kod yapınızı temsil eden ve onu nasıl arayacağınızı ve ne yaptığını düşünmek zorunda olmadığınız şekilde temsil eden uygun bir adlandırma kuralını düşünmelisiniz.
3.) Kalite güvencesine ortak yaklaşımlar kullanın.
Benim favorim FMEA. Kodlama açısından bu, geçmişte neyin yanlış gittiğini analiz etmek değil, neyin yanlış gidebileceğini de düşünmek anlamına gelir. Oldukça yaygın bir örnek aniden bırakılan bir ağ bağlantısıdır. Bunu yaptıktan sonra, hata koşullarını veri kaybı, çökme, yanlış hesaplama ve kullanıcı üzerindeki etkiyi yargılamak gibi sonuçlara göre sınıflandırabilirsiniz. Henüz yapılmadıysa, basitleştirilmiş hata ve istisna sınıflarını ve yordamlarını tanımlamak kodunuzu temiz ve düz tutmanıza yardımcı olabilir. En iyi yol, başka bir şey yazmaya başlamadan önce bunları her yeni kod huzurunda uygulamaktır. (Ben her zaman bu tavsiyeyi kendim takip edemem suçluyum.)
Ayrıca, kendi kodum için bir "iyileştirme teklifi listesi" oluşturmam ve sık sık güncellememe yardımcı oldu. (Dürüst olmak gerekirse, projelerimde kesinlikle gurur duymadığım çok sayıda kod var.) Ayrıca API belgelerinden, geliştirici konferanslarından veya geliştirici dergilerinden en iyi uygulama kodlarını toplamaya ve incelemeye zaman ayırmaya çalışıyorum.
Bu noktaya kadar kodunuza dokunmanıza gerek yok. Neyin yanlış gittiğinin farkına varmak ve kodunuzu nasıl geliştireceğinizi tanımlamanın bir yolunu bulmaktan ibaret.
Sonunda eski bir osuruktan günlük iş için bazı ipuçları. Yemekten daha fazla ısırmaktan kaçının. Bu, temiz kodlama için çok fazla baskıya neden olur. Bunu doğru yapmak için nadiren zaman kazanıyorsunuz, ancak sonrasında kusurları düzeltmek için zaman ayırmanız gerekecek.
Hiçbir şey geçici çözüm kadar uzun sürmez, ancak kırıldığında zamanla düzeltmek için genellikle geç kalır. Örnekler, temel çerçevedeki veya işletim sistemindeki bir kusura rağmen çalışacak bir şey almak için kullandığım kötü kesimler veya garip istisnalar. Ardından kusur düzeldi ya da yeni sürüm basitçe API'yi düşürdü…
Sıkışırsanız ve zaman zaman gözden geçirilmesi gereken notları almaktan ve yorum yapmaktan başka bir geçici çözüm bulmak zorunda kalırsanız. Normalde yeni bir şeyler öğrendiğimiz için daha iyi ve daha iyi oluruz. Daha iyi bir yol bulursanız, mümkün olduğu kadar çabuk uygulayın. Aksi takdirde, bir geçici çözüm için istisna kodunu ve istisna istisnasını kendiniz kodlayabilirsiniz. (Aranızda günahsız olan, bana ilk baytı atmasına izin verin.)