Основните принципи на програмирането наложително и декларативно програмиране
Тайлър казва Макгинис. Експерт Google Developer
Вие сте чували за такива понятия като императив и декларативно програмиране, и вероятно определение Google. И така, вие трябва да сте виждали нещо подобно: "Заповед за програмиране - описание на начина, по който правите нещо, и декларативно - от това, което правите. Това обяснение е идеален за тези, които вече се разбере този въпрос - но не и за начинаещи.
Най-трудно е фактът, че разликата между декларативно и императивен подход често се разбира интуитивно, но е трудно да се определи дефиницията. Говорих с много програмисти и стигнах до заключението, че най-доброто обяснение - това е комбинация от метафора и примерен код. Нека да започнем.
Да предположим, че ти осъзнаваш, че твърде много време се отделя на работа, и решихме да поканим сродна душа за среща. Ти дойде в ресторанта, отидохме до управителя и каза ...
Задължително подход (като). Виждам, че ъгловата маса е безплатна. Ще отида там и да седне там.
Декларативен подход (които). Маса за двама, моля те.
Задължително подход означава, че вие ще се проведе. Трябва да се изброят всички етапи на този процес. Декларативен подход също така казва, че имате нужда от маса за двама.
Аз ще ти задам един въпрос и аз искам да излезе и наложително и декларативен подход.
"Имам Хашана. Как да стигна до дома си? "
"Мини през изхода на северната паркинг и завийте наляво. Седнете на автобус 678 и слезте на "Победа ул." Завийте надясно, като че ли отиде в Ikea. Продължете направо и се обърни надясно при първия светофар. На следващия светофар завийте наляво. Стая от къщата ми - 134. "
Без значение как се стигна до дома си, е важно каква кола да дойда. Тя ще бъде наложително или ръчна скоростна кутия или автоматична трансмисия декларативно. Достатъчно метафори?
Така че аз повтарям: много (ако не всички) от декларативни подходи има някакъв слой от абстракция наложително.
Сега да преминем от хубава метафора за недвижими код. Първо, нека да видим какво езици са декларативно, и какво - са задължителни:
Ето някои типични примери в SQL и HTML:
Само погледнете в тях, за да видим какво ще стане. Те са декларативно, като посочва какво трябва да се направи, а не как. Описвате на желания резултат, без ровене в инструкцията. Без значение колко ще бъдат избрани хора от Мексико. Без значение колко браузъра синтактичен анализ на статия. Важно е, че можете да получите мексиканските потребители и новата заглавна и параграфа на сайта.
Представете си, че вие сте на интервю. Отваряне на конзола и отговори на следните въпроси.
Нека да разгледаме най-често срещаните подходи към решаването на тези проблеми, които са задължителни.