Questa potrebbe essere stata una domanda difficile alcuni anni fa, ma oggigiorno l'IMO non è più difficile eliminare la complessità accidentale.
Ciò che Kent Becksaid ha di se stesso, ad un certo punto: "Non sono un grande programmatore; sono solo un buon programmatore con grandi abitudini".
Vale la pena sottolineare due cose, l'IMO: si considera un programmatore , non un architetto, e si concentra sulle abitudini, non sulla conoscenza.
Il modo di Feynman di risolvere problemi difficili è l'unico modo per farlo. La descrizione non è necessariamente molto facile da capire, quindi la analizzerò. La testa di Feynman non era solo piena di conoscenza, ma era anche piena dell'abilità di applicare quella conoscenza. Quando hai le conoscenze e le abilità per usarlo, risolvere un problema difficile non è né difficile né facile. È l'unico risultato possibile.
Esiste un modo completamente non magico di scrivere codice pulito, che non contiene complessità accidentale, ed è per lo più simile a quello che Feynman ha fatto: acquisire tutte le conoscenze necessarie, allenarsi per abituarsi a metterlo al lavoro, piuttosto che averlo nascosto in qualche angolo del cervello, quindi scrivi codice pulito.
Ora, molti programmatori non sono nemmeno a conoscenza di tutte le conoscenze necessarie per scrivere codice pulito. I programmatori più giovani tendono a scartare le conoscenze sugli algoritmi e le strutture di dati e i programmatori più vecchi tendono a dimenticarlo. O notazione O grande e analisi della complessità. I programmatori più anziani tendono a scartare schemi o odori di codice o non sanno nemmeno che esistono. La maggior parte dei programmatori di qualsiasi generazione, anche se conoscono i modelli, non ricordano mai esattamente quando utilizzare e le parti dei driver. Pochi programmatori di qualsiasi generazione valutano costantemente il proprio codice rispetto ai principi SOLID. Molti programmatori mescolano tutti i possibili livelli di astrazione in tutto il luogo. Non sono a conoscenza di un altro programmatore, per il momento, di valutare costantemente il suo codice rispetto alle puzze descritte da Fowler nel suo libro di refactoring. Sebbene alcuni progetti utilizzino alcuni strumenti di metrica, la metrica più utilizzata è la complessità, in un modo o nell'altro, mentre altre due metriche - accoppiamento e coesione - sono in gran parte ignorate, anche se sono molto importanti per il codice pulito. Un altro aspetto che quasi tutti ignorano è il carico cognitivo. Pochi programmatori trattano i test unitari come documentazione, e ancora meno sono consapevoli che i test unitari difficili da scrivere o nominare sono un altro puzzo di codice, che di solito indica un cattivo factoring. Una piccola minoranza è consapevole del mantra del design guidato dal dominio per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. la metrica più utilizzata è la complessità, in un modo o nell'altro, mentre altre due metriche - accoppiamento e coesione - sono in gran parte ignorate, anche se sono molto importanti per il codice pulito. Un altro aspetto che quasi tutti ignorano è il carico cognitivo. Pochi programmatori trattano i test unitari come documentazione, e ancora meno sono consapevoli che i test unitari difficili da scrivere o nominare sono un altro puzzo di codice, che di solito indica un cattivo factoring. Una piccola minoranza è consapevole del mantra del design guidato dal dominio per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. la metrica più utilizzata è la complessità, in un modo o nell'altro, mentre altre due metriche - accoppiamento e coesione - sono in gran parte ignorate, anche se sono molto importanti per il codice pulito. Un altro aspetto che quasi tutti ignorano è il carico cognitivo. Pochi programmatori trattano i test unitari come documentazione, e ancora meno sono consapevoli che i test unitari difficili da scrivere o nominare sono un altro puzzo di codice, che di solito indica un cattivo factoring. Una piccola minoranza è consapevole del mantra del design guidato dal dominio per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. mentre altre due metriche - accoppiamento e coesione - sono in gran parte ignorate, anche se sono molto importanti per il codice pulito. Un altro aspetto che quasi tutti ignorano è il carico cognitivo. Pochi programmatori trattano i test unitari come documentazione, e ancora meno sono consapevoli che i test unitari difficili da scrivere o nominare sono un altro puzzo di codice, che di solito indica un cattivo factoring. Una piccola minoranza è consapevole del mantra del design guidato dal dominio per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. mentre altre due metriche - accoppiamento e coesione - sono in gran parte ignorate, anche se sono molto importanti per il codice pulito. Un altro aspetto che quasi tutti ignorano è il carico cognitivo. Pochi programmatori trattano i test unitari come documentazione, e ancora meno sono consapevoli che i test unitari difficili da scrivere o nominare sono un altro puzzo di codice, che di solito indica un cattivo factoring. Una piccola minoranza è consapevole del mantra del design guidato dal dominio per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. Un altro aspetto che quasi tutti ignorano è il carico cognitivo. Pochi programmatori trattano i test unitari come documentazione, e ancora meno sono consapevoli che i test unitari difficili da scrivere o nominare sono un altro puzzo di codice, che di solito indica un cattivo factoring. Una piccola minoranza è consapevole del mantra del design guidato dal dominio per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. Un altro aspetto che quasi tutti ignorano è il carico cognitivo. Pochi programmatori trattano i test unitari come documentazione, e ancora meno sono consapevoli che i test unitari difficili da scrivere o nominare sono un altro puzzo di codice, che di solito indica un cattivo factoring. Una piccola minoranza è consapevole del mantra del design guidato dal dominio per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. s mantra per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento. s mantra per mantenere il modello di codice e il modello di dominio aziendale il più vicino possibile l'uno all'altro, poiché le discrepanze sono destinate a creare problemi lungo la strada. Tutti questi devono essere considerati, sempre, se vuoi che il tuo codice sia pulito. E molti altri che non riesco a ricordare in questo momento.
Vuoi scrivere un codice pulito? Non è richiesta magia. Basta andare a imparare tutto ciò che è necessario, quindi utilizzarlo per valutare la pulizia del codice e fare il refactor fino a quando non sei soddisfatto. E continua a studiare: il software è ancora un campo giovane e nuove intuizioni e conoscenze vengono acquisite a un ritmo rapido.