Ho imparato a codificare nelle lingue OO. Sono sempre stato interessato a modelli di design, codice pulito, ecc. Ecc., Conosci il tipo.
Ora al lavoro sto usando un dialetto BASIC. Dati i moderni valori di programmazione, dovremmo provare a trasferire questi stessi principi su un nuovo codice procedurale?
Sto meditando sui seguenti problemi, e mi chiedo se sono sulla buona strada.
Nomi di variabili
Le variabili non sono strongmente tipizzate (incubo!), hanno nomi brevi e sono scritte in MAIUSCOLO (perché ?!) - fondamentalmente le trovo difficili da leggere e potrebbero essere qualsiasi cosa . C'era una volta, sono sicuro che XCNT = 1
avrebbe offerto guadagni in termini di prestazioni superiori a int_EXISTINGCUSTOMERCOUNT = 1
, ma ora lo superiamo - sicuramente? Scelgo qui il nome dettagliato.
GOSUB
Voglio abbattere lunghi blocchi di codice in più blocchi più piccoli. Internamente, viene utilizzato GOSUB
(oltre un FUNCTION
) se l'helper non è riutilizzabile da altri programmi / funzioni. Data la sua capacità di aggiungere / modificare variabili senza la sicurezza dell'ambito (come lo conosciamo nel mondo OO) GOSUB
mi spaventa.
Questo è tipico:
GOSUB GET_BEST_CUSTOMER
IF RC = 0 THEN CRT CNAME
Ma scriverei:
rc_GETBESTCUSTOMER = 1 ; !Default exception
str_CUSTOMERNAME = ""
GOSUB GET_BEST_CUSTOMER ; !set rc_GETBESTCUSTOMER, populate str_CUSTOMERNAME
IF(rc_GETBESTCUSTOMER = 0) THEN
CRT str_CUSTOMERNAME
END
Con l'avvertenza che GET_BEST_CUSTOMER
modificerebbe solo rc_GETBESTCUSTOMER
e str_CUSTOMERNAME
in ambito "globale".
C'è di più, ma è tutto sulla stessa linea. Dato l'editor di scelta (Notepad ++), direi che il mio stile di codifica semplifica la lettura e la comprensione del codice, quindi è più facile da mantenere. Ma sono sicuro che alcuni BASIC duri a morire mi direbbero che sto sbagliando tutto.