Grandi parole o frasi di programmazione

Protettore tascabileLavorando con alcuni programmatori eccezionali, mi trovo spesso in incontri con architetti, lead e sviluppatori che (penso) amano lanciare alcune parole o frasi grosse là fuori per cercare di spaventare a morte i Product Manager oi loro clienti.

È una di quelle cose che piace fare ai programmatori. Eccone dieci con una descrizione molto semplice (che senza dubbio attirerà l'ira degli sviluppatori di tutto il mondo mentre hackero la loro terminologia a morte con le mie semplici metafore automobilistiche):

  1. Astrazione - questo è prendere un processo o una funzione difficile e fondamentalmente scomporlo logicamente ... o per gerarchia (A appartiene a B, B appartiene a C, ecc.) O per caratteristica o funzione (colore, dimensione, peso, ecc.). L'astrazione semplifica la programmazione orientata agli oggetti organizzando la funzionalità in modo logico. Per costruire la mia macchina, costruisco separatamente un telaio, un motore e una carrozzeria.
  2. Deprecazione - questo significa che nel sistema è presente del vecchio codice che potrebbe rimanere ma deve essere eliminato gradualmente. Quando il codice è deprecato, i programmatori non fanno riferimento al codice o non utilizzano codice più recente fino a quando tutti i riferimenti non sono passati al vecchio, momento in cui dovrebbe essere rimosso. A volte, se si tratta di una funzionalità che sta scomparendo, puoi mantenerla per un po 'con un avviso agli utenti che non sarà più disponibile. Ho un nuovo impianto stereo con un nuovo cablaggio ma lascio il vecchio cablaggio e non lo uso.
  3. incapsulamento - questo è il processo di organizzazione delle funzioni di programmazione all'interno di un genitore quando la funzione non raggiunge altre parti del sistema. Se disponi di milioni di funzioni, desideri che siano organizzate e funzionanti in modo efficiente all'interno delle aree in cui operano, anziché averle a disposizione a livello globale. Metto la meccanica di supporto del motore nel vano motore… non metto il filtro dell'olio sul sedile posteriore.
  4. Eredità - questa è la capacità di assumere le proprietà di un altro pezzo di codice comune (una classe) per poterlo riutilizzare per nuove funzionalità senza doverlo riscrivere. L'ereditarietà è un'altra buona pratica di sviluppo orientato agli oggetti. Il mio seggiolino auto può essere utilizzato per trasportare un bambino o un adulto, chiunque vi sieda.
  5. Normalizzazione - questo è il metodo per organizzare i dati in modo più efficiente in un database costruendo riferimenti. Un esempio sarebbe se dovessi registrare i semafori tutto il giorno ... rosso, giallo e verde. Invece di scrivere ogni record con il rosso, il giallo e il verde, scrivo 1, 2 e 3 e poi creo un'altra tabella in cui 1 = rosso, 2 = giallo e 3 = verde. In questo modo registro solo una volta il rosso, il giallo e il verde. Ogni portiera della mia macchina ha la stessa maniglia. Una maniglia, utilizzata in 4 posizioni diverse anziché 4 diverse maniglie.
  6. Orientato agli oggetti - nei moderni linguaggi di programmazione, questo è un metodo di progettazione che consente di scrivere codice specifico in pezzi, per funzionalità, e quindi riutilizzarli. Un esempio potrebbe essere se volessi verificare la presenza di un indirizzo email costruito in modo valido. Potrei costruire la funzione una volta, e poi usarla dove ne ho bisogno nella mia applicazione. La mia macchina ha cerchi da 18 ″ che possono essere utilizzati su altre vetture della stessa o di altri costruttori.
  7. Polimorfismo - Questo è difficile da spiegare, ma fondamentalmente è la capacità di sviluppare codice che può essere utilizzato dinamicamente per altre situazioni. In altre parole, può ereditare funzionalità uniche e dinamiche semplicemente dal modo in cui viene referenziato. Questo è un mezzo di sviluppo molto efficiente. Posso usare la presa elettrica della mia automobile per caricare il mio telefono o per fornire succo alla pompa dei pneumatici.
  8. Ricorsione - questo è un metodo in cui il codice fa riferimento a se stesso. A volte è efficiente e intenzionale, ma altre volte può finire per far perdere il controllo alle tue applicazioni. Faccio clic su Cerca sull'autoradio e scorre le stazioni radio. Non finisce mai, va solo avanti.
  9. refactoring - questo è il processo di riscrittura del codice per renderlo più facile da seguire o per organizzarlo meglio ma non necessariamente per aggiungere alcuna funzionalità aggiuntiva. Ricostruisco il mio motore.
  10. Architettura orientata al server (SOA) - prendi la programmazione orientata agli oggetti e applicala a sistemi di grandi dimensioni dove puoi avere interi sistemi che svolgono determinate funzioni. Potresti avere un sistema di gestione delle relazioni con i clienti che parla a un sistema di e-commerce che parla a un sistema di spedizione, ecc. Tiro un rimorchio con la mia macchina per spedire oggetti da un posto all'altro. Uso un rimorchio (XML) per collegarli.

Mi rendo conto che le mie metafore non erano sempre perfettamente centrate. Spero che abbiano aiutato un po ', però!

Qualche consiglio quando ascolterai queste parole nel tuo prossimo incontro con uno sviluppatore ... non tornare al tuo posto e cercarle wikipedia, staranno guardando. Non indietreggiare, attaccheranno. Ecco cosa fare ... medita fuori dalla finestra come se fossi in preda a pensieri profondi e poi guardati indietro con uno sguardo curioso o grattati il ​​mento. Aspetta che seguano la loro dichiarazione con maggiori informazioni.

... Stanno guardando.

Commenti

  1. 1

    LOL l'hai davvero inchiodato Doug 🙂 Stai cercando di farci fallire? Sai benissimo che puntiamo su quei concetti che non vengono compresi e quindi ci comportiamo a modo nostro con i clienti. Ora dobbiamo trovare un modo per farli saltare in aria combinando quelle parole d'ordine per creare una frase gigante che potrebbe essere simile a questa:

    Bene, sai la funzionalità che stai cercando di inserire può essere astratta in più oggetti che incapsulano la funzionalità e comunicano attraverso un architecutre orientato ai servizi.

  2. 5

    Essendo uno sviluppatore di software posso apprezzare questo post. Non siamo poi così cattivi però 😉 Non avrei mai imbrogliato le persone con queste chiacchiere techno 🙂

    Lasciami provare a pensare ad altre parole per te….

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.