Nome da dare ad una funzione

di il
15 risposte

Nome da dare ad una funzione


function abc(number) {
    if (number < 0) return 0; else return number;
}
Al poso di 'abc' cosa mi suggerite?

15 Risposte

  • Re: Nome da dare ad una funzione

    Ma che domanda è ? Dici sul serio?
  • Re: Nome da dare ad una funzione

    Ad esempio:
    
    function ensureNotNegative(number) {
        if (number < 0) return 0; else return number;
    }
    
    oppure
    
    function enn(number) {
        if (number < 0) return 0; else return number;
    }
    
    
    function max0(number) {
        if (number < 0) return 0; else return number;
    }
    
  • Re: Nome da dare ad una funzione

    Dipende da dove e come usi quella funzione, ovvero con quale scopo.
  • Re: Nome da dare ad una funzione

    cicco7 ha scritto:


    
    function abc(number) {
        if (number < 0) return 0; else return number;
    }
    
    Al poso di 'abc' cosa mi suggerite?
    se proprio dovessi... zerosenegativo
  • Re: Nome da dare ad una funzione

    Avevo pensato a normalizeNotNegativeNumber, validateNotNegativeNumber... ma mi sembrano nomi troppo lunghi.
  • Re: Nome da dare ad una funzione

    Se fa solo quello che è mostrato, ZeroSeNegativo, come suggerito, va bene ... ma dai ... ma non mi sembra una questione da forum ...
  • Re: Nome da dare ad una funzione

    Io aggiungerei anche clippa0()
  • Re: Nome da dare ad una funzione

    oregon ha scritto:


    Se fa solo quello che è mostrato, ZeroSeNegativo, come suggerito, va bene ... ma dai ... ma non mi sembra una questione da forum ...
    mi sembra una buona soluzione, grazie
  • Re: Nome da dare ad una funzione

    candaluar ha scritto:


    Io aggiungerei anche clippa0()
    clippa0?!!?
  • Re: Nome da dare ad una funzione

    cicco7 ha scritto:


    oregon ha scritto:


    Se fa solo quello che è mostrato, ZeroSeNegativo, come suggerito, va bene ... ma dai ... ma non mi sembra una questione da forum ...
    mi sembra una buona soluzione, grazie
    La c.d. nomenclatura ungherese è da "millenni" ormai storia antica.
    non ti consiglio affatto di mischiare maiuscole e minuscole: nel lungo periodo la vita è decisamente più semplice.
  • Re: Nome da dare ad una funzione

    Esistono delle code conventions da usare per OGNI linguaggio di programmazione.

    http://javascript.crockford.com/code.htm
    https://www.w3schools.com/js/js_conventions.as

    ogni programmatore che non le rispetti per PRINCIPIO e non per semplice dimenticanza, andrebbe FUSTIGATO
    e se non e' un programmatore e da consigli contrari a queste convenzioni, andrebbe FUCILATO
  • Re: Nome da dare ad una funzione

    migliorabile ha scritto:


    Esistono delle code conventions da usare per OGNI linguaggio di programmazione.

    http://javascript.crockford.com/code.htm
    https://www.w3schools.com/js/js_conventions.as

    ogni programmatore che non le rispetti per PRINCIPIO e non per semplice dimenticanza, andrebbe FUSTIGATO
    e se non e' un programmatore e da consigli contrari a queste convenzioni, andrebbe FUCILATO
    Non concordo affatto, ci vuole però un minimo di "storia".

    1) non c'è alcuna convenzione per il codice
    2) non c'è nessuno standard ISO da seguire
    3) ci sono delle prassi che cambiano nel tempo, principalmente a seconda del linguaggio di provenienza (più o meno verboso) del singolo programmatore.
    Vi siete mai chiesti perchè gli indici normalmente vengono chiamati i,j,k, e magari le variabili float da a a d?
    Per un qualche intervento divino? Ebbene no: più banalmente perchè in FORTRAN (sì, in FORTRAN) ci sono delle dichiarazioni di tipo implicito (reale, intero, booleano) codificate rigidamente.
    Chi ha programmato in Fortran (cioè praticamente tutti i "padri" dell'informatica, o comunque gli "anziani") sono pertanto abituati a questa convenzione, e la "trascinano" ovunque, anche il linguaggi del tutto diversi.

    3) nasce come tutto, nell'informatica, da "banalità" poi assurte a Verità Di Fede.
    Mi spiego meglio: la famosa notazione ungherese, che ormai viene ritenuta da (quasi) tutti come Sacra e Intangibile,
    in realtà non è altro che la convenzione di una singola persona, Charles Simonyi, ungherese appunto, per inciso vivo
    e vegeto (quindi non parliamo di 10000 anni fa).
    Queste convenzioni, che possiamo alla grossa riassumere come "preprorre il tipo alla variabile" dipendono dal fatto che Simonyi scriveva (come linguaggio "di provenienza") in uno che non ha i tipi delle variabili (diciamo antenato del C), nel senso che a livello del compilatore sono tutti interi, sta poi al programmatore darvi una "logica" diversa, ed è case sensitive.
    Se avesse programmato in pascal, per dire, probabilmente il "mondo" come lo conosciamo oggi sarebbe diverso (probabilmente tutte le variabili e le funzioni sarebbero state scritte in minuscolo e "buonanotte").

    Ad esempio il mitico prefisso sz per le stringhe (le avrete viste ovunque, soprattutto nel mondo Microsoft) non è altro che l'abbreviazione UNGHERESE della frase.
    Se fosse stato inglese magari avrebbe usato zp (zero-padded) o qualcosa di diverso.

    Anche il resto è più che banale: idFattura rappresenta l'identificativo della fattura (...stica...mi verrebbe da dire!), ma spesso viene insegnato come "Rivelazione Divina Buona e Giusta".

    Riassumendo la stragrande maggioranza delle convenzioni che si "spacciano" non sono altro che vestigia, prassiiniziate decenni fa, senza motivi "speciali" se non le preferenze dei pionieri, poi "tramandate" più o meno modificate fino a oggi come "rivelazione divina".

    Tra l'altro alcune scelte, come proprio quella ungherese, sono divenute devastanti in un mondo in cui i tipi... cambiano.
    Da 16 a 32 bit, oggi a 64, e le stringhe che non sono più vettori di char (bensì "robe strane" UTF), la scelte che 40 anni fa andavano bene, oggi sono palle al piede.
    Problemi di allineamento ed espansione dei bit capitano tutti i santi giorni, e sono tra i più difficili da intercettare, talvolta ci vogliono perfino anni da parte di team di superingegneri di google (classicissimo il contatore wifi in modalità ad hoc).

    ---
    Insomma, ci sono - come in tutte le cose - "fanboy", "evangelisti", "hater" anche in questi argomenti.
    Anzi le flame più "roventi" nascono proprio tra gli esperti, più che tra i dilettanti.
    Come la mitica (sinonimo per inutilissima) "regolona della graffa"
    
     function pippo() {
            }
    oppure
    function pippo()
    {
    }
    
    ?? Si sono "versati" più byte per questo argomento che per la legge elettorale italiana.
    Cosa dicono in sintesi i sostenitori?
    Quelli della "graffa sulla riga" che è più facile scriverla con un editor di testo (es. vi, vim, nano), insomma con sistemi *nix (vero).
    E che inoltre fa risparmiare spazio quando i sorgenti vengono stampati su carta (vero).
    Quelli della "graffa allineata" che è immediato vedere i cicli innestati "ben" chiusi (vero)
    Che ormai pochissimi stampano i sorgenti su carta (vero)
    E che le stampanti laser hanno ormai annullato i problemi di stampa, nel senso che anche se devi stampare una risma non è che avrai a che fare con moduli continui inceppati eccetera, dici "stampa" e poi sono "cavoli della stampante" sputar fuori i fogli (vero).

    Qual'è la scelta migliore?
    Semplice, non c'è.
    Questione di gusti.
    Io preferisco le "graffe allineate", ma non è che debba essere "fucilato".
    Il mio codice è buono (anzi ottimo), o pessimo, non è che spostando le graffe qualcosa muti.
    Queste sono "masturbazioni mentali"


    ---
    Segnalo che nelle aziende, soprattutto grandi e grandissime, esistono convenzioni più o meno restrittive (classiche quelle google) sull'aspetto "estetico" e anche logico dei sorgenti, al fine di uniformare il più possibile i lavori scritti da decine se non centinaia di persone.

    Meravigliose quelle Microsoft https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/program-structure/naming-conventions
    e

    che non sono altro che le "vestigia" proprio del mitico ungherese di 40 anni fa.

    ---

    Nonostante questo, la regola generale, perfino per le megaaziende, è il buonsenso.
    Declinato nella conoscenza, nella consapevolezza, non nell'ignoranza.

    Si-fa-qualcosa-così-perchè-lo-dice-Tizio?
    OK, ma è il modo migliore? Perchè Tizio dice così? Cosa dice Caio? Sempronio potrebbe far meglio?
    Stiamo discutendo del sesso degli angeli?
    Seguire quanto dice Tizio è bene?
    ---


    Ad esempio, nel mio piccolo, distinguo i parametri in ingresso alle funzioni con i_qualcosa, mentre quelle in uscita con o_qualcosa.
    Ciò mi facilita la vita per capire che se nel sorgente vedo un
    for i:=0 to i_elementi
    significa che "i_elementi" è un parametro in input, non una variabile locale.
    e se trovo
    o_elementi:=i
    allora sto predisponendo un risultato da una variabile locale.

    Le variabili globali le chiamo g_qualcosa, mentre le variabili globali della singola form gf_qualcosa.

    Ma non penso certo di aver inventato chissà quale "supremaconvenzionesalvificanecessariameravigliosa", non credo conieranno una "notazione gattesca" per sottolineare questo fondamentale passo avanti dell'umanità.
  • Re: Nome da dare ad una funzione

    L'esistenza, o la definizione, di convenzioni per la scrittura del codice ha un perche' molto stupido e banale:

    - i programmatori vanno e vengono (e quelli bravi vanno piu' velocemente degli altri)

    - usare uno stesso stile di scrittura del codice permette di capire a colpo d'occhio a chiunque (che segue le stesse convenzioni) che cosa potrebbe servire un certo oggetto: se tutte le costanti si scivono COSI' , ogni volta che uno vede qualcosa scritto in MAIUSCOLO sa che e' una costante. Se un oggetto inizia con IQUALCOSA, sa che e' un'interfaccia, ecc. NON DEVE andare a vedere la definizione per capire di che si tratta, e per capire QUALE STILE ha usato un certo programmatore.

    La peggior cosa che puo' fare un'azienda e' quella di avere del codice scritto da personale diverso che usa stili diversi !
    Per non arrivare al punto in cui uno non ha nemmeno uno stile ed un giorno scrive in un modo ed il giorno dopo in un'altro, perche' ha deciso di cambiare stile.

    Per fortuna quasi tutti gli IDE seri hanno dei code formatters che permette di formattare il codice secondo lo standard scelto.
    Oltre a potenti strumenti di refactoring con i quali rinominare classi metodi e membri secondo le convenzioni correnti.


    Come al solito, da buoni Italiani, ci ricordiamo della storia solo per le parti che ci fanno piu' comodo e che confermano il nostro punto di vista, INVECE di essere critici e cercare di migliorare!!!!


    E visto che avere stili diversi non preclude dalla scrittura di codice pessimo e non mantenibile, tanto vale che TUTTI seguano lo stesso stile, perche'

    IL DIVINO/DITTATORE/MEGABOSS/COLUI_CHE_TI_PAGA_LO_STIPENDIO HA DECISO COSI'!!!!

    E' ovvio che se uno non e' contento, non c'e' la frusta ad aspettarlo (anche se spesso potrebbe essere un buon incentivo )

  • Re: Nome da dare ad una funzione

    Non mi è chiarissimo perchè "tutti" debbano seguire le regole decise ... da chi?

    Più modestamente, riguardo alla vecchissima e tritissima problematica dei sorgenti, mi limito a costatare e ribadire che NON esiste un "modo giusto".

    Esistono tanti modi "ragionevoli", e tantissimi "irragionevoli".
    Che le "regole", quando non si è dipendente di qualcuno, non esistono.

    Per inciso tanti sconsigliano fortissimamente le MAIUSCOLE per indicare le costanti.
    E' una banale convenzione, non è scritto nei 10 comandamenti.
    Anzi, più precisamente, "storicamente" non erano neppure costanti, bensì #define, cioè banali sostituzioni nel testo.
    In altri ambiti ci si rifà... banalmente... alle convenzioni di librerie molto diffuse, tipo jQuery, quando non addirittura alla documentazione di PHP.
    Ma se si conosce "come" è nato PHP, cioè come "miniprogrammabimbominkiescoascoporicreativo", ci si rende conto che si rischia qualcosa di molto simile (in ambito diverso!) dei Musulmani.
    Se nella storia Maometto aveva la barba, allora avere la barba è cosa buona e giusta (spero di non essere blasfemo, immagino si comprenda la semantica).

    Così se un giovane programmatore (a quel tempo) ha scritto 20 anni fa qualcosa senza nessun particolare motivo "hoscrittoQualcosa", mentre pubblicava una microlibreria CGI per fare una Personal Home Page Tools, ora, che è usato da milioni di persone in milioni di siti, si assume che "hoscrittoQualcosa" sia buono e giusto come sceso dal cielo con l'Arcangelo Gabriele.

    ---
    Per i curiosi ci sono tutti i vari standard per i vari linguaggi, pubblicati da google, molto interessanti per avere un'idea ampia per un'azienda "multilinguaggio".
    La cosa molto interessate è che l'incipit è questo
    Example code in this document is non-normative. That is, while the examples are in Google Style, they may not illustrate the only stylish way to represent the code. Optional formatting choices made in examples must not be enforced as rules.

    Prediligono lo "stile egiziano"
    Braces follow the Kernighan and Ritchie style ("Egyptian brackets") for nonempty blocks and block-like constructs che si è affermato perchè nel mitico K&R... era quello preferito
    e così via.

    ---
    Sempre per i curiosi un po' di ricreazione
    https://blog.codinghorror.com/new-programming-jargon

    Il mio preferito in assoluto è lo Yoda-confronto
Devi accedere o registrarti per scrivere nel forum
15 risposte