Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
FILDER - Presentazione

FILDER

Sommario | Admin | Forum | Bugs | Todo | Files

Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 0:23
Giovedì, 20/04/2017
Questo programma, dato il percorso di una cartella, crea un file .txt con la lista dei file e cartelle contenuti in essa. Al momento cre un semplice .txt . Con le future versioni si avrà la possibilità di creare file HTML e LATEX. In modo da poterle includere nelle proprie documentazioni. La lista FILe e folDER, verrà salvata in una struct list, in modo da potersi pure creare facilmente il file con il Layout/Formato preferibile.

PM Quote
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 15:02
Giovedì, 20/04/2017
Programma carino... non so quanto realmente utile, ma carino :k:

Vorrei darti solo alcuni consigli:

1 - L'enumerazione _BOOL è inutile: lo standard ISO/IEC 9899:1999 ha introdotto l'header stdbool.h.

2 - Il codice è commentato in maniera poco pratica: interi file sono quasi "abbandonati" mentre alcuni sono fin troppo commentati. In particolare, manca un commento all'inizio del file principale che spieghi l'organizzazione del programma: quando realizzi un programma la cui scrittura sarà collaborativa (visto che hai avviato il progetto qui sul sito, suppongo che tu voglia questo), è sempre bene illustrare con dovizia di particolari l'organizzazione del codice. Egualmente, se si impiegano librerie non standard (come quelle che gestiscono l'interfaccia con le system calls di Windows) non è una brutta idea specificarlo subito: altrimenti, programmatori non abituati a quelle librerie potrebbero perdere più tempo del dovuto cercando nei tuoi files funzioni che in realtà stanno in quelle librerie.

3 - Mi pare di aver notato che alcune delle funzioni che hai scritto sono implementabili anche come macro, che in generale non è una brutta idea.

4 - Il tuo main è abbastanza lungo... probabilmente, ti converrebbe spezzettarlo in più funzioni, così da rendere più leggibile il tutto.

5 - In generale, ho notato uno stile di scrittura delle librerie "contestabile" (capiscimi, per favore: non le hai scritte male, ma con qualche accorgimento avresti potuto fare di meglio :k: )... visto che, stando al tuo codice, non mi sembri nè un incapace nè uno stupido vorrei consigliarti la lettura di un libro assolutamente illuminante: "The C standard library" di P.J. Plauger. Si tratta di un testo che analizza una possibile implementazione della libreria standard del C (fortemente basata su quella reale) e sfrutta quest'espediente per spiegare come si scrivono le librerie; è una lettura assolutamente necessaria per chiunque aspiri a scrivere del codice di buon livello ;)

PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 15:45
Giovedì, 20/04/2017
Prima di tutto grazie dell'intervento.
Si il programma in se, ha un utilità didattica più che pratica, ma, ad esempio, posso impostare la ricerca di soli file .c o .cpp .. quindi il tutto potrebbe essere inglobato in un progetto più ampio (progetto che ho già in mente).

1) Si, metto in TODO .

2) Il mio più grande cruccio, commentarre il codice in maniera adeguata

3) rivedrò la cosa.

4) Il main è lungo perchè volevo cambiare proprio la modalità di immissione dei percorsi delle cartelle e della scelta della ricorsione (ad esempio, ho creato una GUI in c# che immette le cartelle ed la scelta della ricorsione)

5) Grazie!, (sono un mezzo autodidatta, quindi per la stesara delle librerie sono andato a pelle) appena riesco, mi cimento con la lettura del libro.

PM Quote
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 18:32
Giovedì, 20/04/2017
Testo quotato

Postato originariamente da Mikelius:

1) Si, metto in TODO .



In VS, dovresti avere delle utility che potresti trovare interessanti per compiti di sostituzione del genere :k:


Testo quotato

Postato originariamente da Mikelius:

2) Il mio più grande cruccio, commentarre il codice in maniera adeguata



Si impara con il tempo e con il lavoro in team... e mettendoci un po' del proprio: considera che i consigli che ti ho dato sono basati su come IO commento il codice, ma molti altri fanno diversamente :D L'importante è documentare adeguatamente le parti più importanti e le scelte implementative critiche.


Testo quotato

Postato originariamente da Mikelius:
3) rivedrò la cosa.



Benissimo... non prendertela come una missione, comunque: fin'ora, il problema è relativo. Ti ho segnalato la cosa perchè, qualora il programma dovesse crescere parecchio, un occhio all'ottimizzazione potrebbe aiutare ;)


Testo quotato

Postato originariamente da Mikelius:
4) Il main è lungo perchè volevo cambiare proprio la modalità di immissione dei percorsi delle cartelle e della scelta della ricorsione (ad esempio, ho creato una GUI in c# che immette le cartelle ed la scelta della ricorsione)



Attento con le interfacce grafiche e con i contenuti "multi-linguaggio": non sempre l'integrazione è banale come ci si aspetterebbe.


Testo quotato

Postato originariamente da Mikelius:
5) Grazie!, (sono un mezzo autodidatta, quindi per la stesara delle librerie sono andato a pelle) appena riesco, mi cimento con la lettura del libro.


Ne trarrai spunti interessantissimi :k:
Solo una cosa: leggendolo, tieni presente che comunque le "librerie" cui fa riferimento lui sono qualcosa di molto più generale e "complesso" di quanto implementeresti per un programma come il tuo (almeno nell'incarnazione attuale). Ti dico questo perchè alcune delle soluzioni che propone, quantunque bellissime ed utilissime, entro l'ambito delle applicazioni "piccole" hanno un'utilità limitata.

Ultima modifica effettuata da Template il 20/04/2017 alle 18:33
PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 0:45
Venerdì, 21/04/2017
Testo quotato

Postato originariamente da Template:

Attento con le interfacce grafiche e con i contenuti "multi-linguaggio": non sempre l'integrazione è banale come ci si aspetterebbe.




Più che contenuti multi-linguaggio, ho usato un trucchetto (Trucchetto che non mi inspira "buona programmazione" e per questo non lo sto postando.)

In pratica in C# ho fatto una GUI, minimale(2 FolderBrowserDialog e una checkbox). Alla pressione di un tasto tramite la classe ProcessStartInfo() apro il file FILDER.exe e gli passo 3 stringhe. Nel main di FILDER.exe, invece di prelevare i percorsi da console, li prelevo da linea di comando tramite argv[1], argv[2], argv[3]. Creato solo allo scopo di velocizzare le prove siccome mi seccavo a "scrivere" i percorsi ogni volta a mano. Se dovessi fare una GUI la farei seriamente, ma più in là.

PM Quote