TL; DR
Hepsini asla bilemezsiniz. Bildiğiniz her bir "şey" etrafında neredeyse her zaman daha fazla derinlik ve genişlik vardır. Kullandıkça öğrenin. Şimdi alakalı olduğunu düşündüğünüz "en iyi uygulamaları" uygulayın . Hata yapmak. Sadece çok maliyetli hatalar yapmaktan kaçının . Projeniz maliyetli hatalara yol açabiliyorsa danışmanları bulun.
Ve şimdi uzun cevap ...
1. "Çalışan yazılım ilerlemenin birincil ölçüsüdür." ( Çevik Manifesto )
Bilginizin kenarlarını görebiliyorsanız, bu harika! Kenarları takip edin! Öğrenmeye devam et! Ama unutmayın, sonsuza dek öğrenebilir ve analiz edebilirsiniz .
Bir şey inşa et.
2. Öğrenme ve hata yapma; ama "kötü" olanları yapma. *
Bilgi / becerinizin sınırlarını zorlamaya devam edin. Sen edecek hata yaparlar. Onlardan öğrenebilirsiniz. Ama pervasız olmanıza gerek yok .
Daha deneyimli geliştiriciler ve danışmanlar bulmak ve onlarla çalışmak için harcadığınız zaman , projenin iş değeri ve risk profiliyle orantılı olarak artmalıdır .
Kendiniz için küçük bir CLI yapıyorsanız : İstediğiniz gibi çalışmasını sağlayın.
Bir bankanın web portalını yazıyorsanız: Kendinizi çok deneyimli geliştiricilerle çevreleyin .
3. "En iyi uygulamalar" tırnak içinde yazılmalı ve göz kırpma ile konuşulmalıdır.
"Uygulamalar", en azından bazı durumlarda X'e ulaşmada başarılı oldukları gözlemlendiğinde "en iyi uygulamalar" a yükseltilir . Birisi, Fayda X'a ulaşmak için A Uygulamasının yararını tanır ve bunu internette "en iyi uygulama" olarak ilan eder. Diğerleri aynı fikirde - çoğu zaman iyi bir sebepten dolayı. Ancak, bu noktadan itibaren, genellikle bazı uygulamaların neden "en iyi uygulama" ve diğerlerinin "anti-desen" veya "kokmuş " olduğu görüşünü kaybediyoruz .
Sorun şu ki, "en iyi uygulama" asla kendi kendine hizmet etmez. "Antipatterns" aslında kendi başlarına şeytani değildir. Ve bir "kokusu" bile bazen bazen çürümeden gelir. Bazen, bu pislik sadece süslü, lezzetli bir peynirdir ...
"Bağımlılık enjeksiyonu" (DI) gibi şeyler uygulamıyorsunuz çünkü "bağımlılık enjeksiyonu" doğal olarak işletme için değerlidir. Çalışan bir ürün oluşturmak için uzaktan bile gerekli değildir. Bu başarır şey bu belki istediğiniz son üründe. Ama, belki de sadece işinizi hiçbir yararı için daha uzun süre geçmesine ...
Hmm ...
Peki, "en iyi uygulamaları" takip etmeli misiniz? Onları anlamasan bile? ... Hata ... evet. Olmaz diyorum. Ama evet. Ancak, sadece sizin ve yazılımınız ve amacı için gerçekten geçerli olanlar.
Çağır POAP ! (Evet, blogum.)
İlkeler, kalıplar ve uygulamalar nihai amaç değildir.
Bu nedenle, her birinin iyi ve uygun bir şekilde uygulanması, üstün ve daha nihai bir amaçtan esinlenir ve kısıtlanır. Yaptığın şeyi neden yaptığını anlamalısın!
(POAP, POAP'tan muaf değildir.)
Yani, örneğin DI'nin her nüansını tam olarak anlamayabilirsiniz. Ancak, amacı anlarsanız, DI'yi "kullanmanız" gerekip gerekmediğini bileceksiniz ve DI'yı bir tür dolaylı olarak daha iyi anlayacaksınız.
Ve ürünü serbest bıraktıktan sonra, DI'nin (veya herhangi bir şeyin) gerçekten faydalı olup olmadığını düşünebilirsiniz. Eğer öyleyse, neden yazılı olduğunu belirtin. Değilse, neden yazılı olarak belirtin ...
Bonus okuma / Biraz alakalı:
Analiz felci bir şeydir. Analiz etmeniz ve öğrenmeniz gerekiyor; ama aynı zamanda işleri halletmeniz de gerekiyor. Denge.
Her zaman bir kovboy kodlayıcı gibi hissedebilirsiniz .
* Aslında edecek sen şey kayda değer yaparsanız kötü hata yaparlar. Ama sen insansın sanırım. Yani, sizi vaktinden önce affediyoruz ... Ya da en azından ben. Olabilir. ... Şey ... Göreceğiz.