* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Maggio 01, 2024, 05:49:54 am

Inserisci il nome utente, la password e la durata della sessione.

260 Visitatori, 0 Utenti

Autore Topic: Codice "auto esplicante" e commenti  (Letto 414 volte)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1267
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Codice "auto esplicante" e commenti
« il: Febbraio 15, 2024, 11:40:47 am »
Leggendo tra vari forum, e andando a verificare qualche mio codice scritto nel passato (neanche tanto "passato") ho toccato un argomento sicuramente spinoso tra i programmatori: il commento al codice.

Tutti, nessuno escluso, siamo partiti a scrivere codice per un nuovo progetto proponendoci:

Citazione
... questa volta commento bene il codice e che sia da base per il futuro ...

Poi presi dal poco tempo, dagli imprevisti della programmazione, ... chi è rimasto senza benzina ... chi aveva una gomma a terra ... chi aveva il funerale della madre ... era crollata la casa ... c'è stato un... terremoto, una tremenda inondazione, le cavallette!  (citazioni dai mitici "Blues Brothers") ... insomma per mille motivi non l'abbiamo fatto.

Poi come autodifesa, più che altro per zittire la coscienza, ci siamo detti: "ma certo non servono commenti, il codice si commenta da solo, è talmente ovvio e chiaro".

Ora, appunto riprendendo parti di codice scritti tempo fà mi sono reso conto che i commenti servivano eccome !

Riuscire a capire che cosa passava per la testa in quel momento (tempo fà), è quasi impossibile. Ogni tanto mi chiedo che cosa stessi fumando quando scrissi "quel codice"...

Penso siano esperienze comuni, soprattutto per chi lo fà di professione scrivendo molti programmi.

In Delphi si usano delle tecniche non supportate da Lazarus / FPC (come le procedure all'interno delle procedure, chiamate procedure anonime) che una volta sviluppate, se non commentate possono effettivamente far perdere molto tempo durante la manutenzione del codice.

Lo stesso Delphi fornisce un aiuto notevole usando XMLDoc nel codice, quindi con una semplice linea possiamo commentare facilmente sia come commento al codice che come commento a chi userà quel codice (viene proposto quando usi quella variabile / tipo / metodo con un commento XMLDoc), ma comunque i commenti scarseggiamo.

Insomma per chiudere, commentiamo il codice ... meglio un commento in più che uno in meno ... e non è che bisogna commentare ogni linea ma almeno esponiamo per blocchi quali sono le nostre intenzioni, perchè è stato fatto così piuttosto che colà.

Con questa riflessione Vi porgo un saluto e ... "Buona programmazione" a tutti.
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

bonmario

  • Hero Member
  • *****
  • Post: 1302
  • Karma: +10/-1
Re:Codice "auto esplicante" e commenti
« Risposta #1 il: Febbraio 15, 2024, 03:07:18 pm »
Ora, appunto riprendendo parti di codice scritti tempo fà mi sono reso conto che i commenti servivano eccome !

Questo succede spessissimo. Io me lo sono motivato così: probabilmente quando lo stai sviluppando, sei talmente "dentro" all'argomento, che certe cose ti sembrano ovvie.
Poi non le vedi più per mesi/anni, e quando le riprendi in mano, ti rendi conto che erano ovvie in quel momento, ma ora non lo sono più !

Riuscire a capire che cosa passava per la testa in quel momento (tempo fà), è quasi impossibile. Ogni tanto mi chiedo che cosa stessi fumando quando scrissi "quel codice"...

Secondo me, questo dipende soprattutto dall'esperienza: anche io, quando prendo in mano programmi che ho fatto qualche anno prima, mi insulto da solo, perché più passa il tempo, più impari a fare meglio.
Se non fosse così, ci sarebbe da preoccuparsi: vuol dire che non stai evolvendo.

Lo stesso Delphi fornisce un aiuto notevole usando XMLDoc nel codice, quindi con una semplice linea possiamo commentare facilmente sia come commento al codice che come commento a chi userà quel codice (viene proposto quando usi quella variabile / tipo / metodo con un commento XMLDoc), ma comunque i commenti scarseggiamo.

Credo che ci sia qualcosa di simile anche in Lazarus (non ho mai usato Delphi): se usi Synapse, ad esempio, potrai notare che i commenti che ci sono sopra alle varie propietà, ti escono come Hint quando usi quelle proprietà, e ti ci fermi sopra con il mouse.


Ciao, Mario
« Ultima modifica: Febbraio 15, 2024, 03:09:38 pm da bonmario »

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Codice "auto esplicante" e commenti
« Risposta #2 il: Febbraio 15, 2024, 03:19:20 pm »
Se ancora non lo hai letto ti consiglio il libro clean code. Affronta l'argomento in maniera egregia.
Ieri è passato, domani è futuro, oggi è un dono...

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1267
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:Codice "auto esplicante" e commenti
« Risposta #3 il: Febbraio 15, 2024, 05:58:36 pm »
Se ancora non lo hai letto ti consiglio il libro clean code. Affronta l'argomento in maniera egregia.

Non mancherò. Ne ho letti altri sull'argomento, e nonostante anche io predichi bene ... alla fine finisco sempre per razzolare male. Partono i commenti a tutto spiano e poi lungo il progetto si "diradano" come neve al sole ... però prima o poi sono convinto che riuscirò a commentare un intero progetto (magari un "Hello World" ...  :o ;D )
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1267
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:Codice "auto esplicante" e commenti
« Risposta #4 il: Febbraio 15, 2024, 06:07:26 pm »
Lo stesso Delphi fornisce un aiuto notevole usando XMLDoc nel codice, quindi con una semplice linea possiamo commentare facilmente sia come commento al codice che come commento a chi userà quel codice (viene proposto quando usi quella variabile / tipo / metodo con un commento XMLDoc), ma comunque i commenti scarseggiamo.
Credo che ci sia qualcosa di simile anche in Lazarus (non ho mai usato Delphi): se usi Synapse, ad esempio, potrai notare che i commenti che ci sono sopra alle varie propietà, ti escono come Hint quando usi quelle proprietà, e ti ci fermi sopra con il mouse.

Ciao, Mario

Vedi l'allegato ... in Delphi puoi farlo su qualsiasi cosa ed è una figata. Consente di descrivere non solo Summary e Remarks come nell'esempio ma anche parametri di ingresso e uscita, valori, funzioni interne, etc ...
Poi quando sviluppi hai tutto a disposizione, senza cercare nei riferimenti o nei vari sorgenti ... questa è una delle cose (non la principale ovviamente) che purtroppo non mi fà abbandonare Delphi a favore di Lazarus.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:Codice "auto esplicante" e commenti
« Risposta #5 il: Febbraio 16, 2024, 12:27:14 pm »
volevo segnalare questo progetto
https://pasdoc.github.io/

pagina wiki lazarus/free pascal
https://wiki.freepascal.org/PasDoc

pasdoc è abbastanza conosciuto ed ampiamente utilizzato

purtroppo ho anche io la sindrome del "questa-volta-documento-tutto-bene-ma-in-realtà-non-accadrà-mai"  ;D
ma devo riconoscere che il progetto è ben fatto


Edit:
che poi...
è un progetto per la documentazione del software che è ben documentato
c'è da imparare  :D
Imagination is more important than knowledge (A.Einstein)

tito_livio

  • Full Member
  • ***
  • Post: 146
  • Karma: +3/-0
Re:Codice "auto esplicante" e commenti
« Risposta #6 il: Febbraio 24, 2024, 08:28:45 pm »
D'accordissimo su tutto. Volevo solo aggiungere che per la chiarezza del codice conta anche come lo si scrive.
Per molti sarà ovvio ma mi sono trovato abbastanza in difficoltà, dovendo fare manutenzione a progetti non fatti da me.
Si va dal codice non indentato bene e qui Lazarus mette a posto, per fortuna.
Poi le variabili e le procedure con nomi assurdi che non riconducono a cosa servono.
Mettici le parti di procedura lunghissime, senza suddivisione in sotto procedure e ciliegina sulla torta le form con tutti i componenti, visibili e non, ammucchiati random.
Così, spesso, prima lo sistemo un po' e poi cerco il baco.
Dimenticavo, un paio di volte ho trovato pure il goto...

bonmario

  • Hero Member
  • *****
  • Post: 1302
  • Karma: +10/-1
Re:Codice "auto esplicante" e commenti
« Risposta #7 il: Febbraio 25, 2024, 07:29:12 am »
Poi le variabili e le procedure con nomi assurdi che non riconducono a cosa servono.

Una delle cose che non sopporto, sono le variabili col nome di uno o 2 caratteri.
Quando poi le devi cercare, nomini tutti i santi del calendario !!!

Ciao, Mario

 

Recenti

How To

Utenti
Stats
  • Post in totale: 18784
  • Topic in totale: 2236
  • Online Today: 465
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 260
Total: 260

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.