* * * *

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.
Luglio 13, 2026, 11:11:32 am

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

213 Visitatori, 0 Utenti

Autore Topic: Le leggi di Lehman sull'evoluzione del software  (Letto 5293 volte)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1806
  • Karma: +53/-0
  • Prima ascoltare, poi decidere
Le leggi di Lehman sull'evoluzione del software
« il: Giugno 11, 2026, 09:28:58 pm »
Leggete questo articolo e vedete si vi rispecchiate.

https://www.danieleteti.it/post/lehmans-laws-software-evolution-it/

Quoto un tratto che mi ha colpito ... perchè è proprio così che funziona.
Citazione
Il checkout di una startup nasce come un’unica funzione pulita. Il marketing vuole un percorso per i codici promozionali, e così si aggiunge un if. Poi un percorso per le fatture B2B. Poi uno per le gift card. Poi le eccezioni fiscali regionali. Diciotto mesi dopo, quella funzione è di 600 righe con 40 flag che interagiscono tra loro, e ogni modifica rischia di rompere un percorso che nessuno ricorda più.
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

bonmario

  • Hero Member
  • *****
  • Post: 1478
  • Karma: +11/-1
Re:Le leggi di Lehman sull'evoluzione del software
« Risposta #1 il: Giugno 12, 2026, 07:13:16 am »
Faccio il programmatore da 30 anni, ho lavorato a 5 o 6 progetti e, ogni volta, è successo esattamente quello  ;D :'(

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1806
  • Karma: +53/-0
  • Prima ascoltare, poi decidere
Re:Le leggi di Lehman sull'evoluzione del software
« Risposta #2 il: Giugno 18, 2026, 12:22:35 pm »
Io faccio il programmatore da oltre 40 anni, e ho sviluppato personalmente centinaia di progetti e seguito sicuramente altrettanti.

Progetti nati e li rimasti, progetti che hanno continuato ad evolversi, progetti che si sono trasformati (che è diverso da evolversi) ....

Nel tempo di comune è proprio quel fatto, e l'unica cosa che è migliorata è che se all'inzio (40 anni fà) dopo le prime due modifiche il tutto già era in quelle condizioni (n. if con flag senza molte spiegazioni) adesso per sei mesi diciamo che una logica ancora regge, per poi crollare e diventare un guazzabuglio subito dopo.

Tendenzialmente io dopo un pò termino i progetti (e li mantengo aggiornati solo per quello che riguarda la compilazione con le nuove versioni di compilatori) e riparto con dei nuovi riprendendo quelli vecchi con molta ma molta pulizia.

Poi dopo avere testato sul campo la funzionalità aggiorno anche i clienti vecchi con i nuovi progetti, abbandonando definitivamente le "vecchie storie".

Ma tipicamente di questi non ce ne sono più di una decina, è difficle che un "filone" (o mercato che dir si voglia) regga il tempo , per vari motivi.
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

Lorenzo

  • Jr. Member
  • **
  • Post: 80
  • Karma: +1/-0
Re:Le leggi di Lehman sull'evoluzione del software
« Risposta #3 il: Luglio 07, 2026, 03:04:33 pm »
Io mi preoccupo di commentare bene il codice.

Non so se capita a voi,spesso un progetto lo metto da parte(alcuni li abbandono completamente).
Ma quando riprendo un progetto,è come se il codice che ho scritto io stesso,lo avesse scritto un altro programmatore.
Che abbia scritto io il codice o qualcun altro,per me diventa la stessa cosa.

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1806
  • Karma: +53/-0
  • Prima ascoltare, poi decidere
Re:Le leggi di Lehman sull'evoluzione del software
« Risposta #4 il: Luglio 07, 2026, 03:45:48 pm »
Io mi preoccupo di commentare bene il codice.

Non so se capita a voi,spesso un progetto lo metto da parte(alcuni li abbandono completamente).
Ma quando riprendo un progetto,è come se il codice che ho scritto io stesso,lo avesse scritto un altro programmatore.
Che abbia scritto io il codice o qualcun altro,per me diventa la stessa cosa.
Si, capita normalmente. E non ho trovato la bacchetta magica per risolvere la situazione.

Il problema è che al momento tutto è chiaro e scrivi i commenti sulla base di questo.
Cioè non è che scrivi perchè l'acqua è diventata calda ... è normale che sia così ad un certo punto. Poi prendi il mano di nuovo il tutto e ti chiedi:

"ma scrivere il perchè l'acuqa è calda sarabbe stato utile ... ora devo spulcaire tra il codice e capire il perchè ...."

ovviamente con una serire di improperi che se non viene giù la Madonna a darti due manate è una fortuna.

Io commento non solo il codice, ma anche ogni singola variabile, proprietà, funzione, record, etc ... eppure non è mai abbastanza.

Questo è un esempio:

Codice: [Seleziona]
    /// <summary> Cancella la ROI (Indice) dall'array interno. Sposta anche tutto l'array se la ROI non e' l'ultima.</summary>
    /// <param name="Indice"> Indice, numero delle ROI. Va' da 0 (prima ROI) a NUMERO_MAX_ROI-1.</param>
    /// <returns> Viene ritornato l'indice cancellato o -1 in caso di errore. </returns>
    function get_Cancella(Indice: cardinal): integer;
« Ultima modifica: Luglio 07, 2026, 03:54:53 pm da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

Lorenzo

  • Jr. Member
  • **
  • Post: 80
  • Karma: +1/-0
Re:Le leggi di Lehman sull'evoluzione del software
« Risposta #5 il: Luglio 07, 2026, 09:31:02 pm »
Anche io devo commentare quasi ogni riga.
Poi uno non ci capisce niente sennò.
Spesso sono solito scrivere male codice quando sono stanco.
Quando mi accorgo del'orrore mi domando "chi fosse il somaro che ha scritto quella roba" ;D ;D
Poi non mi posso schiodare dall'architettura MVC.
Porca miseria,è diventata un obbligo come se fosse parte della natura del software con GUI.
Se le GUI sono le View, ci sono i Models che sono le classi che gestiscono ogni dispositivo(server,dbms,etc).
Infine la parte controllers riguarda spesso i metodi spesso nella classe di  raccordo (può essere anche un data module talvolta) che istanzia gli oggetti dei Models e permettono di pilotare i vari dispositivi.

Meno male che queste porcherie le riservo solo a me,altri colleghi avrebbero ben più di un movente per farmi fuori.

 

Recenti

How To

Utenti
Stats
  • Post in totale: 20445
  • Topic in totale: 2455
  • Online Today: 366
  • Online Ever: 1525
  • (Giugno 08, 2026, 07:34:29 am)
Utenti Online
Users: 0
Guests: 213
Total: 213

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.