Cuvinte sau fraze mari de programare

Protector de buzunarLucrând cu niște programatori excepționali, mă găsesc adesea în întâlniri cu arhitecți, clienți potențiali și dezvoltatori cărora (cred) le place să arunce niște cuvinte sau fraze mari acolo pentru a încerca să sperie dracu de managerii de produse sau clienții lor.

Este unul dintre acele lucruri pe care programatorii le place să le facă. Iată zece dintre ele cu o descriere foarte simplă (care va atrage fără îndoială mânia dezvoltatorilor de pretutindeni în timp ce le pirat terminologia cu moartea cu metafore simple ale mașinii mele):

  1. abstracțiune - acest lucru ia un proces sau o funcție dificilă și practic îl descompune logic ... fie prin ierarhie (A aparține lui B, B aparține lui C etc.), fie prin caracteristică sau funcție (culoare, dimensiune, greutate etc.). Abstracția facilitează programarea orientată pe obiecte, organizând funcționalitatea în mod logic. Pentru a-mi construi mașina, construiesc separat un cadru, un motor și o caroserie.
  2. Dezaprobare - aceasta înseamnă că există un cod vechi în sistem care poate rămâne, dar trebuie eliminat treptat. Când codul este învechit, programatorii nu fac referire la cod sau nu utilizează codul mai nou până când toate referințele sunt trecute la vechiul, moment în care ar trebui eliminat. Uneori, dacă este o caracteristică care dispare, o puteți păstra o vreme cu un avertisment către utilizatori că va dispărea. Am un nou sistem stereo cu cabluri noi, dar las vechile cabluri și nu le folosesc.
  3. încapsularea - acesta este procesul de organizare a funcțiilor de programare în cadrul unui părinte atunci când funcția nu ajunge în alte părți ale sistemului. Dacă aveți milioane de funcții, doriți să le organizați eficient și să funcționați în zonele pe care le operează, mai degrabă decât să le aveți disponibile la nivel global. Am pus mecanica de susținere a motorului în compartimentul motorului ... Nu pun filtrul de ulei pe bancheta din spate.
  4. Moştenire - aceasta este capacitatea de a prelua proprietățile unei alte bucăți de cod comun (o clasă) pentru a o reutiliza pentru noi funcționalități fără a fi nevoie să o rescrieți. Moștenirea este o altă bună practică de dezvoltare orientată obiect. Scaunul meu auto poate fi folosit pentru a transporta un copil sau un adult - oricine stă în el.
  5. Normalizare - aceasta este metoda de organizare a datelor mai eficientă într-o bază de date prin construirea de referințe. Un exemplu ar fi dacă ar trebui să înregistrez semafoare toată ziua ... roșu, galben și verde. Mai degrabă decât să scriu fiecare înregistrare cu roșu, galben și verde - scriu 1, 2 și 3 și apoi fac un alt tabel în care 1 = roșu, 2 = galben și 3 = verde. În acest fel înregistrez roșu, galben și verde o singură dată. Fiecare dintre ușile mașinii mele are același mâner al ușii. Un singur mâner, utilizat în 4 locații diferite, mai degrabă decât în ​​4 mânere diferite.
  6. Orientat spre obiect - în limbajele de programare moderne, aceasta este o metodă de proiectare care vă permite să scrieți cod specific în bucăți, prin funcționalitate, și apoi să le refolosiți. Un exemplu ar fi dacă aș dori să verific o adresă de e-mail validă. Aș putea construi funcția o singură dată și apoi să o folosesc oriunde am nevoie în aplicația mea. Mașina mea are jante de 18 ″ care pot fi utilizate pe alte mașini de același producător sau de alți producători.
  7. polimorfismul - Acesta este greu de explicat, dar practic este abilitatea de a dezvolta cod care poate fi utilizat dinamic pentru alte situații. Cu alte cuvinte, poate moșteni funcționalitate unică și dinamică pur și simplu prin modul în care este referențiat. Acesta este un mijloc de dezvoltare foarte eficient. Pot folosi priza electrică a automobilului pentru a-mi încărca telefonul sau pentru a furniza suc pompei de anvelope.
  8. Recursivitate - aceasta este o metodă în care codul se referă la sine. Uneori, este eficient și intenționat, dar alteori poate ajunge la spirală, scăpând de sub control aplicațiile dvs. Fac clic pe căutați pe stereo-ul mașinii mele și trece prin posturile de radio. Nu se termină niciodată, doar continuă.
  9. refactorizarii - acesta este procesul de rescriere a codului pentru a fi mai ușor de urmărit sau pentru a-l organiza mai bine, dar nu neapărat pentru a adăuga funcționalități suplimentare. Îmi reconstruiesc motorul.
  10. Arhitectură orientată pe server (SOA) - luați programare orientată pe obiecte și aplicați-o la sisteme mari, unde puteți avea sisteme întregi care îndeplinesc anumite funcții. Este posibil să aveți un sistem de gestionare a relației cu clienții care vorbește cu un sistem de comerț electronic care vorbește cu un sistem de expediere etc. Trag o remorcă cu mașina mea pentru a expedia obiecte dintr-un loc în altul. Folosesc un hârtie trailor (XML) pentru a le conecta.

Îmi dau seama că metaforele mele nu erau întotdeauna perfect vizate. Sper că au ajutat puțin, totuși!

Câteva sfaturi atunci când auziți aceste cuvinte în următoarea dvs. întâlnire cu un dezvoltator ... nu alergați înapoi la locul dvs. și căutați-le Wikipedia, vor urmări. Nu te tresări, vor ataca. Iată ce trebuie să faceți ... gândiți-vă pe fereastră ca și când ați fi gândit profund și apoi priviți înapoi cu un aspect curios sau vă scărpinați bărbia. Așteptați ca aceștia să își urmeze declarația cu mai multe informații.

... Se uită.

4 Comentarii

  1. 1

    LOL, chiar ai pus-o pe Doug. Încerci să ne scoți din afaceri? Știi al naibii de bine că ne bazăm pe aceste concepte care nu sunt înțelese și, prin urmare, ne facem drum cu clienții. Acum trebuie să găsim o modalitate de a le arunca o cale combinând acele cuvinte cheie pentru a crea o singură frază uriașă care poate merge astfel:

    Știți că caracteristica pe care încercați să o introduceți poate fi abstractizată la mai multe obiecte care încapsulează funcționalitatea și comunică printr-un arhitect orientat spre servicii.

  2. 5

    Fiind un dezvoltator de software, pot aprecia această postare. Cu toate acestea, nu suntem atât de răi would Nu aș înșela niciodată oamenii cu astfel de gâlgâituri tehnologice 🙂

    Lasă-mă să încerc și să mai gândesc câteva cuvinte pentru tine ...

Ce părere ai?

Acest site folosește Akismet pentru a reduce spamul. Aflați cum sunt procesate datele despre comentarii.