PDA

Visualizza la versione completa : Filosofia di programmazione


Xadoom
18-01-2003, 11:21
In tutti i corsi di informatica insegnano:
prima di mettersi a programmare bisogna sempre "pensare" e "abbozzare" qualcosa su carta...In linea logica ci˛ Ŕ vero, in questo modo il risultato sarÓ sicuramente pi¨ elegante e funzionale, ma...io non ci riesco, quando ho in mente un programma mi metto davanti al mio pc e scrivo le idee come vengono; cercando, poi, di integrare il tutto al meglio possibile.
Non s˛ come Ŕ, ma se non ho davanti una tastiera ed un monitor non riesco a scrivere una riga (neppure in Pseudocodice!!):quipy: .
Voi come procedete??
Quale Ŕ la vostra "filosofia di programmazione?
Procedete in modo impulsivo o determinato a priori??


Ciao a Tutti:)

r0x
18-01-2003, 12:53
Io sono dell'idea che dipenda dal linguaggio. In linea di massima il tuo approccio Ŕ _accettabile_ con linguaggi procedurali come il C o il Pascal. In linguaggi OOP la progettazione Ŕ quasi inevitabile.

Poi dipende anche dalla mole del programma. Sto giusto seguendo un corso all'universitÓ e il paragone Ŕ davvero calzante.. :eek:

Un ingegnere, per costruire ad esempio un ponte (ehm, non citiamo MAI DIRE GOAL plz :D ), secondo te lo costruisce man mano o ritiene opportuno stendere un progetto prima di agire? :)

A tal proposito, se hai un po' di pazienza, ti consiglio fortemente di leggere la pillola di Andrea Simonassi sulla modularizzazione, un concetto davvero molto importante proprio per migliorare quella che chiami filosofia di programmazione.

Ciao.

Dwenegar
18-01-2003, 14:12
Io ritengo che la filosofia da utilizzare sempre e comunque (nel caso di progetti medio-piccoli, per i progetti grandi la cosa si complica un pochino) sia quella di fare un minimo di progettazione del software che si sta per scrivere e, man mano che si prosegue nella stesura del codice, ascoltare quello che il codice ha da dire riguardo alle modifiche da apportare e alle sucessive fasi di progettazione da intraprendere (progettazione iterativa).

Ci sono poi dei casi in cui la progettazione iniziale pu˛ essere trascurata molto. Io ad esempio praticamente non la faccio quando scrivo dei programmini usa-e-getta giusto per testare alcune cose (algoritmi, come funziona una classe, etc etc).

blinkago
18-01-2003, 16:54
Io la progettazione la faccio col computer..
penso a quello che devo fare, poi creo classi non implementate e controllo come si integrano tra di loro, dopo inizio a scrivere il codice, e se ci sono classi o metodi da aggiungere perchŔ saltano fuori esigrenze nuove, tento di farlo mantenendo l'organicitÓ del progetto, e cambiando, se serve, buoni pezzi della gerarchia precedente (Mi aiuta l'ide)!!!

Luc@s
18-01-2003, 16:55
Originariamente inviato da blinkago
Io la progettazione la faccio col computer..
penso a quello che devo fare, poi creo classi non implementate e controllo come si integrano tra di loro, dopo inizio a scrivere il codice, e se ci sono classi o metodi da aggiungere perchŔ saltano fuori esigrenze nuove, tento di farlo mantenendo l'organicitÓ del progetto, e cambiando, se serve, buoni pezzi della gerarchia precedente (Mi aiuta l'ide)!!!

interessante.............fai un esempio:fagiano:

Dwenegar
18-01-2003, 16:57
Originariamente inviato da blinkago
Io la progettazione la faccio col computer..
penso a quello che devo fare, poi creo classi non implementate e controllo come si integrano tra di loro, dopo inizio a scrivere il codice, e se ci sono classi o metodi da aggiungere perchŔ saltano fuori esigrenze nuove, tento di farlo mantenendo l'organicitÓ del progetto, e cambiando, se serve, buoni pezzi della gerarchia precedente (Mi aiuta l'ide)!!!

Ovvero: iterative design + refactoring.

Michele Facchin
18-01-2003, 17:05
Originariamente inviato da Xadoom
Voi come procedete??

Non mi Ŕ mai capitato di scrivere un programma serio, comunque secondo mŔ dipende appunto da cosa devi fare.

Se devi fare un programma che richieda molto tempo devi farti almeno uno schizzo di quello che vuoi realizzare, e poi scrivere il tutto nel linguaggio con cui hai scelto di farlo.


Quale Ŕ la vostra "filosofia di programmazione?

Non ho una filosofia, tutto viene dalla esperienza.


Procedete in modo impulsivo o determinato a priori??

Dipende appunto da quanta esperienza uno ha accumulato..Ŕ come nei problemi matematici..o la risposta ti viene subito (intuito), ci vai a caso (forza bruta), oppure ci devi pensare :)

blinkago
18-01-2003, 17:22
Non lo so..
Stavo facendo un programma (Mai finito) che permetteva di semplificare polinomi!!
Innanzitutto il programma doveva essere modulare per inserire altri elementi (es i radicali o seno e coseno)!
Cosý ho realizzato una classe astratta che pu˛ essere estesa. le sottoclassi possono essere lanciate e instanziate da una classe principale grazie al paradigma kernel-modulo, ai pattern factory ed observer, e alla reflection, aggiungendo solo una riga al file di configurazione realizzando una gui modulare per svolgere le varie operazioni!!

Poi ho creato altre classi che rappresentavono le entitÓ numeriche:
Letterale, da cui derivavano monomio e polinomio!!
Il mio progetto si ferma qui e a qualche classe di utilitÓ, per me un lavoro del genere Ŕ troppo immenso!!!
La mia idea comunque era quella di espandere la sruttura come scatole cinesi con una struttura modulare nei dati e nell'interfaccia!!

Lo so che Ŕ un po' arcano ma queste gerarchie possono spiegare meglio:

Xadoom
19-01-2003, 12:31
Da un annetto progammo il java, dico, non Ŕ che abbia mai fatto programmi chi sa chŔ (giochetti vari), ma non ho mai scritto qualcosa prima del codice..........io inizio a scrivere le classi a seconda degli oggetti che mi servono, queste implementano da prima solo caratteristiche fondamentali dell'oggetto che rappresentano, poi man mano che lego gli oggetti assieme aggiungo le caratteristiche che mi servono!!
Certo questo modo Ŕ pi¨ lungo e meno efficiente di quello rigoroso, ma mi diverto nÓ CIFRA :p :gren:

CIAO

denis_gottardello
19-01-2003, 13:09
Concorto. Io in genere mi faccio funzioni su carta solamente se sono molto complicate. Vorrei proprio sapere chi si mette a scrivere su carta le funzioni per disegnare l'interfaccia grafica.

Loading