SlideShare a Scribd company logo
1 of 36
Download to read offline
Il programmatore
Lavorare con efficacia e efficienza
Chiariamo due concetti…
• EFFICACIA: capacità
di raggiungere
l'obiettivo
2
Tensione
verso…
• EFFICIENZA: capacità
di ottimizzare il
rapporto tra risultati
ottenuti e risorse
impiegate
Consigli pratici…
• …per un metodo di lavoro
• …per noi stessi e per gli altri
• …per risultati migliori
• …
3
Quali consigli
• Per programmare meglio
• Per programmare sicuro
• Per ri-programmare di meno
Tanti tasselli per unico risultato
un programma
che funziona
4
Organizzarsi per
l’organizzazione
• ORGANIZZAZIONE: insieme di risorse
orientate al perseguimento di una
finalità comune, in un rapporto
continuo di coevoluzione con
l'ambiente
5
Organizzarsi per
l’organizzazione
• Le organizzazioni sono la naturale conseguenza della
divisione del lavoro
• Laddove gli sforzi di molti individui sono propriamente
organizzati e combinati per il raggiungimento di un obiettivo
comune, si ottengono vantaggi in termini di efficienza ed
efficacia
• Le organizzazioni rappresentano quindi un limite
all’iniziativa individuale in termini di regole, strutture, ruoli,
ma sono al contempo la condizione necessaria per il
raggiungimento dei nostri obiettivi
6
Senso di orientamento
• Non navigare a caso
• Cercare la strada giusta prima di
mettersi in cammino
• Usare la mappa
• Leggere i “cartelli”
• Chiedere informazioni
7
Cassetta degli attrezzi
• Controllare di avere gli attrezzi prima
di cominciare il lavoro
• Conoscere come si usano gli attrezzi
• Usare l’attrezzo giusto per ogni
lavoro
8
Analisi: produrla e capirla
9
1. scrivere per farsi capire
2. leggere per capire
3. capire per riprodurre
• dalla richiesta “disordinata”
bisogna raggiungere la
soluzione “ordinata”
COME?
Cosa deve fare e
chi deve essere
il programmatore?
10
Programmare in chiaro
• Non criptare il linguaggio di
programmazione
• Titolo del programma
• Cosa fa in 2 righe
• L’interfaccia esterna (parametri)
• Ordinare le porzioni di codice
11
Programmare in chiaro
12
incongruenza!!!
cosa farà questo
programma senza
titolo?
Dare il nome giusto
• Ogni cosa va chiamata
con il nome giusto
− File
− Campi e descrizioni (TEXT, COLHDG)
− DS
− Programmi
− Menu
− …
13
Dare il nome giusto
14
cosa conterrà questo
campo anonimo?
Programmare con la lingua
• L’utente non è una macchina
• Ortografia
• Proprietà di termini
• Chiarezza e semplicità
• Il video e la stampa devono parlare da
soli
15
Programmare con la lingua
16
Pensare al prossimo…
• UTENTE: pensare a chi userà il mio
programma
• PROGRAMMATORE: pensare a chi
modificherà, correggerà il mio
programma
17
Pensare al prossimo…
18
attenzione alla
ridondanza di
codice
Curare il tempo
• il tempo del programmatore e
dell’utente è molto più prezioso del
tempo della macchina
• INTERATTIVO = solo per “interagire”
con la macchina
• il resto è solo ed unicamente BATCH
19
La strada non insegna
niente?
• pensate che il traffico di rete sia una
cosa diversa dal traffico in
tangenziale?
− scegliere la strada più veloce
− comprimere più possibile
− evitare trasferimenti remoti
− evitare lavoro remoto
20
Coltivare le cellule neuronali
• usare la formula CA.ME.RA.
− CAtalogare
− MEmorizzare
− RAgionare
21
Costruire la propria KB
• indice dei manuali
• bigini
• appunti
• sorgenti esempio
• siti internet
• avete un disco sul PC? usatelo
22
Non essere possessivi
• allocare i record senza scopo non è
sconsigliato…
…è ORRENDO!!!
• se il file è di I/O usare estensione N
su tutte le letture fini a se stesse
• controllare record allocati con API
23
Essere ordinati
• dove metto i pezzi del programma?
• dove metto i file vuoti?
• dove metto i rek dei driver?
• ambiente sviluppo e produzione
seguono stesse regole?
24
Essere risparmiatori
• eseguire UPDATE solo quando serve
• ottimizzare le istruzioni dentro i cicli
(0,001 sec x 400.000 = 7 minuti)  è un tempo macchina enorme
• non occupare spazio inutile con file
work
• usare QTEMP
• il disco costa! tempo e soldi
25
Essere ecologici
• riciclare il codice “sano” e smaltire il
“nocivo”
• riciclare le buone esperienze proprie e di
altri
• non inventare cose che già esistono
ma migliorarle
• solo una cosa non si può riciclare:
gli INDICATORI!!!
26
Essere affidabili
• testare prima il programma…
• … per evitare di “dare testate” dopo
• provare a settori e durante lo sviluppo e
non solo alla fine
• individuare carenze di:
− correttezza
− completezza
− affidabilità
27
Usare le vecchie novità
• un poco alla volta
• sbirciare, leggere e imparare
• RPG ILE vs. RPG/400
• RPG SQL
• IFS vs. QDLS
• SQL vs. Query/400
• WDSC vs. SEU/PDM
28
Di fronte a un
problema?
29
31
VAS (Valutazione Ambientale Strategica)
32
Ampliare
lo sguardo
e valutare
tutto il
contesto
Non
fermarsi
sui
particolari
VAS (Valutazione Ambientale Strategica)
Usare il panicometro
• conoscere la propria soglia di panico
• c’è una ragione valida per
oltrepassarla?
• lavorare in stato di panico:
− crea confusione
− irrita
− non risolve
33
Usare le celle di isolamento
• isolare i problemi
• isolare i componenti del programma
• isolare se stessi mentalmente se
necessario
34
Guardarsi allo specchio
• l’errore che trovi potrebbe essere
come il tuo oppure essere proprio il tuo
• 1° sbloccare il cliente
• 2° segnalare/correggere errore
• 3° trovare e ricostruire i dati errati
• ultimo (facoltativo) epistemologia
dell’errore
35
In breve quindi?
36
Il programmatore deve avere
T.I.C.
•Tenacia
•Intuito
•Curiosità
37

More Related Content

Viewers also liked

Didattica e tecnologie: il coding
Didattica e tecnologie: il codingDidattica e tecnologie: il coding
Didattica e tecnologie: il codingAlessandri Giuseppe
 
Didattica PER il coding. Didattica, pensiero computazionale, corporeità
Didattica PER il coding. Didattica, pensiero computazionale, corporeitàDidattica PER il coding. Didattica, pensiero computazionale, corporeità
Didattica PER il coding. Didattica, pensiero computazionale, corporeitàAlessandri Giuseppe
 
Elementi base del pensiero computazionale e SCRATCH
Elementi base del pensiero computazionale e SCRATCHElementi base del pensiero computazionale e SCRATCH
Elementi base del pensiero computazionale e SCRATCHVirginia Ruggeri
 
Introduction to Communication Systems 4
Introduction to Communication Systems 4Introduction to Communication Systems 4
Introduction to Communication Systems 4slmnsvn
 
Didattica creativa, coding e tecnologie
Didattica creativa, coding e tecnologieDidattica creativa, coding e tecnologie
Didattica creativa, coding e tecnologiecaterina moscetti
 
TCI 2015 Cross-overs between Agro and High Tech
TCI 2015 Cross-overs between Agro and High TechTCI 2015 Cross-overs between Agro and High Tech
TCI 2015 Cross-overs between Agro and High TechTCI Network
 
12 1 session 51
12 1 session 5112 1 session 51
12 1 session 51nblock
 
Come realizzare siti scolastici a norma e che funzionino?
Come realizzare siti scolastici a norma e che funzionino?Come realizzare siti scolastici a norma e che funzionino?
Come realizzare siti scolastici a norma e che funzionino?Alberto Ardizzone
 

Viewers also liked (11)

MEDICINA VETERINARIA
MEDICINA VETERINARIAMEDICINA VETERINARIA
MEDICINA VETERINARIA
 
Didattica e tecnologie: il coding
Didattica e tecnologie: il codingDidattica e tecnologie: il coding
Didattica e tecnologie: il coding
 
Mike Astbury
Mike Astbury Mike Astbury
Mike Astbury
 
I LIKE CODING ... AND YOU?
I LIKE CODING ... AND YOU?I LIKE CODING ... AND YOU?
I LIKE CODING ... AND YOU?
 
Didattica PER il coding. Didattica, pensiero computazionale, corporeità
Didattica PER il coding. Didattica, pensiero computazionale, corporeitàDidattica PER il coding. Didattica, pensiero computazionale, corporeità
Didattica PER il coding. Didattica, pensiero computazionale, corporeità
 
Elementi base del pensiero computazionale e SCRATCH
Elementi base del pensiero computazionale e SCRATCHElementi base del pensiero computazionale e SCRATCH
Elementi base del pensiero computazionale e SCRATCH
 
Introduction to Communication Systems 4
Introduction to Communication Systems 4Introduction to Communication Systems 4
Introduction to Communication Systems 4
 
Didattica creativa, coding e tecnologie
Didattica creativa, coding e tecnologieDidattica creativa, coding e tecnologie
Didattica creativa, coding e tecnologie
 
TCI 2015 Cross-overs between Agro and High Tech
TCI 2015 Cross-overs between Agro and High TechTCI 2015 Cross-overs between Agro and High Tech
TCI 2015 Cross-overs between Agro and High Tech
 
12 1 session 51
12 1 session 5112 1 session 51
12 1 session 51
 
Come realizzare siti scolastici a norma e che funzionino?
Come realizzare siti scolastici a norma e che funzionino?Come realizzare siti scolastici a norma e che funzionino?
Come realizzare siti scolastici a norma e che funzionino?
 

Similar to Il programmatore

Agile Project Management - the Board Game workshop
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshopGiulio Roggero
 
Time Management per professionisti IT
Time Management per professionisti ITTime Management per professionisti IT
Time Management per professionisti ITAlessio Bragadini
 
Lezione 3: Sviluppo in Extreme Programming
Lezione 3: Sviluppo in Extreme ProgrammingLezione 3: Sviluppo in Extreme Programming
Lezione 3: Sviluppo in Extreme ProgrammingAndrea Della Corte
 
Documentation tecnica : Gestione progetto
Documentation tecnica : Gestione progetto Documentation tecnica : Gestione progetto
Documentation tecnica : Gestione progetto Marie-Louise Flacke
 
How Agile Dev Teams work
How Agile Dev Teams workHow Agile Dev Teams work
How Agile Dev Teams workXPeppers
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)Roberto Bettazzoni
 
Java Programming Language
Java Programming LanguageJava Programming Language
Java Programming LanguagePasquale Paola
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2Giulio Roggero
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliStefano Leli
 
2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrum2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrumEmiliano Soldi
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementMatteo Emili
 
Agile e Lean in sintesi
Agile e Lean in sintesiAgile e Lean in sintesi
Agile e Lean in sintesiStefano Muro
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiMarco Da Rin Zanco
 
Agile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference
 
Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Fulvio Corno
 
Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...
Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...
Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...Agile Lean Conference
 
Comunicazione Tecnica 3
Comunicazione Tecnica 3Comunicazione Tecnica 3
Comunicazione Tecnica 3Tek Com
 

Similar to Il programmatore (20)

Lezione 1: I metodi agili
Lezione 1: I metodi agiliLezione 1: I metodi agili
Lezione 1: I metodi agili
 
Agile Project Management - the Board Game workshop
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshop
 
Time Management per professionisti IT
Time Management per professionisti ITTime Management per professionisti IT
Time Management per professionisti IT
 
Lezione 3: Sviluppo in Extreme Programming
Lezione 3: Sviluppo in Extreme ProgrammingLezione 3: Sviluppo in Extreme Programming
Lezione 3: Sviluppo in Extreme Programming
 
Documentation tecnica : Gestione progetto
Documentation tecnica : Gestione progetto Documentation tecnica : Gestione progetto
Documentation tecnica : Gestione progetto
 
How Agile Dev Teams work
How Agile Dev Teams workHow Agile Dev Teams work
How Agile Dev Teams work
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)
 
Java Programming Language
Java Programming LanguageJava Programming Language
Java Programming Language
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie Agili
 
2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrum2014 07-08 7° webinar pmi-rome agile scrum
2014 07-08 7° webinar pmi-rome agile scrum
 
Far scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle managementFar scalare la Continuous Delivery per il middle management
Far scalare la Continuous Delivery per il middle management
 
Agile e Lean in sintesi
Agile e Lean in sintesiAgile e Lean in sintesi
Agile e Lean in sintesi
 
Relazione Giacomo Barbieri 25 novembre 2013 def
Relazione Giacomo Barbieri 25 novembre 2013 defRelazione Giacomo Barbieri 25 novembre 2013 def
Relazione Giacomo Barbieri 25 novembre 2013 def
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
 
Agile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software development
 
Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)
 
Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...
Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...
Agile Lean Conference 2015 - Integrare metodi di gestione progetto tradiziona...
 
Comunicazione Tecnica 3
Comunicazione Tecnica 3Comunicazione Tecnica 3
Comunicazione Tecnica 3
 

Recently uploaded

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 

Recently uploaded (9)

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 

Il programmatore

  • 1. Il programmatore Lavorare con efficacia e efficienza
  • 2. Chiariamo due concetti… • EFFICACIA: capacità di raggiungere l'obiettivo 2 Tensione verso… • EFFICIENZA: capacità di ottimizzare il rapporto tra risultati ottenuti e risorse impiegate
  • 3. Consigli pratici… • …per un metodo di lavoro • …per noi stessi e per gli altri • …per risultati migliori • … 3
  • 4. Quali consigli • Per programmare meglio • Per programmare sicuro • Per ri-programmare di meno Tanti tasselli per unico risultato un programma che funziona 4
  • 5. Organizzarsi per l’organizzazione • ORGANIZZAZIONE: insieme di risorse orientate al perseguimento di una finalità comune, in un rapporto continuo di coevoluzione con l'ambiente 5
  • 6. Organizzarsi per l’organizzazione • Le organizzazioni sono la naturale conseguenza della divisione del lavoro • Laddove gli sforzi di molti individui sono propriamente organizzati e combinati per il raggiungimento di un obiettivo comune, si ottengono vantaggi in termini di efficienza ed efficacia • Le organizzazioni rappresentano quindi un limite all’iniziativa individuale in termini di regole, strutture, ruoli, ma sono al contempo la condizione necessaria per il raggiungimento dei nostri obiettivi 6
  • 7. Senso di orientamento • Non navigare a caso • Cercare la strada giusta prima di mettersi in cammino • Usare la mappa • Leggere i “cartelli” • Chiedere informazioni 7
  • 8. Cassetta degli attrezzi • Controllare di avere gli attrezzi prima di cominciare il lavoro • Conoscere come si usano gli attrezzi • Usare l’attrezzo giusto per ogni lavoro 8
  • 9. Analisi: produrla e capirla 9 1. scrivere per farsi capire 2. leggere per capire 3. capire per riprodurre • dalla richiesta “disordinata” bisogna raggiungere la soluzione “ordinata” COME?
  • 10. Cosa deve fare e chi deve essere il programmatore? 10
  • 11. Programmare in chiaro • Non criptare il linguaggio di programmazione • Titolo del programma • Cosa fa in 2 righe • L’interfaccia esterna (parametri) • Ordinare le porzioni di codice 11
  • 12. Programmare in chiaro 12 incongruenza!!! cosa farà questo programma senza titolo?
  • 13. Dare il nome giusto • Ogni cosa va chiamata con il nome giusto − File − Campi e descrizioni (TEXT, COLHDG) − DS − Programmi − Menu − … 13
  • 14. Dare il nome giusto 14 cosa conterrà questo campo anonimo?
  • 15. Programmare con la lingua • L’utente non è una macchina • Ortografia • Proprietà di termini • Chiarezza e semplicità • Il video e la stampa devono parlare da soli 15
  • 16. Programmare con la lingua 16
  • 17. Pensare al prossimo… • UTENTE: pensare a chi userà il mio programma • PROGRAMMATORE: pensare a chi modificherà, correggerà il mio programma 17
  • 18. Pensare al prossimo… 18 attenzione alla ridondanza di codice
  • 19. Curare il tempo • il tempo del programmatore e dell’utente è molto più prezioso del tempo della macchina • INTERATTIVO = solo per “interagire” con la macchina • il resto è solo ed unicamente BATCH 19
  • 20. La strada non insegna niente? • pensate che il traffico di rete sia una cosa diversa dal traffico in tangenziale? − scegliere la strada più veloce − comprimere più possibile − evitare trasferimenti remoti − evitare lavoro remoto 20
  • 21. Coltivare le cellule neuronali • usare la formula CA.ME.RA. − CAtalogare − MEmorizzare − RAgionare 21
  • 22. Costruire la propria KB • indice dei manuali • bigini • appunti • sorgenti esempio • siti internet • avete un disco sul PC? usatelo 22
  • 23. Non essere possessivi • allocare i record senza scopo non è sconsigliato… …è ORRENDO!!! • se il file è di I/O usare estensione N su tutte le letture fini a se stesse • controllare record allocati con API 23
  • 24. Essere ordinati • dove metto i pezzi del programma? • dove metto i file vuoti? • dove metto i rek dei driver? • ambiente sviluppo e produzione seguono stesse regole? 24
  • 25. Essere risparmiatori • eseguire UPDATE solo quando serve • ottimizzare le istruzioni dentro i cicli (0,001 sec x 400.000 = 7 minuti)  è un tempo macchina enorme • non occupare spazio inutile con file work • usare QTEMP • il disco costa! tempo e soldi 25
  • 26. Essere ecologici • riciclare il codice “sano” e smaltire il “nocivo” • riciclare le buone esperienze proprie e di altri • non inventare cose che già esistono ma migliorarle • solo una cosa non si può riciclare: gli INDICATORI!!! 26
  • 27. Essere affidabili • testare prima il programma… • … per evitare di “dare testate” dopo • provare a settori e durante lo sviluppo e non solo alla fine • individuare carenze di: − correttezza − completezza − affidabilità 27
  • 28. Usare le vecchie novità • un poco alla volta • sbirciare, leggere e imparare • RPG ILE vs. RPG/400 • RPG SQL • IFS vs. QDLS • SQL vs. Query/400 • WDSC vs. SEU/PDM 28
  • 29. Di fronte a un problema? 29
  • 31. 32 Ampliare lo sguardo e valutare tutto il contesto Non fermarsi sui particolari VAS (Valutazione Ambientale Strategica)
  • 32. Usare il panicometro • conoscere la propria soglia di panico • c’è una ragione valida per oltrepassarla? • lavorare in stato di panico: − crea confusione − irrita − non risolve 33
  • 33. Usare le celle di isolamento • isolare i problemi • isolare i componenti del programma • isolare se stessi mentalmente se necessario 34
  • 34. Guardarsi allo specchio • l’errore che trovi potrebbe essere come il tuo oppure essere proprio il tuo • 1° sbloccare il cliente • 2° segnalare/correggere errore • 3° trovare e ricostruire i dati errati • ultimo (facoltativo) epistemologia dell’errore 35
  • 36. Il programmatore deve avere T.I.C. •Tenacia •Intuito •Curiosità 37