Riječi ili fraze za veliko programiranje

Pocket ProtectorRadeći s nekim izuzetnim programerima, često se nađem na sastancima s arhitektama, potencijalnim klijentima i programerima koji (mislim) vole izbaciti neke velike riječi ili fraze kako bi pokušali prestrašiti menadžere proizvoda ili njihove klijente.

To je jedna od stvari koju programeri vole raditi. Evo njih deset s vrlo jednostavnim opisom (koji će nesumnjivo razbjesniti programere svugdje dok im nasmrt hakiram moje jednostavne metafore automobila):

  1. Apstrakcija - ovo uzima težak proces ili funkciju i u osnovi ih logički razbija ... bilo po hijerarhiji (A pripada B, B pripada C, itd.) Ili po svojstvu ili funkciji (boja, veličina, težina, itd.). Apstrakcija olakšava objektno programiranje logičnom organizacijom funkcionalnosti. Da bih izgradio svoj automobil, odvojeno izrađujem okvir, motor i tijelo.
  2. Zastarijevanje - to znači da u sustavu postoji neki stari kod koji može ostati, ali ga treba postupno ukinuti. Kad je kôd zastario, programeri se ne pozivaju na njega niti koriste noviji kôd dok sve reference ne odu na stari, a u tom trenutku ga treba ukloniti. Ponekad, ako je riječ o funkciji koja se ukida, možete je zadržati neko vrijeme uz upozorenje korisnicima da je ukida. Dobivam novi stereo sistem s novim ožičenjima, ali ostavljam staro ožičenje i ne koristim ga.
  3. Inkapsulacija - ovo je proces organiziranja vaših programskih funkcija u roditelju kada funkcija ne doseže niti jedan drugi dio sistema. Ako imate milione funkcija, želite da ih efikasno organizirate i funkcioniraju u područjima u kojima rade, a ne da budu globalno dostupne. Stavio sam pomoćnu mehaniku motora u motorni prostor ... Ne stavljam filter za ulje na zadnje sedište.
  4. nasljeđe - ovo je sposobnost preuzimanja svojstava drugog dijela zajedničkog koda (klase) kako bi se ponovo koristila za novu funkcionalnost bez potrebe za ponovnim pisanjem. Nasljeđivanje je još jedna dobra objektno orijentirana razvojna praksa. Moja autosjedalica može se koristiti za nošenje djeteta ili odrasle osobe - ko god u njoj sjedi.
  5. Normalizacija - ovo je metoda organizacije podataka efikasnijom u bazi podataka izgradnjom referenci. Primjer bi bio da moram snimati semafore cijeli dan ... crvene, žute i zelene. Umjesto da svaki zapis pišem crvenom, žutom i zelenom - pišem 1, 2 i 3, a zatim napravim drugu tablicu u kojoj je 1 = crvena, 2 = žuta i 3 = zelena. Na ovaj način snimam samo jednom crvenu, žutu i zelenu boju. Svaka moja vrata automobila imaju istu kvaku na vratima. Jedna ručka, koristi se na 4 različita mjesta, a ne na 4 različite ručke.
  6. Objektno orijentirano - u modernim programskim jezicima, ovo je metoda dizajna koja vam omogućava da napišete određeni kod u komadima, prema funkcionalnosti, a zatim ih ponovo koristite. Primjer bi mogao biti ako bih želio provjeriti ispravno izgrađenu adresu e-pošte. Mogao bih jednom izgraditi funkciju, a zatim je koristiti gdje god trebam u svojoj aplikaciji. Moj automobil ima 18 felni koje isti ili drugi proizvođači mogu koristiti na drugim automobilima.
  7. Polimorfizam - Ovo je teško objasniti, ali u osnovi je to sposobnost razvijanja koda koji se može dinamički koristiti za druge situacije. Drugim riječima, može naslijediti jedinstvenu i dinamičnu funkcionalnost jednostavno načinom na koji je referenciran. Ovo je vrlo efikasno sredstvo za razvoj. Električnu utičnicu u automobilu mogu koristiti za punjenje telefona ili za napajanje soka pumpom za gume.
  8. Recursion - ovo je metoda u kojoj se kod poziva na sebe. Ponekad je efikasna i namjerna, ali ponekad može izgubiti kontrolu nad vašim aplikacijama. Kliknem tražim na autoradio i on se provlači kroz radio stanice. Nikad se ne završava, samo nastavlja.
  9. Refaktoriranje - ovo je postupak prepisivanja koda radi lakšeg praćenja ili boljeg organiziranja, ali ne nužno dodavanja dodatne funkcionalnosti. Obnavljam svoj motor.
  10. Server orijentirana arhitektura (SOA) - uzmite objektno orijentisano programiranje i primijenite ga na velike sisteme gdje možete imati cijele sisteme koji rade određene funkcije. Možda imate sistem upravljanja odnosima s kupcima koji govori sa sistemom e-trgovine koji govori sa sistemom otpreme itd. Vučem prikolicu svojim automobilom da dopremim predmete s jednog mjesta na drugo. Koristim spojku za privezivanje (XML) da bih ih povezao.

Shvaćam da moje metafore nisu uvijek bile savršeno na meti. Nadam se da su ipak malo pomogli!

Nekoliko savjeta kada ove riječi čujete na sljedećem sastanku s programerom ... ne trčite natrag na svoje mjesto i potražite ih Wikipedia, oni će gledati. Ne trznite, napasti će. Evo što treba učiniti ... razmislite kroz prozor kao da duboko razmišljate, a zatim se znatiželjnim pogledom osvrnite ili ogrebite bradu. Sačekajte da nastave s izjavom s više informacija.

... Gledaju.

8 Komentari

  1. 1

    LOL stvarno si zakucao Doug 🙂 Pokušavaš li nas izbaciti iz posla? Prokleto dobro znate da mi računamo na to da se ti pojmovi ne razumiju i da se zato snalazimo s klijentima. Sad moramo smisliti način kako da ih miniramo kombinovanje te modne riječi za stvaranje jedne divovske fraze koja bi mogla ići ovako:

    Pa dobro, znate da se značajka koju pokušavate ugraditi može apstrahirati na više objekata koji obuhvaćaju funkcionalnost i komuniciraju putem uslužno orijentirane arhitekture.

  2. 5

    Being a software developer I can appreciate this post. We’re not all that bad though 😉 I would never bamboozle people with such techno babble 🙂

    Dopustite mi da vam smislim još nekoliko reči ...

Šta ti misliš?

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.