Yazılım geliştirmede en iyi uygulamalar 1 ile ilgili çok fazla konuşma var . En az üç önemli noktanın hem SE'de hem de başka yerlerde çok fazla tartışma yaptığını gördüm:
- En iyi uygulama olarak nitelendirilen nedir ve neden?
- En iyi uygulamalar en başta tartışılmaya değer mi, çünkü hiçbir uygulamanın “en iyi” uygulama olduğunu iddia etmek mantıklı mıdır?
- Ne zaman uygulanabilir görünmediği ya da ödünleşimi uygulanamaz kılan dışsal kısıtlamalar (zaman, para, vb.) Nedeniyle ne zaman en iyi uygulamadan - ya da belki de en iyi uygulamalardan - vazgeçmelisiniz?
Çok daha az sıklıkta, ancak hiç olmadığı kadar çok ortaya çıkan bir şey, yazılım geliştirmede sağduyulu bir kavramdır . Son zamanlardaki deneyimler bu görüşü tekrar aklımın önüne getirdi.
İlk izlenimim, bunun en iyi uygulamalardan farklı bir tartışma olduğu, ancak belki de bazı çapraz tozlaşma ile olduğu.
Genel anlamda sağduyulu düşündüğümde, aldığınız veya size öğretilen ve size akıl yürütmek ve kararlar vermek için bir temel oluşturan bir dizi kuralı düşünüyorum. Sağduyu izlemek, tüm bacağınızı vurmaktan kaçınmanın iyi bir yoludur. Ancak, oldukça düşük bir başlangıç çizgisinin ötesinde, sağduyu, eğitimli kararlar verme ihtiyacına yol açar ve eğitimli kararlar, kanıtlar yeterince zorlayıcı göründüğünde sağduyu geçersiz kılabilir. Buradaki tanımla biraz gevşek oynuyorum, ama örneğime öncülük etmek için yeterince yakın olduğunu düşünüyorum.
Yazılım geliştirmede sağduyuyu düşündüğümde, bir kod tabanının hızla anlaşılmaz bir karmaşaya dönüşmesini önlemek için tüm temel hijyen kurallarını düşünüyorum. Örnek olarak aşağıdakiler gibi şeyler: önemsiz olmayan bir program içinde durumu korumak ve iletmek için tek bir küresel yapı kullanmamak; sadece rastgele anlamsız değişkenler / yöntem / sınıf adları kullanmamak; muhtemelen anti-desen dediğimiz şeylere çok benzeyen şeyler. En iyi uygulamaları öğrenme modellerine pratik analog uygularken, sağduyu uygulamak, anti-kalıp öğrenmenin pratik analogu olarak görülebilir.
Bunu göz önünde bulundurarak, başkalarının cevaplarını görmenin bana bu konuda yol göstermeme yardımcı olabileceği birkaç soru sormak istiyorum.
Diğerleri yazılım geliştirmede sağduyulu bir kavram olduğuna inanıyor mu? Her iki şekilde de akıl yürütmeyi bilmek isterdi.
Eğer öyleyse, tartışmaya değer bir kavram mı? Bazen en iyi uygulamalarla yaptığımız kadar zorlamamız gereken bir şey mi? Daha da zorlanmaya değer bir şey mi?
Anti-paternlere benzetme makul görünüyorsa, genel kural anti-paternlerin sadece başka bir yolu yoksa ve hatta o zaman sadece çok sınırlı koşullar altında kullanılmasıdır. Bir kod tabanının sağduyudan sapmasına izin vermede ne kadar esnek olmalıdır? Cevabın "hiç" olmadığı mantıksız görünüyor, çünkü bazen uygunluk sapmalar gerektiriyor. Ancak, "en iyi uygulamayı" ne zaman kullanacağınızdan farklı bir argüman gibi görünüyor. Belki de değildir; Eğer öyle düşünmüyorsanız, nedenini öğrenmek isterim.
Bu çok daha açık uçludur ve belki de tamamen kendi başına bir takip sorusuna layıktır, sağduyu meseleleri gibi görünen ne tür tavsiyelere işaret ederdiniz?
Diğer düşünceler de açıktır.
1 Belki de onlara "yaygın olarak yinelenen etki alanı kalıpları" adını vermek daha iyi olur, ancak "en iyi uygulamalar" adı, herkesin ne olduğunu bilmesi için yeterince yaygındır. "En iyi" kısım sizi rahatsız ediyorsa, "en iyi uygulamaları" daha az güvenilir bir sesle değiştirdiğimi düşünün.