Вялікія словы для праграмавання

Кішэнны пратэктарПрацуючы з некаторымі выключнымі праграмістамі, я часта бываю на сустрэчах з архітэктарамі, патэнцыяльнымі кліентамі і распрацоўшчыкамі, якія (я думаю) любяць выкідваць там вялікія словы ці фразы, каб паспрабаваць напалохаць кіраўнікоў прадуктаў альбо іх кліентаў.

Гэта адна з тых рэчаў, якую любяць рабіць праграмісты. Вось дзесяць з іх з вельмі простым апісаннем (гэта, несумненна, выкліча гнеў распрацоўшчыкаў усюды, бо я да смерці ўзламаю іх тэрміналогію мае простыя метафары пра машыну):

  1. Абстракцыя - гэта бярэ складаны працэс альбо функцыю і ў асноўным лагічна разбівае яе ... альбо па іерархіі (A належыць B, B належыць C і г.д.), альбо па прыкмеце або функцыі (колер, памер, вага і г.д.). Абстракцыя палягчае аб'ектна-арыентаванае праграмаванне, лагічна арганізоўваючы функцыянальнасць. Каб пабудаваць сваю машыну, я асобна будую раму, рухавік і кузаў.
  2. незадавальненне - гэта азначае, што ў сістэме ёсць нейкі стары код, які можа застацца, але яго трэба паступова адмяняць. Калі код састарэў, праграмісты не спасылаюцца на яго і не выкарыстоўваюць новы код, пакуль усе спасылкі не сыдуць на стары, і ў гэты час ён павінен быць выдалены. Часам, калі гэта функцыя адыходзіць, вы можаце захаваць яе некаторы час, папярэдзіўшы карыстальнікаў, што яна сыходзіць. Я атрымліваю новую стэрэасістэму з новай праводкай, але пакідаю старую праводку і не выкарыстоўваю яе.
  3. Інкапсуляцыя - гэта працэс арганізацыі вашых функцый праграмавання ў адным з бацькоў, калі функцыя не распаўсюджваецца на іншыя часткі сістэмы. Калі ў вас мільёны функцый, вы хочаце, каб яны былі эфектыўна арганізаваны і функцыянавалі ў тых сферах, дзе яны працуюць, а не былі даступныя ва ўсім свеце. Я паставіў апорную механіку рухавіка ў маторны адсек ... Я не стаўлю алейны фільтр на задняе сядзенне.
  4. ўспадкоўванне - гэта магчымасць узяць на сябе ўласцівасці іншага кавалка агульнага кода (класа), каб паўторна выкарыстоўваць яго для новай функцыянальнасці без неабходнасці яго перапісваць. Спадчына - яшчэ адна добрая практыка аб'ектна-арыентаванага развіцця. Маё автокресло можна выкарыстоўваць для перавозкі дзіцяці альбо дарослага - хто б у ім сядзеў.
  5. Нармалізацыя - гэта метад больш эфектыўнай арганізацыі дадзеных у базе дадзеных шляхам пабудовы спасылак. Прыкладам можа служыць, калі б мне даводзілася запісваць святлафоры цэлы дзень ... чырвоны, жоўты і зялёны. Замест таго, каб пісаць кожную запіс чырвоным, жоўтым і зялёным - я пішу 1, 2 і 3, а потым складаю іншую табліцу, дзе 1 = чырвоны, 2 = жоўты і 3 = зялёны. Такім чынам я запісваю толькі адзін раз чырвоны, жоўты і зялёны колеры. Кожная з дзвярэй маёй машыны мае аднолькавую ручку дзвярэй. Адна ручка, якая выкарыстоўваецца ў 4 розных месцах, а не ў 4 розных ручках.
  6. Аб'ектна арыентаваны - у сучасных мовах праграмавання гэта метад дызайну, які дазваляе пісаць пэўны код па частках, па функцыянальнасці, а потым выкарыстоўваць іх паўторна. Прыкладам можа служыць, калі я хачу праверыць правільна складзены адрас электроннай пошты. Я мог бы стварыць функцыю адзін раз, а потым выкарыстоўваць яе дзе заўгодна ў сваім дадатку. У маёй машыне 18-цалёвыя дыскі, якія могуць быць выкарыстаны на іншых аўтамабілях тым жа вытворцам.
  7. Паліморфізм - Гэта цяжка растлумачыць, але ў асноўным гэта здольнасць распрацоўваць код, які можна дынамічна выкарыстоўваць для іншых сітуацый. Іншымі словамі, ён можа наследаваць унікальную і дынамічную функцыянальнасць проста шляхам спасылкі. Гэта вельмі эфектыўны сродак развіцця. Я магу выкарыстоўваць электрычную разетку майго аўтамабіля для зарадкі тэлефона альбо для падачы соку ў помпа шын.
  8. Рэкурсія - гэта метад, пры якім код спасылаецца на сябе. Часам гэта эфектыўна і наўмысна, але іншы раз можа вывесці вашу праграму з-пад кантролю. Я націскаю "Шукаць" на маёй аўтамабільнай стэрэасістэме, і яна перабірае радыёстанцыі. Гэта ніколі не заканчваецца, проста працягваецца.
  9. Рэфактарынг - гэта працэс перапісвання кода, каб палегчыць яго сачэнне альбо лепш арганізаваць яго, але не абавязкова дадаць дадатковыя функцыянальныя магчымасці. Я аднаўляю рухавік.
  10. Серверна-арыентаваная архітэктура (SOA) - узяць аб'ектна-арыентаванае праграмаванне і прымяніць яго да вялікіх сістэм, дзе вы можаце мець цэлыя сістэмы, якія выконваюць пэўныя функцыі. У вас можа быць сістэма кіравання ўзаемаадносінамі з кліентамі, якая размаўляе з сістэмай электроннай камерцыі, якая размаўляе з сістэмай дастаўкі і г.д. Я цягну прычэп на сваёй машыне, каб перавозіць рэчы з аднаго месца ў іншае. Я выкарыстоўваю прычапную прыладу (XML) для іх злучэння.

Я разумею, што мае метафары не заўсёды былі ідэальна мэтавымі. Я спадзяюся, што яны хоць крыху дапамаглі!

Некалькі парад, калі вы пачуеце гэтыя словы падчас наступнай сустрэчы з распрацоўшчыкам ... не вяртайцеся на сваё месца і шукайце іх Вікіпедыя, яны будуць назіраць. Не ўздрыгвай, яны нападуць. Вось што трэба зрабіць ... паразважаць у акно, быццам вы глыбока задумаўшыся, а потым азірнуцца дапытлівым позіркам альбо падрапаць падбародак. Пачакайце, каб яны правялі дадатковую інфармацыю.

... Яны глядзяць.

8 Каментары

  1. 1

    LOL, ты сапраўды прыбіў яго Дуг 🙂 Ты спрабуеш вывесці нас з бізнесу? Вы па-чартоўску добра ведаеце, што мы робім стаўку на тое, што гэтыя паняцці не разумеюць і, такім чынам, працуюць з кліентамі. Цяпер мы павінны высветліць спосаб, як падарваць іх аб'яднання гэтыя модныя словы, каб стварыць адну гіганцкую фразу, якая можа выглядаць так:

    Вы ведаеце, функцыя, якую вы спрабуеце ўнесці, можа быць абстрагавана да некалькіх аб'ектаў, якія інкапсулююць функцыянальнасць і ўзаемадзейнічаюць праз архітэктуру, арыентаваную на паслугі.

  2. 5

    Будучы распрацоўшчыкам праграмнага забеспячэння, я магу ацаніць гэты пост. Мы не ўсе такія дрэнныя, 😉 я ніколі б не бавіў людзей з такімі тэхна балбатнямі 🙂

    Дазвольце паспрабаваць прыдумаць для вас яшчэ некалькі слоў ...

Што вы думаеце?

Гэты сайт выкарыстоўвае Akismet для барацьбы са спамам. Даведайцеся, як дадзеныя апрацоўваюцца каментар.