TL; DR
Non lo saprai mai tutto. C'è praticamente sempre più profondità e ampiezza attorno a ogni singola "cosa" che puoi conoscere. Impara mentre vai. Applica le "migliori pratiche" che ritieni pertinenti ora. Fai errori. Cerca solo di evitare di commettere errori costosi . Trova i 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 bordi della tua conoscenza, è fantastico! Perseguire i bordi! Continua ad imparare! Ma tieni presente che potresti imparare e analizzare per sempre .
Costruisci qualcosa.
2. Impara e commetti errori; ma non fare "cattivi". *
Continua a spingere i confini delle tue conoscenze / abilità. farai errori. Puoi imparare da loro. Ma non è necessario essere spericolato .
Il tempo che passi a trovare e a lavorare con sviluppatori e mentori più esperti dovrebbe aumentare in proporzione al valore aziendale e profilo di rischio del progetto.
Se stai facendo un po 'di CLI per te : Funziona come vuoi.
Se stai scrivendo il portale web di una banca: Circondati di sviluppatori molto esperti
3. Le "migliori pratiche" dovrebbero essere scritte tra virgolette e pronunciate con un occhiolino.
Le "Pratiche" sono promosse alle "migliori pratiche" quando si osserva che hanno successo in raggiungere X in almeno alcuni casi. Qualcuno riconosce il beneficio di Pratica A per ottenere 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, di solito perdiamo di vista perché alcune pratiche sono "best practice" e altre sono "antipatterns" o "puzzolente".
Il problema è che una "migliore pratica" non è mai egoistica. "Antipattern" non sono in realtà diabolici di per sé. E persino un "puzzo" solo a volte viene da rot. A volte, quella puzza è solo un formaggio delizioso e delizioso ...
Non pratichi cose come "injection dependency" (DI) perché "dependency injection" è intrinsecamente prezioso per il business. Non è neanche lontanamente essenziale costruire un prodotto funzionante. Realizza qualcosa che vorresti nel tuo prodotto finale. Ma potrebbe anche solo rendere il tuo lavoro più lungo senza alcun beneficio ...
Hmm ...
Quindi, dovresti seguire le "migliori pratiche?" Anche se non li capisci? ... Err ... si. Intendo no. Ma si. Ma solo quelli che si applicano veramente a te, al tuo software e al suo scopo.
Invoca POAP ! (Sì. Il mio blog.)
Principles, patterns, and practices are not final purposes.
The good
and proper application of each is therefore inspired and constrained
by a superior, more final purpose. You need to understand why you're
doing what you're doing!
(The POAP is not exempt from the POAP.)
Quindi, potresti non comprendere appieno ogni sfumatura di DI, per esempio. Ma, se capisci l'intento, saprai se "dovresti" usare DI, e capirai implicitamente DI meglio.
E, una volta rilasciato il prodotto, è possibile riflettere sul fatto che DI (o qualsiasi altra cosa) sia davvero vantaggioso. In tal caso, articolare il motivo per iscritto. In caso contrario, articolare il motivo per iscritto ...
Lettura bonus / Interessante:
La paralisi delle analisi è una cosa. Devi analizzare e imparare; ma devi anche fare delle cose. Balance.
Potresti sentirti sempre un coder di cowboy .
* In realtà farà errori sbagliati se fai qualcosa di degno di nota. Ma tu sei umano, suppongo. Quindi ti perdoniamo prima del tempo ... O almeno lo faccio. Può essere. ... Beh ... Vedremo.