Author: 24.03.2022
Programowanie imperatywne oraz deklaratywne
W programowaniu imperatywnym skupiamy się na krokach prowadzących do rozwiązania problemu. Z kolei w programowaniu deklaratywnym bardziej interesuje nas rezultat niż sposób rozwiązania danego problemu.
JavaScript Front-end Developer
Opanuj najważniejszy język współczesnej sieci Web. Zdobądź umiejętności niezbędne aby zostać front-end developerem. Ta ścieżka kariery sprawi, że staniesz się pełnoprawnym kandydatem na JavaScript developera. Ścieżka zawiera dziesiątki zadań oraz ćwiczeń, dzięki którym zdobędziesz przydatne na rynku pracy umiejętności. Dowiedz się więcej
O co tutaj chodzi?
Programowanie wymaga właściwego podejścia. Każdy program jest inny. Każdy program trzeba “rozgryźć” we właściwy sposób.
Dlatego istnieją tzw. paradygmaty programowania. To nic innego jak pewien styl pisania kodu. W tym artykule przyjrzymy się uważnie dwóm głównym paradygmatom programowania.
Programowanie imperatywne
Paradygmat imperatywny można opisać tak: “mówimy jak komputer ma wykonać daną rzecz”. Czyli skupiamy się na poszczególnych krokach, które prowadzą do rozwiązania problemu.
Możesz sobie wyobrazić program napisany imperatywnie jako ciąg instrukcji. Takie podejście jest dla nas zrozumiałe. Łatwo jest prześledzić wszystkie kroki wykonywane przez program. Z tego powodu programowanie imperatywne jest zazwyczaj pierwszym paradygmatem, na który napotykają początkujący programiści.
Przykład
Najlepiej będzie to zilustrować przykładem opartym na realnym kodzie.. Mamy prostą tablicę z wartościami liczbowymi i chcemy z niej odrzucić wartości równe 1. Popatrz na kod w języku JavaScript:
let arr = [1, 2, 3];
let filteredArr = [];
for (let i = 0; i < arr.length; i++) {
let v = arr[i];
if (v != 1) {
filteredArr.push(v);
}
}
console.log(filteredArr);
To oczywiście przykład kodu napisanego imperatywnie. Zauważ, że musimy krok po kroku dokładnie opisać wszystkie instrukcje jaki mają być wykonane:
- Stwórz nową, pustą tablicę o nazwie filteredArr.
- Za pomocą pętli przetwórz tablicę arr. Zakończ pętlę jak wyczerpią się wszystkie wartości w tablicy.
- W pętli stwórz zmienną v, która przechowuje pojedyncze wartości z tablicy.
- Za pomocą instrukcji warunkowej sprawdź wartość zmiennej v.
- Jeśli wartość v jest inna niż 1, to wstaw taką wartość do tablicy filteredArr.
Po prostu tutaj “prowadzimy komputer za rękę” i dokładnie mu wskazujemy co ma wykonać w każdym kroku.
Programowanie deklaratywne
Paradygmat deklaratywny można opisać tak: “mówimy komputerowi co ma dla nas zrobić”. Ważny jest dla nas wynik jaki uzyskamy - nie wnikamy w jaki sposób komputer ten wynik. osiągnie.
Taki styl programowania pozwala skupić się więc na celu. Na tym, co chcemy osiągnąć. Mniej ważne są tutaj kroki, które do tego celu prowadzą.
Przykład
Spróbujemy teraz rozwiązać znany nam już problem w sposób bardziej deklaratywny:
let arr = [1, 2, 3];
function checkValue(v) {
return v != 1;
}
console.log(arr.filter(checkValue));
Cel jest taki sam jak poprzednio: chcemy z tablicy arr odrzucić wartości równe 1. Zwróć uwagę na główne elementy:
- Napisaliśmy prostą funkcję, która sprawdza wartość oraz zwraca true (prawda) jeśli warunek jest spełniony.
- Używamy wbudowanej funkcji języka JavaScript o nazwie filter(). Za jej pomocą możemy odfiltrować wartości z tablicy. Jako parametr podaliśmy naszą funkcję, która weryfikuje czy dana wartość jest różna od 1.
Istotne jest to, że nie wnikamy w szczegóły funkcji filter(). Nie interesuje nas co ona zawiera “pod maską”. Ważne jest to, że funkcja zapewni nam pożądany rezultat.
Zauważ, że taki styl pisania kodu jest zwięzły - zazwyczaj kod deklaratywny jest krótszy i bardziej elegancki od kodu imperatywnego. Co ciekawe, są języki, które umożliwiają pisanie kodu wyłącznie w sposób deklaratywny.
Wady oraz zalety
Obydwa paradygmaty mają oczywiście swoje plusy oraz minusy.
Programowanie imperatywne
- Jest prostsze do zrozumienia dla początkujących.
- Łatwo możemy śledzić wszystkie kroki.
- Wymaga pisania bardziej rozbudowanego kodu. Mogą się pojawić problemy z czytelnością, zwłaszcza w przypadku większych programów.
Programowanie deklaratywne.
- Kod jest bardziej zwięzły oraz czytelny.
- Pozwala skupić się na wyniku a nie na sposobie w jaki rozwiązujemy problem. To bardzo ważny aspekt.
- Wymaga większego doświadczenia i dobrej znajomości mechanizmów języka, w którym pracujemy.
Główną zaletą podejścia deklaratywnego jest właśnie to, że skupiamy się wyniku jaki chcemy osiągnąć. Dzięki temu możemy przestawić nasze myślenie na właściwe tory. Nie wnikamy w pojedyncze kroki tylko cały czas myślimy o rezultacie - on jest tutaj kluczowy. W praktyce pozwala nam to pisać bardziej zwięzły oraz łatwiejszy w utrzymaniu kod.