5 Consigli per una programmazione efficace

in #ita6 years ago (edited)

Siamo sinceri, programmare alle volte può essere davvero complesso. Sopratutto quando si lavora in piccoli gruppi o peggio ancora in solitaria a progetti di medie o grandi dimensioni. Bug che spuntano a destra e a manca, centinaia di script che si inviano informazioni e funzioni l’un l’altro. Insomma un bel casino. Non proprio una bella aspettativa per coloro che si sono appena affacciati all’arte del coding. Fortunatamente l’esperienza insegna più di chiunque altro in questo campo. Permettetemi di condividere con voi qualche consiglio che potrebbe salvare la vostra sanità mentale e il vostro tempo. 

 1.Crea un Flow-chart del tuo programma 

Per quanto molti evitino di “disegnare” il proprio programma, questa è una delle fasi più importanti della preparazione alla programmazione stessa. Programmare con uno schema logico raffazzonato porta spesso e volentieri a dover fare grosse modifiche al codice. I diagrammi di flusso infatti, non solo ci aiutano a tenere a mente il nostro piano di lavoro. Bensì ci impongono di scrivere le nostre funzioni in base alle implementazioni che già abbiamo deciso di inserire. Permettendoci così di scrivere sempre con un criterio preciso il nostro codice. 

Softwares per disegnare i vostri diagrammi: 

[Immagine CC0 creative commons](https://pixabay.com/it/lavagna-bianca-uomo-presentazione-849812/)

2.Dividi il problema 

Un approccio che personalmente mi ha salvato la vita svariate volte. Lavorando ad algoritmi complessi infatti, ci si trova spesso a dover risolvere grossi problemi logici. Il segreto in questo caso è dividere il tutto in piccoli problemi, molto più gestibili. 

Per rendervi tutto più chiaro vi faccio un esempio pratico: 

Fingiamo di dover mettere in comunicazione due macchine, in due differenti network, che si scambiano vari files tramite un software scritto da noi. Non sembra affatto facile vero?   

Riduciamo il problema: Fingiamo di dover mettere in comunicazione due macchine nello stesso network che si scambiano informazioni. Ancora troppo difficile?   

Riduciamo il tutto un ultima volta, nello scrivere due programmi che si scambiano una semplice variabile sulla stessa macchina. 

Risolvendo questo problema, già molto più semplice dei precedenti, abbiamo già creato le basi per quella che sarà la soluzione definitiva del nostro software. 

[Immagine CC0 creative commons](https://pixabay.com/it/mano-rubik-cubo-puzzle-gioco-2208491/)

3.Usa il più possibile commenti e pseudo-codice 

Commentare il codice il più possibile è sempre buona norma, a prescindere se si lavori in gruppo o meno. Questo ci aiuta a tenere a mente il lavoro svolto dal codice, senza andare a rileggere il tutto e ci aiuterà quando, per qualunque motivo, dovessimo tornare su una specifica regione del codice, per fare del debug o per modificarla. 

Lo pseudo-codice è uno strumento altrettanto essenziale. Sostanzialmente non è null’altro che un semplice appunto del codice che andremo a scrivere.

INIZIO
Per ogni valore nell'array(values)
    controlla se il valore sia uguale a 10
        se è uguale stampalo
   altrimenti
      stampa 'Questo valore non è 10'
FINE

Sicuramente questo format è molto più leggibile di:

var values = [8,9,10,11,12];
for (i = 0; i < values.length; i++) {
    var current_value = values[i];
        if(current_value == 10){
            document.getElementById("par").innerHTML += current_value;
       }else{
            document.getElementById("par").innerHTML += 'questo valore non è 10';
       }
}

4.Mai ripetersi 

Ripetersi nella programmazione è la cosa più sbagliata che si possa fare. È di vitale importanza scrivere un codice il quanto più pulito possibile. 

Dobbiamo infatti tener sempre a mente che per quanto bravi possiamo essere, siamo pur sempre fallibili. Copiare di pacco una funzione infatti, non solo allunga inutilmente il codice. Ma nel caso dovessimo fare una modifica a quella stessa funzione (per risolvere un bug che ci era sfuggito, o perché abbiamo implementato qualcosa di nuovo) dovremmo ripetere il procedimento per ogni copia di quella funzione. 

Questo vuol dire allungare esponenzialmente il tempo che ci impiegheremo nella modifica e più possibilità di causare nuovi errori. 

Di conseguenza l’unico consiglio che posso darvi, è quello di scrivere le vostre funzioni con criterio e riutilizzare il codice il più possibile. Risparmierete tempo prezioso e vi aiuterà in una situazione di debug.

5. Crea un manualetto di referenze.

Se avete lavorato a grossi progetti come me, saprete benissimo quanto sia difficile ricordare la posizione di ogni funzione, il suo relativo output e le variabili richieste. Per questo vi consiglio di scrivere un vostro piccolo manualetto, da tenere sempre aggiornato.

Sicuramente sarà più pratico cercare all’interno di un database (o qualsivoglia strumento vogliate utilizzare) il nome della funzione. Piuttosto che andare a spulciare migliaia di righe di codice alla ricerca della funzione interessata. 

Conclusione:

Spero che questi consigli vi siano utili. Per qualunque domanda o chiarimento sentite liberi di chiedere con un commento. Buona programmazione a tutti :)

Sort:  

ciao e benvenuto su steemit, molto interessante il tuo post, ho visto che è da poco che sei qui, valuta un presentazione!

@phage93 Grazie mille per l'apprezzamento, farò una presentazione il più presto possibile!

Molto interessante. E' un argomento che mi incuriosisce, ma è un mondo che ho toccato solo di striscio.
E Benvenuto! ottimo post

benvenuto e complimenti per il tuo bel post

Verissimo tutto quello che dici, mi ci ritrovo tantissimo.
Ci becchiamo su steemit, mi sembri davvero una persona in gamba, sveglia e con ottimo metodo.
Chissà che un giorno non si possa collaborare a qualche progetto steemitiano!

Grazie mille @serialfiller, effettivamente è da un bel po che sto coltivando l'idea di provare a sviluppare qualcosa all'interno del mondo delle crypto. Purtroppo tra lavoro e impegni vari sono piuttosto frenato. tuttavia mai dire mai giusto?

Quanto ti capisco.
Mai dire mai, è dura ma mai dire mai.

Congratulations @norselandstudio! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @norselandstudio! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 57930.87
ETH 2362.47
USDT 1.00
SBD 2.36