TL; DR
Non saprai mai tutto. C'è praticamente sempre più profondità e ampiezza attorno a ogni singola "cosa" che puoi sapere. Impara mentre vai. Applica le "migliori pratiche" che ritieni siano rilevanti adesso. Fare errori. Cerca solo di evitare di commettere errori davvero costosi . Trova mentori se il tuo progetto potrebbe portare a costosi errori.
E ora la lunga risposta ...
1. "Il software di lavoro è la misura principale del progresso." ( Manifesto Agile )
Se riesci a vedere i limiti delle tue conoscenze, è fantastico! Insegui i bordi! Continua a imparare! Ma tieni presente che potresti imparare e analizzare per sempre .
Costruisci qualcosa.
2. Impara e commetti errori; ma non crearne di "cattivi". *
Continua a spingere i confini delle tue conoscenze / abilità. Si dovrà fare degli errori. Puoi imparare da loro. Ma non devi essere sconsiderato .
Il tempo impiegato per trovare e lavorare con sviluppatori e tutor più esperti dovrebbe aumentare in proporzione al valore aziendale e al profilo di rischio del progetto.
Se stai creando una piccola CLI per te stesso : fallo funzionare come preferisci.
Se stai scrivendo il portale web di una banca: circondati di sviluppatori di grande esperienza.
3. Le "migliori pratiche" devono essere scritte tra virgolette e pronunciate con un occhiolino.
Le "Pratiche" sono promosse come "migliori pratiche" quando si ritiene che riescano a realizzare X in almeno alcuni casi. Qualcuno riconosce i benefici della Pratica A per ottenere il Beneficio X e dichiara che la pratica è una "best practice" su Internet. Altri sono d'accordo - spesso per una buona ragione. Ma, da quel momento in poi, generalmente perdiamo di vista il motivo per cui alcune pratiche sono "buone pratiche" e altre sono o "antipattern" o "puzzolenti".
Il problema è che una "best practice" non è mai egoistica. "Antipatterns" non sono in realtà diabolici in sé e per sé. E anche una "puzza" viene a volte solo dal marciume. A volte, quella puzza è solo un formaggio delizioso e delizioso ...
Non si praticano cose come "iniezione di dipendenza" (DI) perché "iniezione di dipendenza" è intrinsecamente preziosa per l'azienda. Non è nemmeno lontanamente essenziale per costruire un prodotto funzionante. Realizza qualcosa che potresti desiderare nel tuo prodotto finale. Ma potrebbe anche richiedere più tempo per il tuo lavoro senza alcun vantaggio ...
Hmm ...
Quindi, dovresti seguire le "migliori pratiche?" Anche se non li capisci? ... Err ... sì. Voglio dire di no. Ma si. Ma solo quelli che si applicano davvero a te, al tuo software e al suo scopo.
Invoca il POAP ! (Sì. Il mio blog.)
I principi, i modelli e le pratiche non sono scopi finali.
La corretta e corretta applicazione di ciascuno è quindi ispirata e limitata da uno scopo superiore e più finale. Devi capire perché stai facendo quello che stai facendo!
(Il POAP non è esente dal POAP.)
Quindi, potresti non comprendere appieno ogni sfumatura di DI, ad esempio. Ma, se capisci l'intento, saprai se "dovresti" usare DI, e capirai implicitamente meglio DI.
E, una volta rilasciato il prodotto, puoi riflettere se DI (o qualsiasi altra cosa) sia stato davvero vantaggioso. In tal caso, spiega perché per iscritto. Altrimenti, spiega perché per iscritto ...
Lettura bonus / Abbastanza rilevante:
La paralisi dell'analisi è una cosa. Devi analizzare e imparare; ma devi anche fare le cose. Equilibrio.
Potresti sempre sentirti un programmatore di cowboy .
* In realtà si commettono errori male se nulla degno di nota. Ma, sei umano, presumo. Quindi ti perdoniamo in anticipo ... O almeno io. Può essere. ... Bene ... Vedremo.