Écrire un code procédural propre et élégant (de base): Y a-t-il une telle chose?
https://softwareengineering.stackexchange.com/questions/187538
-
05-11-2019 - |
Question
J'ai appris à coder dans les langues OO. J'ai toujours été intéressé par les modèles de conception, le code propre, etc., etc. - vous connaissez le type.
Maintenant, au travail, j'utilise un dialecte de base. Compte tenu des valeurs de programmation modernes, devrions-nous essayer de reprendre ces mêmes principes vers un nouveau code procédural?
Je réfléchis aux problèmes suivants et je me demande si je suis sur les bonnes lignes.
Noms variables
Les variables ne sont pas fortement dactylographiées (cauchemar!), On leur donne des noms courts et écrits dans toutes les capuchons (pourquoi ?!) - Fondamentalement, je les trouve difficiles à lire et ils pourraient être n'importe quoi. Il était une fois, je suis sûr XCNT = 1
aurait offert des gains de performance int_EXISTINGCUSTOMERCOUNT = 1
, mais nous avons dépassé ça maintenant - sûrement? Je choisis le nom verbeux ici.
Gosub
Je veux décomposer de longs blocs de code en plusieurs blocs plus petits. Intérieurement, GOSUB
est utilisé (sur un FUNCTION
) Si l'assistance n'est pas réutilisable par d'autres programmes / fonctions. Compte tenu de sa capacité à ajouter / modifier les variables sans la sécurité de la portée (comme nous le connaissons dans le monde OO) GOSUB
me fait peur.
C'est typique:
GOSUB GET_BEST_CUSTOMER
IF RC = 0 THEN CRT CNAME
Mais j'écrirais:
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
Avec la mise en garde qui GET_BEST_CUSTOMER
ne seulement modifier rc_GETBESTCUSTOMER
et str_CUSTOMERNAME
Dans la portée «globale».
Il y a plus, mais c'est du même dans le même sens. Compte tenu de l'éditeur de choix (Notepad ++), je dirais que mon style de codage rend le code plus facile à lire et à comprendre - donc plus facile à maintenir. Mais je suis sûr que certains inconvénients de base me diraient facilement que je fais tout mal.
Pas de solution correcte