Bu birkaç yıl önce zor bir soru olabilirdi, ancak günümüzde IMO artık tesadüfi karmaşıklığı ortadan kaldırmak için zor değil.
Kent Becksa'nın kendisi hakkında ne düşündüğü, bir noktada: "Ben iyi bir programcı değilim; sadece büyük alışkanlıkları olan iyi bir programcıyım."
İki şey vurgulanmaya değer, IMO: kendini bir mimar olarak değil, bir programcı olarak görüyor ve odağı bilgi değil, alışkanlıklar üzerine.
Feynman'ın zor problemleri çözme yolu bunu yapmanın tek yoludur. Tanımlamanın mutlaka anlaşılması çok kolay değil, bu yüzden disekte edeceğim. Feynman'ın kafası sadece bilgi dolu değildi, aynı zamanda bu bilgiyi uygulama becerisiyle de doluydu. Bunu kullanmak için hem bilgi hem de beceriye sahip olduğunuzda, zor bir problemi çözmek ne zor ne de kolaydır. Tek olası sonuç bu.
Kazara karmaşıklık içermeyen, temiz bir kod yazmanın tamamen sihirli bir yolu var ve Feynman’ın yaptıklarına çok benziyor: tüm gerekli bilgileri edinme, işe koyulmak için alışmak için gerekli tüm bilgileri edin. Beyninin bir köşesine temiz kod yaz.
Artık birçok programcı, temiz kod yazmak için gereken tüm bilgilerin farkında bile değil. Genç programcılar algoritmalar ve veri yapıları hakkındaki bilgiyi atma eğilimindedir ve çoğu eski programcı bunu unutmaya meyillidir. Ya da büyük O gösterim ve karmaşıklık analizi. Daha eski programcılar modelleri ya da kod kokularını yok etme eğilimindedirler - ya da var olduklarını bile bilmiyorlar. Herhangi bir neslin programcılarının çoğu, kalıpları bilseler bile, parçaları ne zaman ve ne zaman kullanacaklarını asla hatırlamıyor. Herhangi bir neslin birkaç programcısı kodlarını SOLID ilkelerine göre sürekli olarak değerlendirir. Birçok programcı tüm olası soyutlama seviyelerini her yere karıştırır. Bir programcıdan beri, kodunu Fowler tarafından yeniden düzenleme kitabında tarif edilen pis kokulara karşı sürekli olarak değerlendirmek için farkında değilim. Bazı projeler bazı metrikler aracını kullanmasına rağmen, en çok kullanılan metrik, bir tür veya diğerinin karmaşıklığıdır; diğer iki ölçümün (kuplaj ve uyum) temiz kod için çok önemli olsalar bile, büyük ölçüde göz ardı edilmesi gerekir. Neredeyse herkesin görmezden geldiği bir başka yön bilişsel yüktür. Çok az sayıda programcı ünite testlerini dokümantasyon olarak kabul eder ve daha azı ünite testlerinin yazılmasının veya isimlendirilmesinin zor olduğunu, bunun genellikle kötü faktoringi belirttiğinin bir başka kod kokusu olduğunu bilmektedir. Küçük bir azınlık, kod modelini ve iş alanı modelini birbirine mümkün olduğu kadar yakın tutmak için etki alanına dayalı tasarımın mantığının farkındadır, çünkü yoldaki sorunları yaratacak şekilde tutarsızlıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. en çok kullanılan metrik, bir tür veya başka bir karmaşıklıktır, diğer iki ölçüm - eşleştirme ve uyum - temiz kod için çok önemli olsalar bile, büyük ölçüde göz ardı edilir. Neredeyse herkesin görmezden geldiği bir başka yön bilişsel yüktür. Çok az sayıda programcı ünite testlerini dokümantasyon olarak kabul eder ve daha azı ünite testlerinin yazılmasının veya isimlendirilmesinin zor olduğunu, bunun genellikle kötü faktoringi belirttiğinin bir başka kod kokusu olduğunu bilmektedir. Küçük bir azınlık, kod modelini ve iş alanı modelini birbirine mümkün olduğu kadar yakın tutmak için etki alanına dayalı tasarımın mantığının farkındadır, çünkü yoldaki sorunları yaratacak şekilde tutarsızlıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. en çok kullanılan metrik, bir tür veya başka bir karmaşıklıktır, diğer iki ölçüm - eşleştirme ve uyum - temiz kod için çok önemli olsalar bile, büyük ölçüde göz ardı edilir. Neredeyse herkesin görmezden geldiği bir başka yön bilişsel yüktür. Çok az sayıda programcı ünite testlerini dokümantasyon olarak kabul eder ve daha azı ünite testlerinin yazılmasının veya isimlendirilmesinin zor olduğunu, bunun genellikle kötü faktoringi belirttiğinin bir başka kod kokusu olduğunu bilmektedir. Küçük bir azınlık, kod modelini ve iş alanı modelini birbirine mümkün olduğu kadar yakın tutmak için etki alanına dayalı tasarımın mantığının farkındadır, çünkü yoldaki sorunları yaratacak şekilde tutarsızlıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. Diğer iki ölçüm - birleştirme ve uyum - temiz kod için çok önemli olsalar bile, büyük ölçüde göz ardı edilir. Neredeyse herkesin görmezden geldiği bir başka yön bilişsel yüktür. Çok az sayıda programcı ünite testlerini dokümantasyon olarak kabul eder ve daha azı ünite testlerinin yazılmasının veya isimlendirilmesinin zor olduğunu, bunun genellikle kötü faktoringi belirttiğinin bir başka kod kokusu olduğunu bilmektedir. Küçük bir azınlık, kod modelini ve iş alanı modelini birbirine mümkün olduğu kadar yakın tutmak için etki alanına dayalı tasarımın mantığının farkındadır, çünkü yoldaki sorunları yaratacak şekilde tutarsızlıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. Diğer iki ölçüm - birleştirme ve uyum - temiz kod için çok önemli olsalar bile, büyük ölçüde göz ardı edilir. Neredeyse herkesin görmezden geldiği bir başka yön bilişsel yüktür. Çok az sayıda programcı ünite testlerini dokümantasyon olarak kabul eder ve daha azı ünite testlerinin yazılmasının veya isimlendirilmesinin zor olduğunu, bunun genellikle kötü faktoringi belirttiğinin bir başka kod kokusu olduğunu bilmektedir. Küçük bir azınlık, kod modelini ve iş alanı modelini birbirine mümkün olduğu kadar yakın tutmak için etki alanına dayalı tasarımın mantığının farkındadır, çünkü yoldaki sorunları yaratacak şekilde tutarsızlıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. Neredeyse herkesin görmezden geldiği bir başka yön bilişsel yüktür. Çok az sayıda programcı ünite testlerini dokümantasyon olarak kabul eder ve daha azı ünite testlerinin yazılmasının veya isimlendirilmesinin zor olduğunu, bunun genellikle kötü faktoringi belirttiğinin bir başka kod kokusu olduğunu bilmektedir. Küçük bir azınlık, kod modelini ve iş alanı modelini birbirine mümkün olduğu kadar yakın tutmak için etki alanına dayalı tasarımın mantığının farkındadır, çünkü yoldaki sorunları yaratacak şekilde tutarsızlıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. Neredeyse herkesin görmezden geldiği bir başka yön bilişsel yüktür. Çok az sayıda programcı ünite testlerini dokümantasyon olarak kabul eder ve daha azı ünite testlerinin yazılmasının veya isimlendirilmesinin zor olduğunu, bunun genellikle kötü faktoringi belirttiğinin bir başka kod kokusu olduğunu bilmektedir. Küçük bir azınlık, kod modelini ve iş alanı modelini birbirine mümkün olduğu kadar yakın tutmak için etki alanına dayalı tasarımın mantığının farkındadır, çünkü yoldaki sorunları yaratacak şekilde tutarsızlıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. Kod modelini ve iş alanı modelini birbirine mümkün olduğunca yakın tutma mantığı, çünkü yoldaki problemleri yaratma konusunda farklılıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey. Kod modelini ve iş alanı modelini birbirine mümkün olduğunca yakın tutma mantığı, çünkü yoldaki problemleri yaratma konusunda farklılıklar vardır. Kodunuzun temiz olmasını istiyorsanız, bunların hepsinin her zaman göz önünde bulundurulması gerekir. Ve şu an hatırlayamadığım birçok şey.
Temiz kod yazmak ister misin? Sihir gerekli değil. Tek yapmanız gereken gerekenleri öğrenmek. Daha sonra, kodunuzun temizliğini değerlendirmek için kullanın ve mutlu olana kadar refactor kullanın. Ve öğrenmeye devam edin - yazılımlar hala genç bir alandır ve yeni bakış açıları ve bilgiler hızlı bir şekilde edinilmektedir.