Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-06-2007, 21:09   #1
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
stile di scrittura codice sorgente

Propongo un piccolo questionario non a scopo flame per indagare sugli "stili" di scrittura di codice sorgente...indentazione, graffe, tab, spazi, nomi variabili ecc..
E' pura curiosità mia e di altri utenti, nata da un altro post di questa sezione.
Capisco che intrinsecamente alcuni linguaggi sono fortemente dipendenti da tutti questi parametri, ma non mi sembra giusto limitare il questionario ad un solo linguaggio di programmazione...
Quindi direi ogni utente che vuole dire la sua, specifica:
1) linguaggio
2) le convenzioni che utilizza per scrivere codice.

così su due piedi mi vengono in mente queste possibili diversità ,ma siete liberi di espandere all'infinito la lista segnalandomelo:

* utilizzo delle parentesi graffe:
Codice:
if (a < b) {
  a = 0;
  return b;
}
oppure
Codice:
if (a < b)
{
  a = 0;
  return b;
}
* utilizzo di spazi dopo un operatore (for, if, while):
Codice:
if (a < b)
oppure
Codice:
if(a < b)
* tutto separato o tutto attaccato?
Codice:
a=a+b-(b*2);
oppure
Codice:
a = a + b - (b * 2);
* dove posizioni i commenti?
Codice:
if (a = 0) //controllo a
oppure
Codice:
//controllo a
if (a = 0)
* utilizzi tab oppure spazi per indentare il codice?
* cerchi di ottimizzare lo spazio?
Codice:
if (a = 0)
    c = 0;
oppure
Codice:
if (a = 0)
{
    c = 0;
}
* utilizzi nomi per le variabili, che ne ricordano il tipo?
Codice:
int iVariabile;
double dNumero;
* utilizzi suffissi m_ o simili per le variabili membro?
* e per i puntatori?

fatevi sotto, senza scannarvi
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.

Ultima modifica di vizzz : 18-06-2007 alle 21:11.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 22:25   #2
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
prima, quando programmavo principalmente in perl, scrivevo codice che ci capivo solo io (niente commenti, niente indentazione...).
tipo questo:
Codice:
$_=<STDIN>;
chomp;
print $_ . ' = ';
$div=2;
while($_!=1)
{
 if($_ % $div)
 {
  $div++ 
 }
 else
 {
  $_/=$div;
  $divs{$div}++;
 }
}
@keys= sort{$a<=>$b} (keys %divs);
$lastk=pop @keys;
foreach $k (@keys)
{
print $k; 
print ('^' . $divs{$k}) if $divs{$k}>1;
print ' x ';
}
print $lastk;
print ('^' . $divs{$lastk}) if $divs{$lastk}>1;
print "\n";
$x=<STDIN>;
ora sto imparando il java e sto cercando di utilizzare uno stile leggibile (almeno per me )...
tipo:
Codice:
final double PI = 3.14;             // commenti dopo la linea
int num = 3;                          // senza prefisso per identificare il tipo
double num2 = num + 3 * PI;    // spazi tra gli operatori

if (num > PI) {                        //spazio dopo if e prima della graffa
    if (num2 > PI) {                  // graffa dopo if e non a capo
        num = num2;                 // 4 spazi / livello per indentare
    }
}
ora immagino come questo mio post vi abbia cambiato la vita

Ultima modifica di AngeL) : 18-06-2007 alle 22:27.
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2007, 22:27   #3
Energy++
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 1059
io faccio così:

* utilizzo delle parentesi graffe:
Codice:
if (a < b) {
  a = 0;
  return b;
}
ma anche così:
Codice:
if (a < b)
{
  a = 0;
  return b;
}
* NON utilizzo gli spazi dopo un operatore (for, if, while):
Codice:
if(a < b)
* tutto separato
Codice:
a = a + b - (b * 2);
* i commenti li metto dove viene meglio...
* se dopo un if c'è solo un istruzione, niente parentesi
* non utilizzo nomi per variabili che ne ricordano il tipo.... (forse dovrei)
* idem per i puntatori
Energy++ è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 08:53   #4
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da vizzz Guarda i messaggi
Propongo un piccolo questionario non a scopo flame per indagare sugli "stili" di scrittura di codice sorgente...indentazione, graffe, tab, spazi, nomi variabili ecc..
E' pura curiosità mia e di altri utenti, nata da un altro post di questa sezione.
Capisco che intrinsecamente alcuni linguaggi sono fortemente dipendenti da tutti questi parametri, ma non mi sembra giusto limitare il questionario ad un solo linguaggio di programmazione...
Quindi direi ogni utente che vuole dire la sua, specifica:
1) linguaggio
2) le convenzioni che utilizza per scrivere codice.

così su due piedi mi vengono in mente queste possibili diversità ,ma siete liberi di espandere all'infinito la lista segnalandomelo:
Utilizzo il tuo post per riportare lo stile che us(av)o per C (e C++):
* utilizzo delle parentesi graffe:
Codice:
if (a < b) {
  a = 0;
  return b;
}
* utilizzo di spazi dopo un operatore (for, if, while):
Codice:
if (a < b)
* tutto separato:
Codice:
a = a + b - (b * 2);
* posizioni dei commenti:
Codice:
if (a = 0) //controllo a
oppure
Codice:
// Commento moooooolto lungo. In questi casi utilizzo quasi sempre /* ... */
if (a = 0)
Comunque metto pochissimi commenti nel codice (a parte quando ho lavorato all'STM, dove la stragrande maggioranza dei caratteri facevano parte dei commenti, appunto): tendo a scrivere codice pulito, facile da leggersi e con identificatori autoesplicativi.

* utilizzo spazi per indentare il codice: i tab li suo, ma li faccio convertire in spazi dall'editor. Un tab = 2 spazi.

* non ottimizzo lo spazio: se un blocco presenta una sola istruzione, trovo inutile aprire un blocco con le parentesi graffe.
Quindi questo:
Codice:
if (a = 0)
    c = 0;
lo uso sempre quando c'è una sola istruzione da eseguire.

* utilizzo nomi per le variabili che ne ricordano il tipo quando devo realizzare delle interfacce o delle classi astratte, ma in questi casi o cerco un avverbio che possa rendere il nome dell'interfaccia (es: Drawable) oppure metto come prefisso "Abstract" (es: AbstractPlayfield).
Per il resto i nomi sono quasi sempre autoesplicativi, tranne quando dal contesto l'uso è evidente (ad esempio gli indici di un ciclo: spesso e volentieri utilizzo i, j, k, ecc.).
Codice:
int Contatore;
double Valuta;
* non utilizzo suffissi m_ o simili per le variabili membro.

* nemmeno per i puntatori.
Quote:
fatevi sotto, senza scannarvi
Per questioni di stile? Saremmo ridotti veramente male.

Con Python il mio stile è molto simile a quello qui sopra descritto, tranne per il fatto che non ci sono parentesi graffe o istruzioni per delimitare i blocchi. Ad esempio:
Codice:
class Template:
  'Implements a template system for HTML rendering'

  HeadTemplate = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//IT">
<%(html)s>
  <%(head)s>
    <%(meta)s %(http-equiv)s = "Content-Type" %(content)s = "text/html; charset=iso-8859-1">
    <%(title)s>%(Title)s</%(title)s>
  </%(head)s>
  <%(body)s%(Body)s>'''


  def __init__(self, Title, *Arguments, **Keywords):

    self.LowerCase()
    self.Lines = ['']
    self.DebugLines = []
    self.ShowDebug = True
    self.HideBodyOnDebugInfo = False
    self.NewLine = True
    self.AutoIndent = True
    self.BeginTR = ''; self.EndTR = ''
    self.DB = None
    self.PendingTags = [self.ApplyCase('html'), self.ApplyCase('body')]
    self.Title(Title, *Arguments, **Keywords)


  def __str__(self):
    'Return the informations logged as a string'

    return '\n'.join(self.Lines) + '\n'


  def SetDB(self, DB):
    'Sets the database instance (DBUtils.AbstractDB descendant) to be used to read data from a db'

    self.DB = DB


  def SetCase(self, UpperCase):
    'Sets the case to be used for HTML tags; True means uppercase, False lowercase'

    self.ApplyCase = (lambda x : x.upper()) if UpperCase else (lambda x : x.lower())
E' un piccolo pezzo di una classe che ho scritto per realizzare un semplice sistema di template HTML.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 09:25   #5
ianaz
Senior Member
 
L'Avatar di ianaz
 
Iscritto dal: Jan 2005
Città: London, United Kingdom
Messaggi: 959
Codice PHP:
System.out.println("ciao, il tuo nome é " Utente.getNome() + ""); // Con spazi
System.out.println("ciao, il tuo nome é "+Utente.getNome()+""); // Senza spazi 
personalmente utilizzo gli spazi
__________________
zattix

Ultima modifica di ianaz : 19-06-2007 alle 09:28.
ianaz è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 10:23   #6
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Sull'utilizzo delle parentesi graffe, spazi dopo un operatore (for, if, while), tutto attaccato o meno (uso "return(1)" e non "return 1"):

Codice:
    if(a<b)
    {
        a=0;
        return(b);
    }
Per i commenti, non li uso in quanto mi affido ad un file testo separato nel quale spiego cosa ho sviluppato nel sorgente e come.

Indentazione codice: 4 spazi.

Non uso parentesi graffe se un blocco e' costituito da una sola riga.

Costanti tutte maiuscole, variabili tutte minuscole, nomi di funzioni minuscole con in maiuscolo il primo carattere o il primo caratte dopo uno spazio. Qualsiasi spazio nel nome di una variabile, costante o funzione e sostituito dal carattere "_".

Utilizzo l'old-style per la dichiarazione delle funzioni.

Non ho problemi a nidificare il codice, ne ad avere righe di codice di 100 e oltre caratteri.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 11:05   #7
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
In riferimento ai linguaggi "tipo C":

* utilizzo delle parentesi graffe:
Codice:
if (a < b) {
  a = 0;
  return b;
}
MA sulla riga seguente per dichiarazioni di classi e metodi (funzioni).

* utilizzo di spazi dopo un operatore (for, if, while):
Codice:
if( a < b )
per evidenziare cosa c'e' dentro le parentesi.

* tutto separato o tutto attaccato?
Codice:
a = a + b - (b * 2);
* dove posizioni i commenti?
Dipende dalla lunghezza.

* utilizzi tab oppure spazi per indentare il codice?
E che ne so, lascio fare a Eclipse...

* cerchi di ottimizzare lo spazio?
Codice:
if (a = 0)
    c = 0;
MA forse dovrei abituarmi all'altra forma, visto che di recente mi e' successo che
avevo un codice tipo:
Codice:
if(...)
    blah();
else
    bleh();
poi ho aggiunto:
Codice:
if(...)
    if(...)
        blah();
...
e l'else si e' "attaccato" all'if sbagliato... ci ho messo un po' a capire dov'era l'errore

* utilizzi nomi per le variabili, che ne ricordano il tipo?
* utilizzi suffissi m_ o simili per le variabili membro?
* e per i puntatori?
Dipende, se serve a rendere piu' leggibile il codice.
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 11:27   #8
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
1) linguaggio
Java

* utilizzo delle parentesi graffe:
Codice:
if (a < b) {
  a = 0;
  return b;
}
* utilizzo di spazi dopo un operatore (for, if, while):
Codice:
if (a < b)
* tutto separato o tutto attaccato?
Codice:
a = a + b - (b * 2);
* dove posizioni i commenti?
Codice:
if (a = 0) //controllo a
Codice:
//controllo a
if (a = 0)
entrambi.. dipende dai casi...

* utilizzi tab oppure spazi per indentare il codice?
inutile fare questa suddivisione dato che un qualsiasi editor converte i tab in spazi e viceversa

* cerchi di ottimizzare lo spazio?
Codice:
if (a = 0){
    c = 0;
}
Questo costrutto con le parentesi è MOLTO + leggibile nel caso di istruzioni condizionali nidificate e/o concatenate.

* utilizzi nomi per le variabili, che ne ricordano il tipo?
NO.
Eclipse mi dice già di che tipo sono quando gli passo il mouse di sopra...
E cmq già dal nome è facile intuire il tipo.
Esempio:
Codice:
Node node = new Node();
Collection <Node> nodes = new ArrayList <Node> ();
Quindi quando vedo un nome plurale sono sicuro che è una collection, quando vedo un nome singolare capisco cos'è immediatamente dal nome descrittivo che ho utilizzato.

* utilizzi suffissi m_ o simili per le variabili membro?
NO.
Vedi punto precedente.

* e per i puntatori?
Quali puntatori?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 16:20   #9
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
A me invece personalmente le parentesi graffe così le odio:

Codice:
if(a < b) {

.....
}
preferisco sempre fare così:

Codice:
if (a < b)
{
   blablba
}

//e le metto anche se c'è una sola riga
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2007, 16:31   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Io faccio così:
Codice:
{
  a = 0;
  return b;
}
Codice:
if(a < b)
Codice:
a = a + b - (b * 2);
Codice:
//controllo a
if(a = 0)
* utilizzi tab oppure spazi per indentare il codice? Spazi
Codice:
if(a = 0)
{
    c = 0;
}
* utilizzi nomi per le variabili, che ne ricordano il tipo? no
* utilizzi suffissi m_ o simili per le variabili membro? no
* e per i puntatori? no

Ultima modifica di cionci : 22-06-2007 alle 00:35.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2007, 01:05   #11
medicina
Senior Member
 
L'Avatar di medicina
 
Iscritto dal: Jul 2001
Messaggi: 1787
-

Ultima modifica di medicina : 20-06-2007 alle 01:07.
medicina è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Da Intel ad AMD, il grande salto di Kulk...
Velocità 12 volte superiore a que...
Una piccola Morte Nera è gi&agrav...
Sei frodi che minacciano gli utenti nel ...
BioShock 4: Take-Two rassicura sullo svi...
Tesla, Musk promette FSD 'quasi pronto' ...
BioWare conferma: il nuovo Mass Effect &...
5 robot aspirapolvere di fascia alta in ...
Xiaomi Redmi Note 14 5G a 179€ è ...
Veri affari con gli sconti de 15% Amazon...
Tutti gli iPhone 16 128GB a 699€, 16e a ...
Take-Two ammette: vendite di Borderlands...
Tutti i Macbook Air e Pro con chip M4 ch...
GeForce RTX 50 SUPER: non cancellate, ma...
Warner Bros. riporterà al cinema ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:05.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v