Основните принципи на програмирането наложително и декларативно програмиране

Основните принципи на програмирането наложително и декларативно програмиране

Тайлър казва Макгинис. Експерт Google Developer

Вие сте чували за такива понятия като императив и декларативно програмиране, и вероятно определение Google. И така, вие трябва да сте виждали нещо подобно: "Заповед за програмиране - описание на начина, по който правите нещо, и декларативно - от това, което правите. Това обяснение е идеален за тези, които вече се разбере този въпрос - но не и за начинаещи.

Най-трудно е фактът, че разликата между декларативно и императивен подход често се разбира интуитивно, но е трудно да се определи дефиницията. Говорих с много програмисти и стигнах до заключението, че най-доброто обяснение - това е комбинация от метафора и примерен код. Нека да започнем.

Да предположим, че ти осъзнаваш, че твърде много време се отделя на работа, и решихме да поканим сродна душа за среща. Ти дойде в ресторанта, отидохме до управителя и каза ...

Задължително подход (като). Виждам, че ъгловата маса е безплатна. Ще отида там и да седне там.

Декларативен подход (които). Маса за двама, моля те.

Задължително подход означава, че вие ​​ще се проведе. Трябва да се изброят всички етапи на този процес. Декларативен подход също така казва, че имате нужда от маса за двама.

Аз ще ти задам един въпрос и аз искам да излезе и наложително и декларативен подход.

"Имам Хашана. Как да стигна до дома си? "

"Мини през изхода на северната паркинг и завийте наляво. Седнете на автобус 678 и слезте на "Победа ул." Завийте надясно, като че ли отиде в Ikea. Продължете направо и се обърни надясно при първия светофар. На следващия светофар завийте наляво. Стая от къщата ми - 134. "

Без значение как се стигна до дома си, е важно каква кола да дойда. Тя ще бъде наложително или ръчна скоростна кутия или автоматична трансмисия декларативно. Достатъчно метафори?

Така че аз повтарям: много (ако не всички) от декларативни подходи има някакъв слой от абстракция наложително.

Сега да преминем от хубава метафора за недвижими код. Първо, нека да видим какво езици са декларативно, и какво - са задължителни:

Ето някои типични примери в SQL и HTML:

Само погледнете в тях, за да видим какво ще стане. Те са декларативно, като посочва какво трябва да се направи, а не как. Описвате на желания резултат, без ровене в инструкцията. Без значение колко ще бъдат избрани хора от Мексико. Без значение колко браузъра синтактичен анализ на статия. Важно е, че можете да получите мексиканските потребители и новата заглавна и параграфа на сайта.

Представете си, че вие ​​сте на интервю. Отваряне на конзола и отговори на следните въпроси.

Нека да разгледаме най-често срещаните подходи към решаването на тези проблеми, които са задължителни.